電子書籍の厳選無料作品が豊富!

基本的にはタイトルの質問なんですが、具体的な書き方がわかりません。
今作成しているのが
TOP画面(JSP)
・入力フォームに検索条件

Servlet
・入力された条件でDB検索
 何か検索されれば次画面へ遷移
 何も検索されなければTOP画面へ戻る
というものですが、

public class LoginCheck1 extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException{

response.setContentType("text/html; charset=Shift_JIS");
PrintWriter out = response.getWriter();

String user = request.getParameter("user");
String pass = request.getParameter("pass");

HttpSession session = request.getSession(true);

boolean check = authUser(user, pass);
if (check){
/* 認証済みにセット */
session.setAttribute("login", "OK");

/* 本来のアクセス先へ飛ばす */
String target = (String)session.getAttribute("target");
response.sendRedirect(target);
}else{
/* 認証に失敗したら、ログイン画面に戻す */
session.setAttribute("status", "Not Auth");
response.sendRedirect("/auth/Login");
}
}

protected boolean authUser(String user, String pass){
/* 取りあえずユーザー名とパスワードが入力されていれば認証する */
if (user == null || user.length() == 0 || pass == null || pass.length() == 0){
return false;
}

return true;
}
}

サーブレットはこんな感じで書いてるんですが、
response.sendRedirect("/auth/Login");
の部分が悪いんでしょうか?

A 回答 (2件)

HttpServletRequestクラス、HttpSessionクラスのsetAttribute、getAttributeメソッドです。


詳細はJavaDocを見て下さい。
    • good
    • 0
この回答へのお礼

参考になりました。回答ありがとうございました!

お礼日時:2009/07/24 23:41

>サーブレットはこんな感じで書いてるんですが、


>response.sendRedirect("/auth/Login");
>の部分が悪いんでしょうか?
質問者さんが期待する結果と実際の結果が書かれてないので、
この部分がどう悪いのかはよくわかりませんが…。
(やりたいことは伝わりますが…。)

検索結果うんぬんは抜きにして、
JSP1→Servlet→JSP2
という遷移を行うことができますか?

↑ができるならJSP1とJSP2に同じJSPを指定するだけです。

JSPから取得した入力値を表示するには、リクエストなりセッションに値をセットしてJSPで取得すれば良いでしょう。

この回答への補足

回答ありがとうございます。
期待する結果は
アカウント 12345
パスワード abcde と入力してそれがDBに登録してなかった場合

アカウント 12345
パスワード abcde と入力値がそのままで戻って欲しいのですが
今は、

アカウント 
パスワード と消えて表示されます。

>JSP1→Servlet→JSP2
という遷移を行うことができますか?

できます。
 JSP1→Servlet→JSP1となってますが。

>JSPから取得した入力値を表示するには、リクエストなりセッションに値をセットしてJSPで取得すれば良いでしょう。

どのように書けばいいんでしょうか?

補足日時:2009/07/23 19:10
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!