【JSP/Servlet】getParameter和getAttribute的使用、区别
总结: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的使用、区别相关推荐
- JSP中getParameter和getAttribute区别
(1)HttpServletRequest类有setAttribute()方法,而没有setParameter()方法 (2)当两个Web组件之间为链接关系时,被链接的组件通过getParameter ...
- getParameter与getAttribute两者的区别
request.setAttribute("xiaoxi", "欢迎用户"+name);//向request域中放置信息 ( 键值对的形式) 名字为xiaoxi ...
- request中getParameter和getAttribute的区别
整理一下getParameter和getAttribute的区别和各自的使用范围. (1)HttpServletRequest类有setAttribute()方法,而没有setParameter()方 ...
- jsp/servlet过滤器和struts2拦截器的有什么区别
jsp/servlet过滤器和struts2拦截器的有什么区别 542430725 | 浏览 3715 次 问题未开放回答 推荐于2016-11-14 01:43:29 最佳答案 过滤器,是在ja ...
- JSP/Servlet基础语法
相关学习资料 http://my.oschina.net/chape/blog/170247 http://docs.oracle.com/cd/E13222_01/wls/docs81/webapp ...
- 使用JSP/Servlet技术开发新闻发布系统
第一章:动态网页开发基础 动态网页:是指在 服务器端运行的,使用程序语言设计的交互式网页,它们会根据某种条件的变化,返回不同的网页内容 动态网页需要使用服务器端的脚本语言,例如 ...
- 基于JavaWeb Mybatis+MVC(JSP + servlet + javabean)的高校就业管理系统(含项目源码)
基于JavaWeb Mybatis+MVC的高校就业管理系统 项目简介 基本功能简介 项目要求 概要设计 数据模型(E-R图) 数据库结构设计 主要页面展示 项目实现 创建项目 项目结构展示 项目关键 ...
- JSP/Servlet程序设计(入门书籍)
Web开发技术 1. 静态开发技术: (1)HTML HTML是网站开发最基本的语言,是WEB的核心.所有后续的WEB开发技术都以HTML为基础. (2)CSS CSS(Cascading Style ...
- 【JSP/Servlet】基于WEB的通讯录系统
巩固JSP/Servlet 系统开发描述步骤 系统功能描述 一.创建一个登录页面 二.模拟数据(用数据库模拟用户名和密码还有用户的通讯录) 三.创建一个JDBC工具类 四.判断在登录页面输入的用户名和 ...
最新文章
- mysql中列的增删_mysql中怎么增删一列
- 李开复写给中国学生的七封信之给中国学生的第五封信——你有选择的权利(完)...
- AngularJS从子控制器访问父作用域
- linux关机_【linux】 不要再暴力关机了,讲讲我最近遇到的问题和完美解决方案...
- Neural Volumes Rendering(一)
- javascript绘制静态或者动态的图表、关系表、流程图-JointJS
- Ajax最全Resful中@PathVariable占位使用前台发请求服务器接收方法流程及参数传递方
- 算法:Majority Element(求众数)
- Smobiler实现美观登录界面——C# 或.NET Smobiler实例开发手机app(二)
- 初探移动设备管理——OMA DM协议向导
- 解决Word文档被锁,无法复制的问题
- tensorboard侧视_如何调整侧视/后视镜(以及为什么需要3台显示器)
- 在Clouda中使用jQuery Mobile问题解决方案
- 请编程序将“China“译成密码,密码规律是:用原来的字母后面第4个字母代替原来的字母
- 共享充电宝方案原理,具体部件组成以及主控MUC参数
- HuffmanTree
- 二叉树no与n2关系数学证明
- 视频画中画效果该怎么实现?这款软件让你一秒成大神
- 一、Tomcat 配置
- BearSkill之UIView挖空处理
热门文章
- CodeForces - 432D Prefixes and Suffixes(KMP的next数组性质)
- linux cacti安装教程,Linux下cacti的安装与配置
- matlab扩充内存,matlab扩大内存的方法
- python爬虫-爬取壁纸酷主页内容
- 案例逐步演示python利用正则表达式提取指定内容并输出到csv
- HDU4372(第一类斯特林数)
- jsoncpp和rapidjson哪个好用?
- 使用drawio进行画图真的很方便(WEB版/Chrome APP版/桌面版)
- 深入理解Cache工作原理
- 重学 Java 之 5种字符流读取方法