8 request作用域与set/getAttribute(); | 您所在的位置:网站首页 › attribute作用 › 8 request作用域与set/getAttribute(); |
request作用域
request的作用域为:一次request周期,从请求到响应结束。 set/getAttribute()如果我们需要在一个request周期内,不同的servlet之间传递一些额外信息(除原本的request对象中的信息),我们就需要使用request对象的set和getAttribute()方法来实现。 例如:在 文章7的基础上,我们想添加这样一个功能:如果登陆失败了,返回到登录页面(PageServlet)并附加“账号或密码错误”句子,要如何做呢? 第一步:我们在处理登陆的servlet中(LoginServlet),在判断为登陆失败的逻辑代码块中,加上req.setAttribute("msg","账号或密码错误");,如下: //请求转发 req.setAttribute("msg", "账号或密码错误"); req.getRequestDispatcher("page").forward(req, resp); return; }
第二步:在PageServlet中,我们加上这样两句句代码: String msg = (String) req.getAttribute("msg")==null?"":(String) req.getAttribute("msg"); resp.getWriter().write(""); resp.getWriter().write(""+msg+"");完整的PageServlet代码如: package com.xiaohei.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.*; public class PageServlet extends HttpServlet{ @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //设置响应编码格式 resp.setContentType("text/html;"); //获取请求信息 //处理请求 //响应处理结果 String msg = (String) req.getAttribute("msg")==null?"":(String) req.getAttribute("msg"); resp.getWriter().write(""); resp.getWriter().write(""); resp.getWriter().write(""); resp.getWriter().write(""); resp.getWriter().write(""); resp.getWriter().write(""+msg+""); resp.getWriter().write("用户名:"); resp.getWriter().write("密码:"); resp.getWriter().write(""); resp.getWriter().write(""); resp.getWriter().write(""); resp.getWriter().write(""); } }
|
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |