jsp网页session、cookie、隐藏域、url参数传递四种会话及跟踪方式
来源:互联网 发布:数据结构算法与应用 编辑:程序博客网 时间:2024/04/30 20:33
1.Session
HttpSession session = request.getSession();
session.setAttribute("name", "zhangsan");
session.setAttribute("pwd", "aaa");
String name = (String) session.getAttribute("name");
2.cookie:
//创建Cookie
Cookie cookie = new Cookie("name", "zhangsan");
//设置Cookie的超时时间
cookie.setMaxAge(24 * 60 * 60 *60);
//把Cookie发送到客户端
response.addCookie(cookie);
//得到客户端发送的Cookie
Cookie [] cookies = request.getCookies();
for(int i=0; i <cookies.length; i++) {
Cookie temp = cookies[i];
String key = temp.getName();
String value = temp.getValue();
}
3.隐藏表单域
<input type="hidden" name="name" value="zhangsan" />
request.getParameter("name");
4.Url重写
问号传参
LoginServlet?username=zhangsan&pwd=123
String name = request.getParameter("username");
String pwd =request.getPareameter("pwd");
内部跳转:
LoginServlet
request.getRequestDispatcher("index.jsp").forward(request, resposne);
外部跳转:
response.sendRedirect("index.jsp");
内部跳转是一次请求和一次响应
外部跳转是两次请求和两次响应
ServletContext:Servlet上下文对象
它是一个公共区域,可以被所有的客户端共享
setAttribute():向公共区域里放入数据
getAttribute():从公共区域里取数据
Servlet:
当然,在servlet中,一般跳转都发生在doGet, doPost等方法里面。
1) redirect 方式
response.sendRedirect("/a.jsp");
页面的路径是相对路径。sendRedirect可以将页面跳转到任何页面,不一定局限于本web应用中,如:
response.sendRedirect("http://www.ycul.com");
跳转后浏览器地址栏变化。
这种方式要传值出去的话,只能在url中带parameter或者放在session中,无法使用request.setAttribute来传递。
2) forward方式
RequestDispatcher dispatcher = request.getRequestDispatcher("/a.jsp");
dispatcher .forward(request, response);
页面的路径是相对路径。forward方式只能跳转到本web应用中的页面上。
跳转后浏览器地址栏不会变化。
使用这种方式跳转,传值可以使用三种方法:url中带parameter,session,request.setAttribute
3)插入<a href=url></a>,页面跳转。?!:
JSP
1) response.sendRedirect();
和servlet的response.sendRedirect()方式一样。
此语句前不允许有out.flush(),如果有,会有异常:
java.lang.IllegalStateException: Can't sendRedirect() after data has committed to the client.
at com.caucho.server.connection.AbstractHttpResponse.sendRedirect(AbstractHttpResponse.java:558)
...
跳转后浏览器地址栏变化
如果要跳到不同主机下,跳转后,此语句后面的语句会继续执行,如同新开了线程,但是对response的操作已经无意义了;
如果要跳到相同主机下,此语句后面的语句执行完成后才会跳转;
2) response.setHeader("Location","");
此语句前不允许有out.flush(),如果有,页面不会跳转。
跳转后浏览器地址栏变化
此语句后面的语句执行完成后才会跳转
3) <jsp:forward page="" />
此语句前不允许有out.flush(),如果有,会有异常:
java.lang.IllegalStateException: forward() not allowed after buffer has committed.
at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:134)
at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:101)
at com.caucho.jsp.PageContextImpl.forward(PageContextImpl.java:836)
...
跳转后浏览器地址栏不变,但是只能跳到当前主机下
此语句后面的语句执行完成后才会跳转
- jsp网页session、cookie、隐藏域、url参数传递四种会话及跟踪方式
- session、cookie、隐藏域、url参数传递四种会话及跟踪方式
- jsp页面中的session、cookies、隐藏域、url重写四种会话及跟踪方式
- jsp页面中的session、cookies、隐藏域、url重写四种会话及跟踪方式
- jsp页面中的session、cookies、隐藏域、url重写四种会话及跟踪方式
- 会话追踪--cookie/重写url/隐藏域/session
- 服务器共享Session和jsp四种会话跟踪技术
- 服务器共享Session和jsp四种会话跟踪技术
- Cookie,Session会话跟踪
- 会话跟踪技术介绍——cookie ,url 重写, 隐藏表单域
- 会话跟踪技术介绍——cookie,url 重写, 隐藏表单域
- jsp隐藏表单域实现会话跟踪
- 会话跟踪(Cookie & Session)
- 会话跟踪(Cookie,Session)
- 会话跟踪Cookie与Session
- JSP四种会话跟踪技术
- JSP四种会话跟踪技术
- JSP四种会话跟踪技术
- 设计模式——观察者
- 千里之行始于此篇
- Git的配置
- TFS 显示历史
- 简单理解接口和抽象类
- jsp网页session、cookie、隐藏域、url参数传递四种会话及跟踪方式
- GCC对四精度浮点型的支持
- Android学习笔记一:Android开发环境搭建和第一个应用程序
- Hibernate马士兵笔记
- Android学习笔记二:第一个应用程序的深入说明
- 《VC++深入详解》学习笔记 第三章 MFC框架程序剖析(未完成)
- opqcp:C语言混淆器
- linux内存伙伴算法(二:初始化内存域和数据结构)
- MFC下正弦波的绘制