Servlet返回空白页而不重定向到JSP页

时间:2019-04-05 16:17:30

标签: java jsp servlets

我正在处理登录和注册表格。我已经成功创建了“登录和注册”表单并将它们链接在一起。现在,我为管理员创建了一个单独的页面,要在其中显示数据库。但是我无法移至管理页面。每当我输入管理员凭据时,它总是显示空白页。我对Java和stackoverflow都是新手,所以我不知道如何提出适当的问题。我在这里粘贴了所有代码。我的主要问题是Login.java。我正在使用eclipse和tomcat 8.5。

我到目前为止尝试过的东西: 1)RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/admin.jsp"); rd.forward(request, response); 2)HttpServletResponse.sendRedirect("/WEB-INF/admin.jsp") 3)response.sendRedirect("WEB_INF/admin.jsp");

Registering.java

 public class Registeration extends HttpServlet {
 private static final long serialVersionUID = 1L;

 public Registeration(){
    super();
 }



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

 }
 protected void doPost(HttpServletRequest request, HttpServletResponse 
 response)
        throws ServletException, IOException{
    try {
        String usernam = request.getParameter("usernam");
        String password = request.getParameter("password");
        String age = request.getParameter("age");
        String gender = request.getParameter("gender");
        String event = request.getParameter("event");
        String sql = "insert into 
 registeration(usernam,password,age,gender,event) values(?,?,?,?,?)";
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = 
 DriverManager.getConnection("jdbc:mysql://localhost:3306/portal", 
 "root", "");
        PreparedStatement ps = conn.prepareStatement(sql);
        ps.setString(1,usernam);
        ps.setString(2,password);
        ps.setString(3,age);
        ps.setString(4,gender);
        ps.setString(5,event);
        ps.executeUpdate();
        PrintWriter out = response.getWriter();
        out.println("You have successfully registered!");
        out.flush();
        RequestDispatcher rd = request.getRequestDispatcher("login.jsp");
        rd.include(request, response);
    } 

    catch (ClassNotFoundException e) {
        e.printStackTrace();
    } 
    catch (SQLException e) {
        e.printStackTrace();

    }
}

}

Registeration.jsp

 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
 pageEncoding="ISO-8859-1"%>
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
 "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>JSP Page</title>
    <style>
 img {
 display: block;
 margin-left: auto;
 margin-right: auto;
 }
 </style>
 </head>
 <img src="unilogo.PNG" style="width:40%">
 <body>
    <div align="center">
    <form action="Registeration" method="POST">
        User Name:<input type="text" name="usernam" required="required"> 
 <br>
        Password : <input type="password" name="password" 
 required="required"><br>
        Age : <input type="text" name="age" required="required" /><br>
        Gender : <select name="gender">
            <option>Male</option>
            <option>Female</option>
            <option>Transgender</option>
        </select><br>
        Event : <select name="event" multiple="multiple">
            <option>Mr.Tanwar Body Building</option>
            <option>Fashion Show</option>
            <option>Dance</option>
            <option>Singing</option>
            <option>Coding</option>
        </select><br>
        <input type="submit" value="REGISTER" />
        <input type="reset" value="RESET" /><br>
        <a  href="${pageContext.request.contextPath}/login.jsp">Click 
here 
to go to the login page</a>            
     </form>
</div>
</body>
</html>

Login.jsp

 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
 pageEncoding="ISO-8859-1"%>
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
 "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Login Page</title>
 </head>
 <body>
    <div align="center">
    <form action="Login" method="POST">
        User Name:<input type="text" name="usernam" required="required"> 
 <br>
        Password : <input type="password" name="password" 
 required="required"><br>
        <input type="submit" value="Login" />
        <input type="reset" value="RESET" /><br>
        <a  
 href="${pageContext.request.contextPath}/registeration.jsp">Click here 
to 
go to the Registration page</a>

    </form>
</div>
</body>
</html>

Login.java

public class Login extends HttpServlet {
private static final long serialVersionUID = 1L;

 public Login() {
     super();

 }

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


}

protected void doPost(HttpServletRequest request, HttpServletResponse 
response) throws ServletException, IOException {
     try {
            String usernam = request.getParameter("usernam");
            String password = request.getParameter("password");
            String dbName = null;
            String dbPassword = null;
            String sql = "select * from registeration where usernam = 
 ? and password = ?";
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn = 
 DriverManager.getConnection("jdbc:mysql://localhost:3306/portal", 
 "root", 
  "");
            PreparedStatement ps = conn.prepareStatement(sql);
            ps.setString(1,usernam);
            ps.setString(2,password);
            ResultSet rs = ps.executeQuery();
            PrintWriter out = response.getWriter();
            while(rs.next()){
                dbName = rs.getString(2);
                dbPassword = rs.getString("password");
                if(usernam.equals("admin") && 
 password.equals("password")){

                    RequestDispatcher rd = 
  request.getRequestDispatcher("/WEB-INF/admin.jsp");
                    rd.forward(request, response);
                }
                if(usernam.equals(dbName) && 
 password.equals(dbPassword)) {
                    out.println("You have successfully logged 
 in!");
                    out.println("Age:"+rs.getString(4)+" 
 Gender:"+rs.getString(5)+" Event:"+rs.getString(6));
                }
                else {
                    RequestDispatcher rd = 
 request.getRequestDispatcher("/WEB-INF/registeration.jsp");
                    rd.forward(request, response);
                }

            }

        } 
        catch (ClassNotFoundException e) {
            e.printStackTrace();
        } 
        catch (SQLException e) {
            e.printStackTrace();

        }
 }

 }

web.xml

 <?xml version="1.0" encoding="UTF-8"?>
 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
 http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" 
 version="3.1">
 <display-name>Registeration</display-name>
 <servlet>
 <servlet-name>reg</servlet-name>
 <servlet-class>jdbc.registeration</servlet-class>
 </servlet>
 <servlet-mapping>
 <servlet-name>reg</servlet-name>
 <url-pattern>/regServlet</url-pattern>
 </servlet-mapping>
 <servlet>
 <servlet-name>login</servlet-name>
 <servlet-class>jdbc.Login</servlet-class>
 </servlet>
 <servlet-mapping>
 <servlet-name>login</servlet-name>
 <url-pattern>/loginServlet</url-pattern>
 </servlet-mapping>
 <session-config>
 <session-timeout>30</session-timeout>
 </session-config>

 </web-app>

当我输入管理员详细信息时,我的登录页面应该将我重定向到admin.jsp。但是我得到的只是一个空白页。输入管理员详细信息“ http://localhost:8080/Registeration/Login”后的我的网址。输入存储在数据库中的登录ID时,我得到了所需的输出。

0 个答案:

没有答案