javaweb--session
1.创建Session类继承HttpServlet
value为String类型:
@Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //解决中文乱码问题 req.setCharacterEncoding("utf-8"); resp.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=utf-8"); //得到session HttpSession session = req.getSession(); //给session中村内容 session.setAttribute("name","小黑" ); //获取sessionID String sessionId = session.getId(); //判断session是否为新建 if(session.isNew()){ resp.getWriter().write("session创建成功!,ID为:"+sessionId); }else { resp.getWriter().write("session已经存在,ID为:"+sessionId); } }
2.编写GetSession类继承HttpSevlet,获取session的内容
package com.zhs.servlet; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; public class GetSession extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //解决乱码问题 req.setCharacterEncoding("utf-8"); resp.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=utf-8"); //得到session HttpSession session = req.getSession(); String name =(String) session.getAttribute("name"); System.out.println(name); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
3.配置映射关系
<servlet> <servlet-name>session</servlet-name> <servlet-class>com.zhs.servlet.DemoSesssion</servlet-class> </servlet> <servlet-mapping> <servlet-name>session</servlet-name> <url-pattern>/session</url-pattern> </servlet-mapping> <servlet> <servlet-name>getsession</servlet-name> <servlet-class>com.zhs.servlet.GetSession</servlet-class> </servlet> <servlet-mapping> <servlet-name>getsession</servlet-name> <url-pattern>/getsession</url-pattern> </servlet-mapping>
运行成功,控制台打印名字=小黑
session存储对象:
1.创建person类
package com.zhs.servlet; public class Person { String name; int age; public String getName() { return name; } public Person(String name, int age) { this.name = name; this.age = age; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + '}'; } }
2.创建类继承httpSevlet
package com.zhs.servlet; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; import java.util.Date; public class DemoSesssion extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //解决中文乱码问题 req.setCharacterEncoding("utf-8"); resp.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=utf-8"); //得到session HttpSession session = req.getSession(); //给session中村内容 session.setAttribute("name",new Person("张三", 18) ); //获取session值 Person person =(Person) session.getAttribute("name"); System.out.println("session内的值为:"+person);//控制台打印 //获取sessionID String sessionId = session.getId(); //判断session是否为新建 if(session.isNew()){ resp.getWriter().write("session创建成功!,ID为:"+sessionId); }else { resp.getWriter().write("session已经存在,ID为:"+sessionId+person); } } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
3.配置映射关系
4.运行显示结果
Session和Cookie的区别:
Cookie是把用户的数据写给用户的浏览器,浏览器保存(可以保存多个)
Session把用户的数据写到用户独占Session中,服务器端保存(保存重要信息,减少服务器资源浪费)
Session由服务器创建
Session应用场景:
保存登录用户信息
购物车信息
网站中经常使用的数据信息
访问网站的session图解:


浙公网安备 33010602011771号