29

サーブレットでの処理が完了し、結果が有効になったら、応答を別の JSP ページ ( welcome.jspWeb コンテンツ フォルダーなど) にリダイレクトする必要があります。どうすればいいですか?

例えば:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    try {

         // Some processing code here ...

         // How do I redirect to another JSP here when I'm ready?

    } catch (Exception e) {
        throw new ServletException(e);
    }
}
4

3 に答える 3

35

HttpServletResponse#sendRedirect(String location)メソッドを見てください。

次のように使用します。

response.sendRedirect(request.getContextPath() + "/welcome.jsp")

HttpServletResponse#setHeader(String name, String value)または、メソッドを見てください。

リダイレクトは、ロケーションヘッダーを追加することで設定されます。

response.setHeader("Location", request.getContextPath() + "/welcome.jsp");
于 2012-11-29T09:13:38.407 に答える
3

以下のコードを使用してお知らせください

try{

            Class.forName("com.mysql.jdbc.Driver").newInstance();
            con = DriverManager.getConnection(c, "root", "MyNewPass");
            System.out.println("connection done");


            PreparedStatement ps=con.prepareStatement(q);
            System.out.println(q);
            rs=ps.executeQuery();
            System.out.println("done2");
            while (rs.next()) {
               System.out.println(rs.getString(1));
               System.out.println(rs.getString(2));

            }

         response.sendRedirect("myfolder/welcome.jsp"); // wherever you wanna redirect this page.

        }
            catch (Exception e) {
                // TODO: handle exception
                System.out.println("Failed");
            }

myfolder/welcome.jspページの相対パスですjsp。したがって、jspページパスに従って変更してください。

于 2012-11-29T09:20:29.833 に答える
3
    String u = request.getParameter("username");
    String p = request.getParameter("password");

    try {
        st = con.createStatement();
        String sql;
        sql = "SELECT * FROM TableName where USERNAME = '" + u + "' and PASSWORD = '"
                + p + "'";
        ResultSet rs = st.executeQuery(sql);
        if (rs.next()) {
            RequestDispatcher requestDispatcher = request
                    .getRequestDispatcher("/home.jsp");
            requestDispatcher.forward(request, response);
        } else {

            RequestDispatcher requestDispatcher = request
                    .getRequestDispatcher("/invalidLogin.jsp");
            requestDispatcher.forward(request, response);

        }

    } catch (Exception e) {
        e.printStackTrace();
    }
    finally{
        try {
            rs.close();
            ps.close();
            con.close();
            st.close();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
于 2014-02-25T16:56:41.840 に答える