首页 > 其他分享 >Session用法案例 -->实现简单购物车功能(实际项目可能不会这么使用)

Session用法案例 -->实现简单购物车功能(实际项目可能不会这么使用)

时间:2022-10-14 11:07:33浏览次数:48  
标签:-- request fruit 购物车 Session println import public out


07120170909

1、session是在cookie的基础之上,利用cookie返回JSESSIONID(key[服务器随机生成])存在客户端实现,正真的数据存在服务端[key-value]。

2、session的使用步骤:

1)、设置:request.getSession().setAttribute("username", username);

2)、获取:request.getSession(false).getAttribute(username); 注:[false表示沿用之前设置的;不设置,默认为true,如果存在session,则沿用之前的,没有则新建];

3、session是每个浏览器对应一个JSESSIONID;   --->注:例如设置session之后,在Resquest Headers 会存在Cookie:JSESSIONID=A75D52D01876F3B404B8CC668BC8180C

4、代码如下:

package com.tiger.two0906.bean;

import java.io.*;
import java.util.*;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;

/**
* 水果保存到购物车
* @author tiger
* @time 2017年9月9日
*/
@WebServlet("/fruitSave")
public class FruitSave extends HttpServlet {
private static final long serialVersionUID = 1L;

public FruitSave() { }

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List

fruit_list = (List

) request.getServletContext().getAttribute("fruit_list");
String[] ids = request.getParameterValues("sg");
List

fruits = new ArrayList<>();
for (Fruit fruit : fruit_list) {
Integer id = fruit.getId();
for (String d : ids) {
if (id==Integer.parseInt(d)) {
fruits.add(fruit);
}
}
}
//将信息添加到session中,不同的客户拥有不同的水果列表
request.getSession().setAttribute("fruits", fruits);
response.sendRedirect("shopCar");
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
package com.tiger.two0906.bean;

import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;

@WebServlet("/shopCar")
public class FruitCar extends HttpServlet {
private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
List

fruits = (List

) request.getSession().getAttribute("fruits"); PrintWriter out = response.getWriter(); out.println(""); out.println(""); out.println("
");
out.println("---shopCar---");
out.println(""); out.println(""); out.println(""); out.println("

"); for (Fruit fruit : fruits) { out.println( "

" + "
"+fruit.getId()+"" + "
"+fruit.getName()+"" + "
"+fruit.getPrice()+"" + "
"+fruit.getCount() +"" + "
"); } out.println("

"); out.println(""); out.println(""); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } } package com.tiger.two0906.bean; /** * 水果bean * @author tiger * @time 2017年9月6日 */ public class Fruit { Integer id; String name; double price; int count; public void setId(Integer id) { this.id = id; } public Integer getId() { return id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public int getCount() { return count; } public void setCount(int count) { this.count = count; } public Fruit() { } public Fruit(Integer id, String name, double price, int count) { super(); this.id = id; this.name = name; this.price = price; this.count = count; } @Override public String toString() { return "Fruits [id=" + id + ", name=" + name + ", price=" + price + ", count=" + count + "]"; } } package com.tiger.two0906.bean; import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.annotation.WebServlet; import javax.servlet.http.*; /** * 07120170909 * 水果列表 * @author tiger * @time 2017年9月6日 */ @WebServlet("/shopList") public class FruitList extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); //数据源 Fruit[] fruits = {new Fruit(1,"苹果",2.32, 22), new Fruit(2,"雪梨",2.32, 22), new Fruit(3,"坚果",2.32, 22), new Fruit(4,"苹果",2.32, 22), new Fruit(5,"葡萄",2.32, 22)}; //将数据源添加进List集合 List

fruit_list = new ArrayList

(); Collections.addAll(fruit_list, fruits); request.getServletContext().setAttribute("fruit_list", fruit_list); PrintWriter out = response.getWriter(); out.println(""); out.println(""); out.println("
");
out.println("---shopList---");
out.println(""); out.println(""); out.println(""); out.println("
​​");
out.println("
");
out.println("

");
out.println("
选择");
out.println("
水果名");
out.println("
价格");
out.println("
数量");
out.println("
");
for (Fruit fruit : fruit_list) {
out.println( "

"
+ "
"+fruit.getName()+""
+ "
"+fruit.getPrice()+""
+ "
"+fruit.getCount() +"" );
}
out.println("

");
out.println("
");
out.println("");
out.println("
");
out.println("

");
out.println("

");
out.println("");
out.println("");
}

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doPost(req, resp);
}
}
​​



标签:--,request,fruit,购物车,Session,println,import,public,out
From: https://blog.51cto.com/u_12952267/5755723

相关文章

  • Cookie用法案例-->自动登陆
    070201709071、cookie是浏览器保存数据的一种形式,数据由服务端产生,通过响应头(setCookie)把数据写入cookie中,浏览器接受到数据后,浏览器将服务器发来......
  • 浏览器查看request参数和response参数
    --------------Ajax方式请求--------------1、按快捷键F12进入浏览器的开发者调试模式【这里以谷歌浏览器为例】2、选中【NetWork】-->【XHR】(当......
  • 从一张表中提取信息填充入临时表
    <spanstyle="color:#ffffff">insertintot_temp(id,name,card_no)selectreplace(UUID(),"-","")asid,real_nameasname,id_card_noascard_nofromt_memberwhere......
  • 振弦采集模块电源接口详细说明
    VM系列振弦采集模块电源接口详细说明VMXXX模块有多个电源接口,分别为:宽电压电源输入(VIN)、内核电源(VDD)、参考电压源(VREF)、振弦传感器激励电源(VSEN),各电源共用GND。......
  • 模拟高并发测试的几种方式
    Postman下载软件包#官网启动测试案例创建一个Collections,将接口保存进Collections点击Runner,选择需要并发测试的接口设置相关参数,点击Run。ApacheBench下载软件包#官网ht......
  • 通过kubeadm搭建k8s集群
    ======通过kubeadm搭建k8s集群======1、版本统一Docker18.09.0---kubeadm-1.14.0-0kubelet-1.14.0-0kubectl-1.14.0-0---k8s.gcr.io/kube-......
  • 最新ITIL考试题库(中英对照版初级)
    1、Whichroleisresponsibleforcarryingouttheactivitiesofaprocess?下列哪个角色负责执行进程活动?A.Processowner过程所有者B.Changemanager变更经理C......
  • struts2拦截器实现页面保护
    11020171018请输入用户名:请输入密码:......
  • 全网最全 Linux 命令总结
    今天,给小伙伴们带来一篇Linux命令总结非常全的文章,也是我们平时工作中使用率非常高的操作命令,命令有点多,建议小伙伴们可以先收藏后阅读。基本命令uname-m显示机器的处......
  • Ubuntu22.04 安装Docker
    1、安装需要的软件依赖包sudoapt-getinstallapt-transport-httpsca-certificatessoftware-properties-commoncurl-y2、添加中国科技大学GPG密钥和Docker-ce源$curl......