博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Session简单使用
阅读量:3950 次
发布时间:2019-05-24

本文共 3980 字,大约阅读时间需要 13 分钟。

Session是基于cookie的一种绘画机制,cookie是服务器返回一小份数据到客户端,并且存放在客户端中去,session是将数据存放在服务器端

1.得到session值

HttpSession session = request.getSession();
2.常用的方法
获取会话的id:session.getId();
存值 :session.setAttribute(name,value);
取值:session.getAttribute(name);
移除值:session.removeAttribute(name);
3.session的生命周期
从创建request.getSession()创建开始
从关闭服务器就结束了。一般就只有30分钟的有效期在这里插入图片描述

4.创建一个购物车对象

方法:
1.登录页面

<%@ page language="java" contentType="text/html; charset=utf-8"    pageEncoding="utf-8"%>
Insert title here

手机一号

手机二号

手机三号

手机四号

2.登陆跳转处理

package com.servlet;import java.io.IOException;import java.util.LinkedHashMap;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * Servlet implementation class CarServlet */public class CarServlet extends HttpServlet {	private static final long serialVersionUID = 1L;           /**     * @see HttpServlet#HttpServlet()     */    public CarServlet() {        super();        // TODO Auto-generated constructor stub    }	/**	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)	 */	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {				//1.设置编码格式		response.setContentType("text/html;charset = utf-8");		//2.获取到对应的id		int id =Integer.parseInt( request.getParameter("id"));	//0.1.2.3			//取到对应的id的值		String[] names = {"手机一","手机二","手机三","手机四",};			//取到对应的id的商品的名称		String name = names[id];		//3.将购物车的信息存放到session中去  map
Map
map = (Map
) request.getSession().getAttribute("cart"); /* 第一次调用的时候,map为空 就new一个map 存到session中去 但是第二次就不走这个步骤了 */ if(map ==null) { //购物车为空的时候 session中没有任何东西哦 map = new LinkedHashMap
(); request.getSession().setAttribute("cart", map); //创建session } //4.判断session中有没有存放该商 if(map.containsKey(name)) { //有,在原来的基础上加一 map.put(name, map.get(name)+1); }else { //没有购买该商品时 map.put(name, 1); } //5.输出界面 response.getWriter().write("

继续购物

"); response.getWriter().write("
结算

"); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); }}

3.显示购物车页面

<%@page import="java.util.Map"%><%@ page language="java" contentType="text/html; charset=utf-8"    pageEncoding="utf-8"%>
Insert title here

您购买的商品如下

<%//获取map Map
map =(Map
) session.getAttribute("cart");//便利mapif(map != null){ for(String key:map.keySet()){ int value = map.get(key); %>

名称:<%=key %> 数量 :<%=value %>

<% }}%>
清空购物车

4.清空购物车处理

package com.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;/** * Servlet implementation class cleanCa */public class cleanCa extends HttpServlet {	private static final long serialVersionUID = 1L;           /**     * @see HttpServlet#HttpServlet()     */    public cleanCa() {        super();        // TODO Auto-generated constructor stub    }	/**	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)	 */	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {		//1.获取session		HttpSession session = request.getSession();		session.removeAttribute("cart");		//移除name		response.sendRedirect("cart.jsp");		//回到当前的页面	}	/**	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)	 */	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {		// TODO Auto-generated method stub		doGet(request, response);	}}

转载地址:http://adgwi.baihongyu.com/

你可能感兴趣的文章
windows MySQL报"2006 - MySQL server has gone away"错误,解决过程.
查看>>
ubuntu10.4网卡名由eth0改为eth4,导致获得不了IP地址.解决方法.
查看>>
CheckPoint关键词做字段名使用.
查看>>
Qt QSplitte分割器使用(用户手动改变窗口大小)
查看>>
根据高度图计算体积等。
查看>>
Qt动态加载动态库
查看>>
使用VS2015创建纯C动态库。
查看>>
MFC和Qt分别使用Qt生成的Dll。
查看>>
Qt安装路径中的platforms文件夹
查看>>
Qt5 Crash When Open File With QFileDialog
查看>>
关于Visual Studio "当前不会命中断点.还没有为该文档加载任何符号"的解决方法
查看>>
source ~/.bashrc出现if: Expression Syntax.
查看>>
MYSQL架构与工作机理
查看>>
java8新特性
查看>>
git clone时RPC failed; curl 18 transfer closed with outstanding read data remaining
查看>>
Java8内存模型—永久代(PermGen)和元空间(Metaspace)
查看>>
linux 查看进程 ps -A 与ps -ef 区别
查看>>
maven的三种项目打包方式----jar,war,pom
查看>>
maven中jar、war、pom的区别
查看>>
maven之pom.xml配置文件详解
查看>>