8 request作用域与set/getAttribute(); 您所在的位置:网站首页 attribute作用 8 request作用域与set/getAttribute();

8 request作用域与set/getAttribute();

2024-06-06 15:32| 来源: 网络整理| 查看: 265

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 实验室设备网 版权所有