0

JSP とサーブレットは初めてなので、しばらくお待ちください。JSP とサーブレット間の通信に問題があります。

ログインページを作成しようとしています。

これは、LogIN の Index JSP ページです。

<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<html>
    <head><title>  index.jsp</title></head>
    <body bgcolor="orange">
    <h2> <font color=white> JSP index.jsp at</font>
            <%= request.getContextPath () %>
            <font color=white>
            </font></h2><hr>


            <form action="LibrarySysServlet" method ="POST">
            <font color=navy><h3>Login</h3>
                <table>
                <tr>
                    <td> MemberId </td>
                    <td align="left"><input type="text" name="memId" length="30"/></td>
                </tr>
                <tr>
                    <td> Password </td>
                    <td align="left"><input type="text" name="password" length="30"/></td>
                </tr>
                </table>
                <br>
                <p><input type="submit" value="Submit"/></p>

                </font>
            </form>

            <br>
    </body>
</html>

ログインが正しいかどうかで宛先が変わるので、ログイン時のインデックスページのフォームアクションに何を入れたらいいのか非常に迷っています。

私のサーブレット側では、インデックスページをスキャンして関数に渡し、logIn が正しいかどうかを確認し、別の回答に従ってリダイレクトしようとしました。

ただし、実行するとリダイレクトされず、フォームアクションで指定されたものに進みます。

コードの短いスニペット (長すぎるため、全体を貼り付けませんでした):

    RequestDispatcher dispatcher;
                ServletContext servletContext = getServletContext(); //links to index.JSP

                String page = request.getPathInfo();
                page = page.substring(1);


                if ("index".equals(page)) {
                    if (logIn(request)) {
                      dispatcher= servletContext.getRequestDispatcher("/result.jsp");
                     } else {
                     dispatcher= servletContext.getRequestDispatcher("/Menu.jsp");
                     }
                 }

本当に混乱ヘルプ!私は何を間違っていますか??

4

3 に答える 3

0
  RequestDispatcher dispatcher;
                ServletContext servletContext = getServletContext(); //links to index.JSP

               //check here your username and password and put into a variable true or false



                    if (variable== true) {
                      dispatcher= servletContext.getRequestDispatcher("/result.jsp");
                     } else {
                     dispatcher= servletContext.getRequestDispatcher("/Menu.jsp");
                     }
             }
于 2013-03-26T04:17:32.107 に答える
0

ディスパッチャーではなく、 reponse.sendRedirect("{url}") を使用することをお勧めします。

また、logIn メソッドをテストして、希望どおりに機能するかどうかを確認します

于 2013-03-26T04:21:44.260 に答える
0

コンテナーを活用して、FORM ベースの認証を使用できます。web.xml で:

   <login-config>
      <auth-method>FORM</auth-method>
      <form-login-config>
         <form-login-page>login.html</form-login-page>
         <form-error-page>login_error.html</form-error-page>
      </form-login-config>
   </login-config>

次に、login.html で:

   Please log in:
   <form method="POST" action="j_security_check">
      <input type="text" name="j_username">
      <input type="password" name="j_password">
      <input type="submit" value="Login">
   </form>

これを機能させるには、j_security_check、j_username、および j_password を使用する必要があります。

于 2013-03-26T04:40:39.683 に答える