当前位置:
首页 >
前端技术
> javascript
>内容正文
javascript
【JSP/Servlet】getParameter和getAttribute的使用、区别
生活随笔
收集整理的这篇文章主要介绍了
【JSP/Servlet】getParameter和getAttribute的使用、区别
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
总结:request、cookie、session、context的区别
这四个对象有不同级别的作用域和生命周期。
(1)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的使用、区别的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 【Ajax Servlet JSP My
- 下一篇: 【JavaScript】如何将JS中的数