总结:request、cookie、session、context的区别

这四个对象有不同级别的作用域和生命周期。

(1)request:解决了一次请求内的数据共享问题(作用域:一次请求)

 req.setAttribute("uname", "张三");    // 在servlet中添加request参数

(2)cookie:解决了同一用户不同请求的数据共享的问题(作用域:一次会话/或者设置定时)

 Cookie c = new Cookie("uname", "张三");  // 创建Cookie对象c.setPath("CookieServlet");                  // 指定共享cookie的Servletresp.addCookie(c);                         // 将cookie添加到响应对象中

(3)session:解决了同一用户不同请求的数据共享问题(作用域:会话创建->浏览器关闭)

 // session 技术是依赖Cookie 技术的服务器端的数据存储技术// cookie存储在本地浏览器,而session存储在服务器HttpSession hs=req.getSession();   // 在servlet中获取session对象hs.setAttribute("uname","张三");   // 数据存储

(4)context:解决了不同用户的数据共享问题(作用域:服务器启动->服务器关闭)

 ServletContext sc=this.getServletContext();        // 在servlet中获取context对象sc.setAttribute("str", "ServletContext对象学习");// 数据存储

getParameter和getAttribute区别

  • getParameter()获取的是客户端设置的数据,在服务器端调用。
    getAttribute()获取的是服务器设置的数据,在客户端调用。

  • getParameter()永远返回字符串
    getAttribute()返回值是任意类型



既然parameter和attribute都是传递参数,为什么不直接使用parameter呢?

服务器端

  • 不能通过setParameter(key,value)来添加参数,因为没有这个函数
  • 不能通过req.getAttribute("name")获取前端通过表单提交的数据,会取不到值

可以通过setAttribute(),将值放入到request对象,然后在前端页面使用getAttribute()获取对应的值,这样就达到一次请求可以在多个页面共享一些对象信息

parameter返回值是字符串,意味着不能传递其他的对象,如Map,List,但是attribute则可以存放任意类型的Java对象


示例

服务器端获取请求信息(Java Servlet)

String uname = req.getParameter("name");

服务器端设置请求信息(Java Servlet)

(1)重定向的方式

HttpSession hs = req.getSession(); // 存储到session
hs.setAttribute("user", u);
resp.sendRedirect("/09-Manager/main/main.jsp");

(2)请求转发的方式

req.setAttribute("str", "用户名或密码错误,请重新输入!");
req.getRequestDispatcher("/login.jsp").forward(req, resp);

客户端获取请求信息(JSP页面)

 <%List<User> list=(ArrayList<User>)request.getAttribute("allUser");%>

【JSP/Servlet】getParameter和getAttribute的使用、区别相关推荐

  1. JSP中getParameter和getAttribute区别

    (1)HttpServletRequest类有setAttribute()方法,而没有setParameter()方法 (2)当两个Web组件之间为链接关系时,被链接的组件通过getParameter ...

  2. getParameter与getAttribute两者的区别

    request.setAttribute("xiaoxi", "欢迎用户"+name);//向request域中放置信息 ( 键值对的形式) 名字为xiaoxi ...

  3. request中getParameter和getAttribute的区别

    整理一下getParameter和getAttribute的区别和各自的使用范围. (1)HttpServletRequest类有setAttribute()方法,而没有setParameter()方 ...

  4. jsp/servlet过滤器和struts2拦截器的有什么区别

    jsp/servlet过滤器和struts2拦截器的有什么区别 542430725 | 浏览 3715 次  问题未开放回答  推荐于2016-11-14 01:43:29 最佳答案 过滤器,是在ja ...

  5. JSP/Servlet基础语法

    相关学习资料 http://my.oschina.net/chape/blog/170247 http://docs.oracle.com/cd/E13222_01/wls/docs81/webapp ...

  6. 使用JSP/Servlet技术开发新闻发布系统

               第一章:动态网页开发基础  动态网页:是指在 服务器端运行的,使用程序语言设计的交互式网页,它们会根据某种条件的变化,返回不同的网页内容 动态网页需要使用服务器端的脚本语言,例如 ...

  7. 基于JavaWeb Mybatis+MVC(JSP + servlet + javabean)的高校就业管理系统(含项目源码)

    基于JavaWeb Mybatis+MVC的高校就业管理系统 项目简介 基本功能简介 项目要求 概要设计 数据模型(E-R图) 数据库结构设计 主要页面展示 项目实现 创建项目 项目结构展示 项目关键 ...

  8. JSP/Servlet程序设计(入门书籍)

    Web开发技术 1. 静态开发技术: (1)HTML HTML是网站开发最基本的语言,是WEB的核心.所有后续的WEB开发技术都以HTML为基础. (2)CSS CSS(Cascading Style ...

  9. 【JSP/Servlet】基于WEB的通讯录系统

    巩固JSP/Servlet 系统开发描述步骤 系统功能描述 一.创建一个登录页面 二.模拟数据(用数据库模拟用户名和密码还有用户的通讯录) 三.创建一个JDBC工具类 四.判断在登录页面输入的用户名和 ...

最新文章

  1. mysql中列的增删_mysql中怎么增删一列
  2. 李开复写给中国学生的七封信之给中国学生的第五封信——你有选择的权利(完)...
  3. AngularJS从子控制器访问父作用域
  4. linux关机_【linux】 不要再暴力关机了,讲讲我最近遇到的问题和完美解决方案...
  5. Neural Volumes Rendering(一)
  6. javascript绘制静态或者动态的图表、关系表、流程图-JointJS
  7. Ajax最全Resful中@PathVariable占位使用前台发请求服务器接收方法流程及参数传递方
  8. 算法:Majority Element(求众数)
  9. Smobiler实现美观登录界面——C# 或.NET Smobiler实例开发手机app(二)
  10. 初探移动设备管理——OMA DM协议向导
  11. 解决Word文档被锁,无法复制的问题
  12. tensorboard侧视_如何调整侧视/后视镜(以及为什么需要3台显示器)
  13. 在Clouda中使用jQuery Mobile问题解决方案
  14. 请编程序将“China“译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母
  15. 共享充电宝方案原理,具体部件组成以及主控MUC参数
  16. HuffmanTree
  17. 二叉树no与n2关系数学证明
  18. 视频画中画效果该怎么实现?这款软件让你一秒成大神
  19. 一、Tomcat 配置
  20. BearSkill之UIView挖空处理

热门文章

  1. CodeForces - 432D Prefixes and Suffixes(KMP的next数组性质)
  2. linux cacti安装教程,Linux下cacti的安装与配置
  3. matlab扩充内存,matlab扩大内存的方法
  4. python爬虫-爬取壁纸酷主页内容
  5. 案例逐步演示python利用正则表达式提取指定内容并输出到csv
  6. HDU4372(第一类斯特林数)
  7. jsoncpp和rapidjson哪个好用?
  8. 使用drawio进行画图真的很方便(WEB版/Chrome APP版/桌面版)
  9. 深入理解Cache工作原理
  10. 重学 Java 之 5种字符流读取方法