javaweb之Session简单例子(两个页面一个存数据,一个取数据)和session的一些基本内容
2014-03-10 09:21
627 查看
package test.session; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; //购买servlet public class SessionDemo1 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); String sessionId = session.getId(); // 将回写给浏览器的Cookie覆盖,设置上有效期,那么这个session也就有有效期了 Cookie cookie = new Cookie("JSESSIONID", sessionId); cookie.setPath("/day07"); // 设置有效期为30分钟 cookie.setMaxAge(60 * 30); response.addCookie(cookie); session.setAttribute("name", "洗衣机"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
package test.session; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; //结账servelt public class SessionDemo2 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setCharacterEncoding("UTF-8"); response.setHeader("Content-type", "text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); HttpSession session = request.getSession(); String product = (String) session.getAttribute("name"); out.print("您购买的商品是:" + product); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } // 第一次执行getSession创建Session // 关闭浏览器后sesson没死,三十分钟没人用才死 // session也是服务器中的web资源,session的配置要在web.xml中配置 /* * 配置session60分钟没人用摧毁 <session-config> <session-timeout>60</session-timeout> * </session-config> */ // 程序中摧毁session session.invalidate(); /* * request.getSession(false);不创建session,只获取session,性能稍微高点,这个在购买的时候用,比如用户购买用的request * .getSession();这个得到session * 但是到购物车查看就不要重新创建session了,直接request.getSession(false); * ,如果用request.getSession();的话,用户直接点购物车也会创建session */ // session是基于cookie的。服务器为浏览器创建的session的id,会通过cookie回写给浏览器,这个cookie是没有设置有效期的,浏览器一关就失效了 // 设置session的有效期,就是设置回写给浏览器的cookie的有效期。这个Cookie叫JSESSIONID // 没有设置有效期的时候打开浏览器做一些session操作,然后重开一个浏览器 拿到的session是没有原来的操作的 // 没有设置有效期的session,也就是浏览器进程的session,在浏览器中新开选项卡和基于本浏览器打开新的浏览器是一个窗口(根据不同浏览器而言是不同的IE7打开两个窗口session的id是不同的,IE8打开两个窗口session的id就相同)
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'index.jsp' starting page</title> </head> <body> <a href="/day07/servlet/SessionDemo1">购买</a> <a href="/day07/servlet/SessionDemo2">结账</a> </body> </html>
相关文章推荐
- JavaWeb中的一些简单操作(四) 页面间的跳转的本质以及url乱码问题解决
- 用类名做方法的返回值类型 在学习Java的初始阶段,很多同学使用基本数据类型定义变量和引用类型定义变量以及使用类名做方法的返回值类型常常不知所以。今天我以自己的解读方式和个人的理解作一个简单的解释,和
- (集合和引用类型、基本数据类型赋值不一样)一个简单的java问题 先后的赋值问题
- C++中提供了多种基本的数据类型。实际上,这些远不能满足我们的需求,如复数(第10章的例子大多是处理虚数的),再如分数。本任务将设计一个简单的分数类,完成对分数的几个运算。一则巩固基于对象编程的方法,
- java dynamic web project的一个最简单的例子
- 写一个简单的java web页面必须的步骤
- Java Web 开发利用Struts2+Spring+mybatis写一个用户登录界面以及简单的数据交互
- java.nio将一个文件的内容写入到另一个的文件简单例子
- java读取文件数据进行一些简单处理的例子
- java web开发中,jsp使用了frameset框架,如何实现整个页面跳转,并且同一个表单中可以提交两个action
- Ajax的一个简单例子--从一个文件文件中读取数据显示到页面中
- 工作总结:java url 简单抓取页面数据例子
- java web的一些基本操作(三) --页面刷新
- java读取文件数据进行一些简单处理的例子
- JAVA整型和浮点型基本数据类型的一些小姿势
- java程序与web页面之间的数据编码与解码
- Android与JavaWeb服务器交互教程(3)-一个简单的Android项目
- 关于java web中session的一些注意事项与总结
- Python web入门:Django学习与实践二(简单页面实现和创建一个模板)
- 一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单,随着互联网业务的不断丰富,网站