Servlet 重定向到空白页面
Servlet redirecting to blank page
每当我点击 submit
它会重定向到一个空白页面,但 url 工作正常
我对我的回复标签是否错误感到困惑
代码:
protected void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {
Connection con=connector.getConnection();
String username = request.getParameter("username");
String password = request.getParameter("password");
String message = null;
String url = null;
try {
PreparedStatement ps = con.prepareStatement( "Select * from data Where username=?'" + username + "' and password=?'" + password + "';");
ps.setString(1, request.getParameter("username"));
ps.setString(2, request.getParameter("password"));
ResultSet rs = ps.executeQuery();
if(rs.next()) {
RequestDispatcher rd=request.getRequestDispatcher("practice1.jsp");
rd.forward(request,response);
}
else {
message="Invalid Input Please Try Again";
request.setAttribute("message", message);
request.setAttribute("url", url);
}
}
catch(SQLException ex){
message="ERROR"+ex.getMessage();
ex.printStackTrace();
}
请让我知道我缺少什么。
尝试通过更改以下代码来修复它:
之前:
PreparedStatement ps = con.prepareStatement( "Select * from data Where username=?'" + username + "' and password=?'" + password + "';");
ps.setString(1, request.getParameter("username"));
ps.setString(2, request.getParameter("password"));
之后:
PreparedStatement ps = con.prepareStatement( "Select * from data Where username=? and password=?");
ps.setString(1, username);
ps.setString(2, password);
在 if 块中,只要有数据,请求调度程序就会将请求转发到 practice1.jsp 页面。
if(rs.next()) {
RequestDispatcher rd=request.getRequestDispatcher("practice1.jsp");
rd.forward(request,response);
}
但在 else 块的情况下,仅请求设置如下:
request.setAttribute("message", message);
request.setAttribute("url", url);
但如果要在UI中显示,我们应该指定response而不是request。
else {
message="Invalid Input Please Try Again";
response.getWriter().print("<html><head><title>
Oops an error happened!</title> </head>");
response.getWriter().print("<body>"+message+"</body>");
response.getWriter().println("</html>");
//request.setAttribute("message", message);
//request.setAttribute("url", url);
}
每当我点击 submit
它会重定向到一个空白页面,但 url 工作正常
我对我的回复标签是否错误感到困惑
代码:
protected void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {
Connection con=connector.getConnection();
String username = request.getParameter("username");
String password = request.getParameter("password");
String message = null;
String url = null;
try {
PreparedStatement ps = con.prepareStatement( "Select * from data Where username=?'" + username + "' and password=?'" + password + "';");
ps.setString(1, request.getParameter("username"));
ps.setString(2, request.getParameter("password"));
ResultSet rs = ps.executeQuery();
if(rs.next()) {
RequestDispatcher rd=request.getRequestDispatcher("practice1.jsp");
rd.forward(request,response);
}
else {
message="Invalid Input Please Try Again";
request.setAttribute("message", message);
request.setAttribute("url", url);
}
}
catch(SQLException ex){
message="ERROR"+ex.getMessage();
ex.printStackTrace();
}
请让我知道我缺少什么。
尝试通过更改以下代码来修复它:
之前:
PreparedStatement ps = con.prepareStatement( "Select * from data Where username=?'" + username + "' and password=?'" + password + "';");
ps.setString(1, request.getParameter("username"));
ps.setString(2, request.getParameter("password"));
之后:
PreparedStatement ps = con.prepareStatement( "Select * from data Where username=? and password=?");
ps.setString(1, username);
ps.setString(2, password);
在 if 块中,只要有数据,请求调度程序就会将请求转发到 practice1.jsp 页面。
if(rs.next()) {
RequestDispatcher rd=request.getRequestDispatcher("practice1.jsp");
rd.forward(request,response);
}
但在 else 块的情况下,仅请求设置如下:
request.setAttribute("message", message);
request.setAttribute("url", url);
但如果要在UI中显示,我们应该指定response而不是request。
else {
message="Invalid Input Please Try Again";
response.getWriter().print("<html><head><title>
Oops an error happened!</title> </head>");
response.getWriter().print("<body>"+message+"</body>");
response.getWriter().println("</html>");
//request.setAttribute("message", message);
//request.setAttribute("url", url);
}