一直在考虑如何带参数地返回错误信息,曾试过用以下方法:
将 错误信息作为属性用request内置对象带回注册页面;
request.setAttribute("unameError", "empty username!");
request.setAttribute("upwError", "empty password!");
response的setHeader()方法实现页面的跳转
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
String newLocn = "register.jsp";
response.setHeader("Location",newLocn);
但是出现的问题是:在注册页面中,提取的属性为空。
String name=(String)request.getParameter("username");
String password=(String)request.getParameter("password");
后来知道通过setHeader()重定向跳转页面的数据是通过URL参数来传递的,http://blog.sina.com.cn/s/blog_6effdb920100so89.html
阅读了这篇文章之后,改用以下方法实现页面跳转,问题就解决了。
response.setContentType("text/html; charset=gb2312");
ServletContext sc = getServletContext();
RequestDispatcher rd = null;
rd = sc.getRequestDispatcher("/register.jsp"); //定向的页面
rd.forward(request, response);