- 締切済み
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です
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- pcbeginner
- ベストアンサー率46% (261/560)
- PED02744
- ベストアンサー率40% (157/390)
struts で <bean:write name="username" scope="session"/> を使うのなら、 セッションスコープにusernameという名前の変数を用意しておく必要がありますね。 一般的には <bean:write name="dbobj" property="username" scope="session"/> として、セッションスコープにDB属性のオブジェクトBEANを入れておいて(上の例だとdbobjという名前) getUsernameメソッドでユーザ名を取り出せるようにしておくのが普通でしょう。
補足
回答有難うございます。超初心者でして、会社に入社してまだ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();