当前位置: 首页 > 知识库问答 >
问题:

如何从servlet重定向到jsp页面

孔逸春
2023-03-14

我有一个带有登录表单的jsp页面,我使用的是servlet,如果用户名和密码正确,servlet会将用户重定向到另一个页面,否则它会再次将用户重定向到登录页面

下面是servlet

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.mysql.jdbc.PreparedStatement;

/**
 * Servlet implementation class LogServlet
 */
@WebServlet("/LogServlet")
public class LogServlet extends HttpServlet {
private static final long serialVersionUID = 1L;




public LogServlet() {
    super();

}



protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    response.setContentType("text/html");


    String name=request.getParameter("name");
    String password=request.getParameter("password");

    PreparedStatement ps = null;
    ResultSet rs = null;

    try {
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/log",
                "root","");
        ps = (PreparedStatement) conn.prepareStatement("select nom_client,username,password from client where username = ? and password = ?");

        ps.setString(1, name);
        ps.setString(2, password);
        rs=ps.executeQuery();



    try {
        while(rs.next()){
        if(password.equals(rs.getString("password")) && name.equals(rs.getString("username"))){

        HttpSession session=request.getSession();
        session.setAttribute("name",name);
        PrintWriter out=response.getWriter();
        request.getRequestDispatcher("reservation.jsp").include(request, response);
        }
        else{
            response.sendRedirect("/login.jsp");

        }}
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();

    }
    System.out.close();


    }
    catch(Exception e){e.printStackTrace();}


}
}

共有1个答案

周博达
2023-03-14

使用request.getContextPath(),它会将您重定向到登录页面。

response.sendRedirect(request.getContextPath()+"/login.jsp");

如果在这种情况下到达登录页面,则将requestresponse对象传递到jsp页面。

request.getRequestDispatcher(request.getContextPath()+"/login.jsp").forward(request,response);
 类似资料:
  • 这里我想使用RequestDispatcher从servlet调用jsp页面,问题是在jsp代码中调用java代码没有问题,问题是html代码不起作用 下面是代码: 重定向servlet。爪哇: showReportt_arb。jsp: 在上面的逻辑中,java代码显示在服务器控制台中,但html代码没有显示。请帮我解决这个问题

  • 我有2个问题 1)我有一个login.jsp页和索引页。一旦我验证了用户(在servlet ie中),用户将被重定向到index.jsp页面。我用servlet的这条线重定向它 这个过程运行良好。但是当我刷新页面时,我会被重定向回登录页面。另外,我注意到在index.jsp页面上,我得到的名字而不是index.jsp,即我的servlet名称得到displayed.for这样的例子得到代替显示 2

  • 登录。当点击按钮时,我想从这里重定向到另一个jsp页面,但它只在servlet页面中,而不是从那里重定向到另一个jsp页面,即CustomerLogin。jsp servlet编码

  • 当需要将文档移动到一个新的位置时,就需要使用JSP重定向了。 最简单的重定向方式就是使用response对象的sendRedirect()方法。这个方法的签名如下: public void response.sendRedirect(String location) throws IOException 这个方法将状态码和新的页面位置作为响应发回给浏览器。您也可以使用setStatus()和

  • 问题内容: 我正在编写servlet,以防万一,我将重定向到自定义错误页面,因为这样做是这样的。 在web.xml中 在Servlet中, 但是这里没有显示,我要去哪里出错了,谁能解释一下我? 问题答案: 问题是您捕获了Exception,因此没有Exception将离开您的方法。如果匹配项(相同或相同的子类)离开您的方法,则只会重定向错误页面。 您应该将捆绑包重新扔入例如: 不幸的是,如果我们谈

  • 我在我的jsp(welcome.jsp)页面上有一个Submit按钮,在这个按钮上我将请求发送给myservlet(导入部件)。我在servlet中进行了一些验证,当验证失败时,我将用户重定向到error.jsp页面,该页面给出了一条合适的消息。这个error.jsp还有一个close按钮,在我将响应转发到error.jsp之后,这个按钮就不工作了。 如果我直接在browser中启动error.j