以下是我想要通过会话的两个 servlet。
问题是会话传递是在导航到 SuccessPage servlet 时完成的,而不是在它转到 Failure servlet 时完成的。
登录servletdoGet()
方法:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException{
PrintWriter out=response.getWriter();
response.setContentType("text/html");
String userName=request.getParameter("userName");
String userPass=request.getParameter("userPassword");
String userRePass=request.getParameter("userRePassword");
try{
String query="Select VendorName from vendorinfo where VendorPass=?";
connection1=Connection_Class.getInstance().getConnection();
ptmt=connection1.prepareStatement(query);
ptmt.setString(1,userPass);
rs=ptmt.executeQuery();
if(rs.next()&& userName.equalsIgnoreCase(rs.getString("VendorName"))){
HttpSession session=request.getSession(true);
session.setAttribute("loggedVendor",rs.getString(1));
//this is working fine...im able to get the userName in the next servlet
ServletContext context = getServletContext();
RequestDispatcher dispatcher=context.getRequestDispatcher("/SuccessPage");
dispatcher.forward(request,response);
}
else{ //this is not working .....whats the problem here ?
request.setAttribute("wrongUser",userName);
ServletContext context=getServletContext();
RequestDispatcher dispatcher=context.getRequestDispatcher("/Failure");
dispatcher.forward(request,response);
}
}
catch(SQLException e){
e.printStackTrace();
}
}
失败的servletdoGet()
方法:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
/*all i want to do here is that I want to get the userName from the previous servlet but its
not displaying that and its displaying null */
response.setContentType("text/html");
PrintWriter out=response.getWriter();
out.println("<body bgcolor=#F3EEF0><h1>");
out.println("<center>");
HttpSession session=request.getSession(false);
out.println("This is a failure page");
out.println(session.getAttribute("wrongUser"));
out.println("</center></h1></body>");
}
代码有问题吗?