2011-07-24 21 views
0
*//post method* 
protected void doPost (HttpServletRequest req, HttpServletResponse res) 
     throws ServletException,IOException { 
     String username = req.getParameter("username"); 
     String password = req.getParameter("password"); 
     System.out.println(" Form data recieved .. Now Verifying "); 

     if (loginVerificator (username, password)) { 
      Cookie xO = new Cookie ("username", username); 
      Cookie xT = new Cookie ("password", password);    
      res.addCookie(xO); 
      res.addCookie(xT); 
      res.setContentType("text/html"); 
      PrintWriter out = res.getWriter(); 
      out.println("<meta http-equiv=\"refresh\" content=\"2\";url=\"home\">"); 
     } 

post方法检索表单参数,然后从它们创建cookie并将这些cookie添加到响应中。然后它用meta标签重定向页面。为什么Servlet页面刷新/重新加载而不是重定向(使用meta标签)?

我想知道为什么这个页面正在重新加载而不是重定向。我无法找到我犯的错误。

回答

0

out.println("<meta http-equiv=\"refresh\" content=\"2\";url=\"home\">");

在与下面的值的响应写入meta标签:

<meta http-equiv="refresh" content="2";url="home">这是不正确,作为URL不被引号为内容属性值包裹。相反,标签应已生成的:

<meta http-equiv="refresh" content="2;url=home">这需要在servlet的相应行是:

out.println("<meta http-equiv=\"refresh\" content=\"2;url=home\">");


注意,meta refresh概念已经deprecated by W3C。如果您打算将用户重定向到新页面,最好使用HTTP 302响应,这在HTTP Servlet中使用HttpServletResponse.sendRedirect(location)方法很容易实现。

+0

thanx先生。 –

+0

不客气。 –

相关问题