Request Object Scope
* 问题:使用请求转发后,不同的Servlet之间怎么进行数据的共享呢?
* 或者说数据怎么从一个servlet流转给另外一个Servlet呢?
*
*
* 解决:使用request对象的作用域
* 使用:
*
* request.setAttribute(object name,Object value);
*
* request.getAttribute(Object obj)
*
* 作用:解决了一次请求内的不同Servlet的数据共享问题
* 作用域:基于请求转发,一次请求中的所有Servlet共享
*
* 注意:
* 使用Request对象进行数据流转,数据只在一次请求内有效
*
*
* 特点:
* 服务器创建
* 每次请求都会创建
* 生命周期一次请求
*
*/
//使用request对象实现不同Servlet的数据流转
req.setAttribute("str", "用户名或密码错误");
String str = (String) req.getAttribute("str")==null?"":(String) req.getAttribute("str");
// System.out.println(str);
resp.getWriter().write("<html>");
resp.getWriter().write("<head>");
resp.getWriter().write("</head>");
resp.getWriter().write("<body>");
resp.getWriter().write("<font color = 'red' size='20px'>"+str+"</font>");
resp.getWriter().write("<form action='Login' method='get'>");
resp.getWriter().write("用户名:<input type= 'text' name ='uname'value=''/><br/>");
resp.getWriter().write("密 码:<input type= 'password' name ='pwd'value=''/><br/>");
resp.getWriter().write("<input type= 'submit' value='登 录'/><br/>");
resp.getWriter().write("</form>");
resp.getWriter().write("</body>");
resp.getWriter().write("</html>");
Or you can write:
String str = (String) req.getAttribute("str");
if(str!=null){
resp.getWriter().write("<html>");
resp.getWriter().write("<head>");
resp.getWriter().write("</head>");
resp.getWriter().write("<body>");
resp.getWriter().write("<font color = 'red' size='20px'>"+str+"</font>");
resp.getWriter().write("<form action='Login' method='get'>");
resp.getWriter().write("用户名:<input type= 'text' name ='uname'value=''/><br/>");
resp.getWriter().write("密 码:<input type= 'password' name ='pwd'value=''/><br/>");
resp.getWriter().write("<input type= 'submit' value='登 录'/><br/>");
resp.getWriter().write("</form>");
resp.getWriter().write("</body>");
resp.getWriter().write("</html>");
}else{
resp.getWriter().write("<html>");
resp.getWriter().write("<head>");
resp.getWriter().write("</head>");
resp.getWriter().write("<body>");
resp.getWriter().write("<form action='Login' method='get'>");
resp.getWriter().write("用户名:<input type= 'text' name ='uname'value=''/><br/>");
resp.getWriter().write("密 码:<input type= 'password' name ='pwd'value=''/><br/>");
resp.getWriter().write("<input type= 'submit' value='登 录'/><br/>");
resp.getWriter().write("</form>");
resp.getWriter().write("</body>");
resp.getWriter().write("</html>");
}
}