• 締切済み

DBからの値を取得する方法!?

始めまして。プログラム初心者です。DBは出来上がってるのですが、DBからの値を取得する文を何処にどうやって書けば良いか分かりません。 以下は自分で書いた文ですが・・・ 値はusernameで、ようこそXXXさんのXXXにログインした人の名前を出すのが目的です JSPの文です↓ <%@ page contentType="text/html; charset=Windows-31J" %> <%@ taglib uri="/tags/struts-bean" prefix="bean" %> <%@ taglib uri="/tags/struts-logic" prefix="logic" %> <%@ taglib uri="/tags/struts-html" prefix="html" %> <%@ taglib uri="/tags/struts-nested" prefix="nested" %> <html:html>         <head> <body> <P> <html:html>         <head> <meta http-equiv="Content-Type" content="text/html; charset=Windows-31J"/> <title>ログインしました</title> <html> <A HREF="/kadai/pass.jsp">パスワード変更</A><br> <A HREF="/kadai/Login.jsp">ログオフ</A> ようこそ <bean:write name="username" scope="session"/> ←これで入力したが反映しません・・・ さん    </body> </html:html> </P> </head> <html> <A HREF="/kadai/pass.jsp">パスワード変更</A><br> <A HREF="/kadai/Login.jsp">ログオフ</A> </body> </html:html> 環境ですがstruts、Oracle、tomcat、eclipseです

  • Java
  • 回答数2
  • ありがとう数0

みんなの回答

回答No.2
  • PED02744
  • ベストアンサー率40% (157/390)
回答No.1

struts で <bean:write name="username" scope="session"/> を使うのなら、 セッションスコープにusernameという名前の変数を用意しておく必要がありますね。 一般的には <bean:write name="dbobj" property="username" scope="session"/> として、セッションスコープにDB属性のオブジェクトBEANを入れておいて(上の例だとdbobjという名前) getUsernameメソッドでユーザ名を取り出せるようにしておくのが普通でしょう。

intellista
質問者

補足

回答有難うございます。超初心者でして、会社に入社してまだ2ヶ月です。 サーブレット(LoginAction.java)には社長がセットしてくれたと思うのですが・・・ チンぷんかんぷんです(T_T)/~~~ とりあえずLoginAction.javaの文です●●●の不文は会社名です。どの部分に足したら良いのか・・・ 長文なので2つに分けます package jp.co.●●●.kadai; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.sql.Timestamp; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; public class LoginAction extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,HttpServletResponse response) throws Exception{ /** エラーメッセージの格納エリアの定義 */ ActionErrors errors = new ActionErrors(); /** FormBean(JSPの入力値)の取得 */ LoginForm loginForm = (LoginForm) form; /** ユーザIDの取り出し */ String userid = loginForm.getUserid(); /** パスワードの取り出し */ String passwd = loginForm.getPasswd(); /** 接続クラスの定義 */ Connection con = null; /** ユーザID・パスワードのチェック */ try{ /** Oracle10g JDBC ドライバロード */ Class.forName("oracle.jdbc.OracleDriver"); /** Oracle10g JDBC 接続 */ con = DriverManager.getConnection("jdbc:oracle:thin:@●●●:●●●", "●●●", "●●●"); /** SQL発行のためのStatementオブジェクト生成 */ Statement st = con.createStatement(); /** Oracle10g JDBC 問い合わせ SQL 作成 */ String sql = "select * from userinfo where userid = '" + userid + "'"; /** SQLの発行 */ ResultSet rs = st.executeQuery(sql); /** ユーザ名の取り出し */ String username = loginForm.getUsername();

関連するQ&A

  • Struts 1.3 でbeanタグが認識されない

    Struts初心者です。 Struts1.3で以下のようなJSPを作成していますが、 "bean:write"のところで、"bean"に対応するtaglibディレクトリが存在しないかTLDファイルが見つかりません。 とエラーになります。 <%@ page contentType="text/html;charset=Windows-31J" %> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> ・ ・ ・ <html:html> <head> <title>○○○○○○○○</title> </head> <body> <h1>○○○○○○○○</h1> ●●●●<bean:write name="xxxx" property="id" />! </body> </html:html> "html"の方はエラーになりません。 ケアレスミスのような気がしていますので、どなたか教えていただけると嬉しいです。

  • NullPointerException

    Strutsでjspを書きました。下のソースなのですが、どうやらlinkタグがうまくいっていないようなのです。NullPointerになってしまいます。どこが悪いか教えていただけませんか?web.xmlもちゃんと書いてあるし、struts-config.xmlもちゃんと書いたのですが・・・。お願いします。 <%@page contentType="text/html; charset=Shift_JIS" %> <%@ taglib uri="/tags/struts-bean" prefix="bean" %> <%@ taglib uri="/tags/struts-html" prefix="html" %> <%@ taglib uri="/tags/struts-logic" prefix="logic" %> <html:html> <head> <title>top</title> </head> <body> <div align="left"> <hr> <h1><font color="#20B2AA">■ <メニュー画面> ■</font></h1> <hr> <html:link forward="shoppingInitial/Entry"><h3> 登録 </h3></html:link> <html:link forward="shoppingInitial/Browse"><h3> 見る </h3></html:link> </body> </html:html>

    • ベストアンサー
    • Java
  • strutsでフレームの分割ができません。

    strutsで、 http://struts.wasureppoi.com/taglib/03_frame.html を見ながらフレームの分割を下記のように行おうとしていますが、エラーが表示されます。 ソース ---- <%@ page language="java" contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J" %> <%@ taglib uri="/tags/struts-bean" prefix="bean" %> <%@ taglib uri="/tags/struts-logic" prefix="logic" %> <%@ taglib uri="/tags/struts-html" prefix="html" %> <%@ taglib uri="/tags/struts-nested" prefix="nested" %> <html:html> <head> <title>テスト</title> </head> <frameset cols="30%,*"> <html:frame page="l.jsp"/> <html:frame page="r.jsp"/> </frameset> </html:html> ---- エラーメッセージ ---- HTTPステータス 500 - type 例外レポート メッセージ 説明 The server encountered an internal error () that prevented it from fulfilling this request. 例外 org.apache.jasper.JasperException: Exception in JSP: /index08.jsp:13 10: <title>テスト</title> 11: </head> 12: <frameset cols="30%,*"> 13: <html:frame page="l.jsp"/> 14: <html:frame page="r.jsp"/> 15: </frameset> 16: </html:html> Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451) 原因 java.lang.NullPointerException org.apache.struts.taglib.TagUtils.pageURL(TagUtils.java:1070) ---- 別のページを見ると、 <html:frame page="l.jsp" name="hidari"/> とname属性を宣言しているようですが、同様に記述してみると、スコープが無いとエラーが出てしまいます。 環境は、  WindowsXP  Eclipse3.3  Tomcat5.5  struts-1.3.8  JDK1.5 です。 どのように記述すべきか、検索してもヒットしなかったので、恥かしながらここで質問させて頂く事にしました。 どのように直すべきか、分かる方がいらっしゃいましたらご教授頂けないでしょうか?  また、オススメのStrutsの本がありましたら、こちらも教えて頂けたら幸いです。 宜しくお願い致します。

    • ベストアンサー
    • Java
  • 教えてください:strutsのhtml:formタグがjspに展開された状態の、actionの値について

    java初心者です。 どなたか教えていただけませんでしょうか? JAVAのstrutsを使用してソフトを作成しています。 JSPに記載した「<html:form action="/authentication" focus="id"> 」 との記述が、WEB(IE)に展開されたソースを見ると、「<form name="AuthenticationForm" method="post" action="/strutsTest/authentication">」 に変換されています。 action="/authentication"と記述しているにもかかわらず、 action="/strutsTest/authentication"と展開されているのですが /strutsTestが自動的に付与されているのは、なぜなのでしょうか? なにか設定するところがあるのでしょうか? ※struts-config.xmlに指定したpathと一致しない為、404NotFoundになるので自動設定しないように変更したいのです。 ちなみに環境は struts-1.3.10 Apache Tomcat 6.0.14 Server EclipsVersion: 3.4.2 pakage名:struts プロジェクト名:strutsTest struts-config.xmlの設定   <form-beans> <form-bean name="AuthenticationForm" type="struts.AuthenticationForm"/> </form-beans> <global-exceptions> </global-exceptions> <global-forwards> <forward name="fail" path="/login.jsp"/> </global-forwards> <action-mappings> <action path="/authentication" name="AuthenticationForm" type="struts.AuthenticationAction" scope="session"> <forward name="success" path="/welcome.jsp"/> <forward name="fail" path="/login.jsp"/> </action> </action-mappings> login.jsp <%@ page contentType="text/html; charset=Windows-31J" %> <%@ taglib uri="/tags/struts-bean" prefix="bean" %> <%@ taglib uri="/tags/struts-logic" prefix="logic" %> <%@ taglib uri="/tags/struts-html" prefix="html" %> <html:html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Windows-31J"/> <title>ログイン画面</title> </head> <body> <html:errors/> ID・パスワードを入力してください。 <html:form action="/authentication" focus="id"> <html:text property="id" size="16"/> <br> <html:password property="pas" size="16" redisplay="false" /> <br> <html:submit property="submit" value="送信"/> <html:reset value="リセット"/> </html:form> </body> </html:html> 動作順は、login.jsp => AuthenticationAction.class => welcome.jsp です。 よろしくお願いします。

  • charsetについて教えてください。

    StrutsのJSPで開発しています。 ------------------------ <%@ page contentType="text/html;charset=Windows-31J" language="java" %> <%@ taglib uri="struts-bean.tld" prefix="bean" %> <%@ taglib uri="struts-html.tld" prefix="html" %> <%@ taglib uri="struts-logic.tld" prefix="logic" %> <%@ taglib uri="c.tld" prefix="c" %> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Pragma" CONTENT="no-cache"> <META http-equiv="Content-Style-Type" content="text/css"> ------------------------ 以上のように記述した場合、 JSP側のcharsetとMETAタグのcharsetでは、 どちらが優先度が高くなるのでしょうか? 教えてください。

  • JSPで、PG上のstrutsオブジェクトについて

    動作環境 OS:WindowsXP Home Edition SP3 Browser:IE8 OpenSoftWare:Tomcat6.0.29 Framework:Struts2.2.1 Tool:Eclipse3.2.0 JavaPGで、out.println関数を使用して、strutsのオブジェクト書いてもブラウザ上で出力されません。 直接strutsタグで、書くとブラウザ上に正常に表示されます。 Java側で、対応されていないのでしょうか? どなたか、ご指導願います。 ■事象例 1.「a.jsp」実行 <%@ page contentType="text/html; charset=Shift_JIS"%> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>Test</title> </head> <body> <s:form align="center" action="Test" theme="simple"> <% String strtest = "#{'1':'1','2':'2'}"; out.println("<s:select name=\"cbotest\" list=\"#{'1':'1','2':'2'}\"/>"); %> </s:form> </body> </html> 2.「b.jsp」実行 <%@ page contentType="text/html; charset=Shift_JIS"%> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>Test</title> </head> <body> <s:form align="center" action="Test" theme="simple"> <s:select name="cbotest" list="#{'1':'1','2':'2'}"/> </s:form> </body> </html> 3.IE8上の表示(画像添付参照) 1.「a.jsp」結果 何も出力されません。 2.「b.jsp」結果 [1[▼]] [1■■] [2   ]

    • ベストアンサー
    • Java
  • redirectについて

    いつも参考にさせて頂いています。 リダイレクトする処理でつまづいてしまい、調べてみたのですがわからなかったので質問させていただきます。 処理としては単純で、あるJSPにアクセスしたときに、strutsのlogicタグ(redirect)で指定のjspに遷移させたいと思っています。 フィルタークラスでエンコードをしているのですが、そこのインスタンスがnullになっている?とか憶測で思ったりしたのですが、解決策が見つからずにいます。 redirectで特定のjspを表示させる場合の処理としてはどうするのがいいでしょうか? 以上宜しくお願いします。 =========================================== JSPソース =========================================== <%@ page language="java" contentType="text/html; charset=Shift_JIS" pageEncoding="Shift_JIS"%> <%@ taglib uri="/tags/struts-bean" prefix="bean" %> <%@ taglib uri="/tags/struts-logic" prefix="logic" %> <%@ taglib uri="/tags/struts-html" prefix="html" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>Insert title here</title> </head> <body> <logic:redirect forward="login" /> </body> </html> ==================================== エラー内容 ==================================== org.apache.jasper.JasperException org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) com.llc.aison.seikei.util.SeikeiEncodingFilter.doFilter(SeikeiEncodingFilter.java:35) 原因 java.lang.NullPointerException org.apache.struts.taglib.TagUtils.computeURLWithCharEncoding(TagUtils.java:428) org.apache.struts.taglib.TagUtils.computeURLWithCharEncoding(TagUtils.java:311) org.apache.struts.taglib.logic.RedirectTag.generateRedirectURL(RedirectTag.java:294) org.apache.struts.taglib.logic.RedirectTag.doEndTag(RedirectTag.java:268) org.apache.jsp.index_jsp._jspx_meth_logic_redirect_0(index_jsp.java:97) org.apache.jsp.index_jsp._jspService(index_jsp.java:70) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) com.llc.aison.seikei.util.SeikeiEncodingFilter.doFilter(SeikeiEncodingFilter.java:35) ==================================== struts.configにて以下のように設定 ==================================== <global-forwards> <forward name="login"  path="/WEB-INF/jsp/login.jsp" /> </global-forwards>

  • 「StrutsによるWebアプリケーションスーパーサンプル」の本のサンプルのエラーについて

    「StrutsによるWebアプリケーションスーパーサンプル」(ソフトバンククリエィティブ)の本のP.124ページの「2-1」電子カタログを作ろうのサンプルなのですが、 P.125~128に記載されているデータベースの作成をして、2-1.warファイルをtomcatのwebappsのフォルダの なかにコピーしてtomcatを起動するとうまく解凍されてhttp://localhost:8080/2-1/Catalog.doにアクセスすると 正常に表示されたのですが、その解凍したファイルをeclipse側で2-1というプロジェクトを作成してインポートして strutsのlibの下のjarを追加してやると、 インポート javax.sql.DataSource は決して使用されません。の警告がでていました。 ソースのなかではDataSourceは使用しているのに警告が出ていたのが気になります。l http://localhost:8080/2-1/Catalog.doにアクセスすると以下のようなエラーが表示されました。 <エラー> org.apache.jasper.JasperException: 絶対URI: http://jakarta.apache.org/struts/tags-bean は web.xmlまたはこのアプリケーションを配備したJARファイルのどちらかでも解決できません 以下の内容をweb.xmlに追加して解決しました。 <web.xml> <taglib> <taglib-uri>/tags/struts-bean</taglib-uri> <taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location> </taglib> <taglib> <taglib-uri>/tags/struts-html</taglib-uri> <taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location> </taglib> <taglib> <taglib-uri>/tags/struts-logic</taglib-uri> <taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location> </taglib> <taglib> <taglib-uri>/tags/struts-tiles</taglib-uri> <taglib-location>/WEB-INF/tld/struts-tiles.tld</taglib-location> </taglib> <taglib> <taglib-uri>/tags/struts-nested</taglib-uri> <taglib-location>/WEB-INF/tld/struts-nested.tld</taglib-location> </taglib> <taglib> つぎに、http://localhost:8080/2-1/Catalog.doにアクセスすると HTTP Status 404 - /2-1/Catalog.doのエラーがでて原因がわからなくてこまっています。 データベースが作成されていることは確認しています。 開発環境についてはCDに付属のものを使用してバージョンはあわせています。 tomcatでwarを解凍して削除すると設定データのごみが残っているのかなと思いまして、一度eclipseとtomcatを削除 して再インストールをしてもうまくいきませんでした。 C:\Program Files\Apache Group\Tomcat 4.1\confのなかのserver.xmlのなかには設定は追加されていることは 確認しています。 <Context path="/2-1" reloadable="true" docBase="C:\eclipse\workspace\2-1" workDir="C:\eclipse\workspace\2-1\work\org\apache\jsp" /> あと、DFツール、ファイル作成機でファイルとソースの内容を比較してみましたが、 おかしなところはありませんでした。 warファイルをtomcatのwebappsに入れるとエラーなくうまくいくのですが、eclipseからだとエラーになります。 どうかご教授よろしくお願いします。

  • jsp実行時に、taglibのuriが解決されない

    Eclipse4.2Juno Pleiades All in Oneをダウンロードして、 strutsの簡単なサンプルコードを作成しているのですが、 jspの冒頭に、 <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> と記述しているのですが、 実行すると、 「絶対URI: http://struts.apache.org/tags-html はweb.xmlとこのアプリケーションを配備したJARファイルのどちらかでも解決できません」 というエラーメッセージが出てしまい、うまくいきません。 現状、 「struts-taglib-1.3.10.jar」を WEB-INF/lib に置いてビルドパスに指定すると、 JSPの実行前のコンパイルエラーは消えるのですが、 いざ実行すると上記エラーになってしまうという状況です。 どなたかもしおわかりになる方がいらっしゃいましたら、教えてください。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • Java
  • eclipse+Struts+Tomcat

    eclipse+Struts+Tomcatという環境で開発を行おうとしています。 環境は以下のとおりです。 Pleiades all in one 3.5 struts 1.3.10 Tomcat 6.0.29 まず手始めに、一番シンプルなフォームに送信ボタンが1つあるだけのものを作ろうとしているのですが、以下のエラーが出て先に進めません。 The server encountered an internal error () that prevented it from fulfilling this request. 書いたソースは下記のとおりです。 <?xml version="1.0" encoding="UTF-8" ?> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>hogehoge</title> </head> <body> <html:form action="/HOGE" method="post"> <html:submit value="送信" /> </html:form> </body> </html> これをhtmlタグを一切使わずに書くと何のエラーもなく表示されます。 eclipseでhtmlタグを使用しない開発は考えられないのですが、今回Javaが初めてで何がどう悪いのかの見当もつきません。 プロジェクト自体は、「動的Webプロジェクト」で作成しています。 どなたかご存知の方はご教示いただければと思います。 よろしくお願いいたします。

    • ベストアンサー
    • Java

専門家に質問してみよう