javaweb实现购物车功能(JavaWeb 购物车项目(一))
今天的学习主要是完成一个购物车项目 ,该项目中使用servlet完成 ,对于不知道servlet不知道如何使用的去看servlet的使用该篇文章 ,该文章中有教大家如何使用servlet 。
目录
一.项目所需表
二.购物车项目实操
1.登录操作
2.首页操作
购物车数据操作 :CarServlet, 我们在点击首页的加入购物车页面时 ,会到该类中进行数据操作 ,将商品添加进购物车
3.购物车
三.过滤器
一.项目所需表
我们一共需要使用到四张表格 ,将代码数据提供给到大家 ,大家直接拿到数据库中运行 ,四张表格分别是用户表 ,商品表,订单表 ,订单详情表 。
create table car_user ( id number primary key, account varchar2(30) not null, password varchar(32) not null ); comment on column car_user.ID is 用户编号; comment on column car_user.account is 用户账户; comment on column car_user.password is 用户密码(MD5); create table car_goods ( id number primary key, name varchar2(20) not null, describe varchar2(100) default 此商品暂时没有介绍🤣 not null, price number not null ); comment on column car_goods.ID is 商品编号; comment on column car_goods.name is 商品名称; comment on column car_goods.describe is 商品描述; comment on column car_goods.price is 用户价格; create table car_order ( id number primary key, user_id number not null, total number not null ); comment on column car_order.ID is 订单编号; comment on column car_order.user_id is 谁的订单!; comment on column car_order.total is 订单总价; create table car_order_item ( id number primary key, order_id number not null, goods_id number not null, quantity number not null, total number not null ); comment on column car_order_item.ID is 订单项编号; comment on column car_order_item.order_id is 哪个订单!; comment on column car_order_item.goods_id is 哪个商品!; comment on column car_order_item.quantity is 下单数量; comment on column car_order_item.total is 订单项总价; comment on table car_user is 购物车用户表; comment on table car_goods is 购物车商品表; comment on table car_order is 购物车订单表; comment on table car_order_item is 购物车订单项表; create unique index car_user_account_idx on car_user (account); insert into car_user values (1, 2890@fox.com, ff9830c42660c1dd1942844f8069b74a);-- root123 insert into car_user values (2, 2357@fox.com, e10adc3949ba59abbe56e057f20f883e);-- 123456 insert into car_goods select 1, 丝袜奶茶, 冰冰娘娘,很好喝, 99 from dual union select 2, 勃勃奶茶, 啊~,好冰冰, 29 from dual union select 3, 蜜雪大补丁, 可以加个桃桃🍑, 59 from dual union select 4, 臭🐟咖啡, 人气最高, 88 from dual union select 5, 雪王咖啡, incredible taste, 999 from dual union select 6, 拉稀弹筒, 👌,就亿点点, 1 from dual; insert into car_order_item values (1, 1, 1, 2, 99 * 2); insert into car_order_item values (2, 1, 2, 3, 29 * 3); insert into car_order_item values (3, 1, 6, 100, 100); insert into car_order values (1, 1, 99 * 2 + 29 * 3 + 100); insert into car_order_item values (4, 2, 3, 2, 59 * 2); insert into car_order_item values (5, 2, 4, 3, 88 * 3); insert into car_order_item values (6, 2, 5, 100, 999 * 100); insert into car_order values (2, 2, 59 * 2 + 88 * 3 + 999 * 100); select * from car_user; select * from car_order; select * from car_order_item; select * from car_goods;如图所示:
订单表中显示的数据 ,肯定是登录进来的用户他的所有订单数据,一个用户对应着多个订单 。 订单详情表:对应着订单的编号 ,商品的编号 ,我们是根据自己想查看的订单的详细 数据,一个订单对应着多件商品 。二.购物车项目实操
该购物车我们具备登录 ,首页 ,将商品加入购物车 ,购物车界面 ,在实操的时候首先我们需要把需要的包导进去 。
文件放置位置
1.登录操作
思路:
登录界面具备的方法就是去到数据库查询用户是否存在 ,如果用户存在我们就跳转到首页去pojo包下的用户实体类代码如下: User
package com.yjx.pojo; /** * 用户实体类 * @author zjjt * */ public class User { private Integer id; private String name; private String pwd; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public User() { // TODO Auto-generated constructor stub } public User(Integer id, String name, String pwd) { super(); this.id = id; this.name = name; this.pwd = pwd; } @Override public String toString() { return "User [id=" + id + ", name=" + name + ", pwd=" + pwd + "]"; } }用户数据库访问层接口代码如下: IUserDao
package com.yjx.dao; /** * 用户数据访问层接口 * @author zjjt * */ import com.yjx.pojo.User; public interface IUserDao { //登录验证 User login(User u); }用户数据库访问层代码如下: 该类中具备登录验证的方法 UserDaoImpl
package com.yjx.dao.impl; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import com.yjx.dao.IUserDao; import com.yjx.pojo.User; import com.yjx.util.DBHeper; public class UserDaoImpl implements IUserDao { private Connection con; private PreparedStatement ps; private ResultSet rs; /** * 登录验证方法 */ @Override public User login(User u) { try { con=DBHeper.getCon(); ps=con.prepareStatement("select * from car_user where account=?"); ps.setString(1, u.getName()); rs=ps.executeQuery(); if(rs.next()) { User user=new User(); user.setId(rs.getInt(1)); user.setName(rs.getString(2)); user.setPwd(rs.getString(3)); return user; } } catch (Exception e) { e.printStackTrace(); } return null; } }用户业务逻辑层接口代码如下:IUserBiz
package com.yjx.biz; import com.yjx.pojo.User; public interface IUserBiz { //登录验证方法 User login(User u); }用户业务逻辑层代码如下:UserBizImpl
package com.yjx.biz.impl; import org.apache.commons.codec.digest.DigestUtils; import com.yjx.biz.IUserBiz; import com.yjx.dao.IUserDao; import com.yjx.dao.impl.UserDaoImpl; import com.yjx.pojo.User; public class UserBizImpl implements IUserBiz { IUserDao userdao=new UserDaoImpl(); /** * 登录验证方法 */ @Override public User login(User u) { User user=userdao.login(u); String pwd=DigestUtils.md5Hex(u.getPwd()); if(user.getPwd().equals(pwd)) { return user; } return null; } }登录页面代码:login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" href="bootstrap-3.3.7-dist/css/bootstrap.css"> <script src="bootstrap-3.3.7-dist/js/jquery-3.5.1.js"></script> <script src="bootstrap-3.3.7-dist\js\bootstrap.js"></script> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>登录界面</title> <style> form { width: 500px; margin:auto; } </style> </head> <body> <form action="login.do" method="post"> <h1>登录</h1> <div class="form-group"> <input name="uname" class="form-control" placeholder="用户名"> </div> <div class="form-group"> <input name="upwd" class="form-control" placeholder="密码"> </div> <div class="form-group"> <button class="btn btn-primary btn-block">登录</button> </div> </form> </body></html>实现登录功能代码如下 : LoginServlet
在这里我们将用户存进session中 ,当用户一进来我们就给用户一个购物车 ,该购物车中存放我们在首页加入购物车的商品 ,然后在购物车界面遍历 。
package com.yjx.servlet; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.yjx.biz.IGoodsBiz; import com.yjx.biz.IUserBiz; import com.yjx.biz.impl.GoodsBizImpl; import com.yjx.biz.impl.UserBizImpl; import com.yjx.pojo.Car; import com.yjx.pojo.User; /** * 实现登录功能 * @author zjjt * */ @WebServlet("/login.do") public class LoginServlet extends HttpServlet{ IUserBiz userbiz=new UserBizImpl(); IGoodsBiz goodsbiz=new GoodsBizImpl(); @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req,resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("utf-8"); String name=req.getParameter("uname"); String pwd=req.getParameter("upwd"); User u=new User(0,name,pwd); userbiz.login(u); if(u!=null) { //将用户存入session中 req.getSession().setAttribute("user", u); //进来的时候就给该用户一个购物车,将该购物车存在session中 List<Car> car=new ArrayList<Car>(); req.getSession().setAttribute("car",car); //总价 req.getSession().setAttribute("sum", 0); //跳转到实现首页功能 resp.sendRedirect("index.do"); }else { resp.sendRedirect("login.jsp"); } } }2.首页操作
思路:
首页界面需要显示商品表中的数据 点击加入购物车将数据加入进购物车商品表的pojo包下的商品实体类代码如下:Goods
package com.yjx.pojo; /** * 商品实体类 * @author zjjt * */ public class Goods { private Integer id; private String name; private String describe; private Integer price; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getDescribe() { return describe; } public void setDescribe(String describe) { this.describe = describe; } public Integer getPrice() { return price; } public void setPrice(Integer price) { this.price = price; } public Goods() { // TODO Auto-generated constructor stub } public Goods(Integer id, String name, String describe, Integer price) { super(); this.id = id; this.name = name; this.describe = describe; this.price = price; } @Override public String toString() { return "Goods [id=" + id + ", name=" + name + ", describe=" + describe + ", price=" + price + "]"; } }商品数据访问层接口: IGoodsDao
package com.yjx.dao; import java.util.List; import com.yjx.pojo.Goods; /** * 商品数据访问层的接口 * @author zjjt * */ public interface IGoodsDao { //查询商品表中的所有数据 List<Goods> selectAll(); //根据id查询 Goods selestId(int id); }商品数据访问代码如下: GoodsDaoImpl
package com.yjx.dao.impl; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; import com.yjx.dao.IGoodsDao; import com.yjx.pojo.Goods; import com.yjx.util.DBHeper; /** * 商品数据访问层 * @author zjjt * */ public class GoodsDaoImpl implements IGoodsDao{ private Connection con; private PreparedStatement ps; private ResultSet rs; /** * 查询商品表中的所有数据 */ @Override public List<Goods> selectAll() { List<Goods> list=new ArrayList<Goods>(); try { con=DBHeper.getCon(); ps=con.prepareStatement("select * from car_goods"); rs=ps.executeQuery(); while(rs.next()) { Goods g=new Goods(); g.setId(rs.getInt(1)); g.setName(rs.getString(2)); g.setDescribe(rs.getString(3)); g.setPrice(rs.getInt(4)); list.add(g); } } catch (Exception e) { e.printStackTrace(); }finally { DBHeper.getColes(con, ps, rs); } return list; } /** * 根据商品id进行查询 */ @Override public Goods selestId(int id) { try { con=DBHeper.getCon(); ps=con.prepareStatement("select * from car_goods where id=?"); ps.setInt(1, id); rs=ps.executeQuery(); if(rs.next()) { Goods g=new Goods(); g.setId(rs.getInt(1)); g.setName(rs.getString(2)); g.setDescribe(rs.getString(3)); g.setPrice(rs.getInt(4)); return g; } } catch (Exception e) { e.printStackTrace(); }finally { DBHeper.getColes(con, ps, rs); } return null; } }商品数据业务逻辑层接口代码如下:IGoodsBiz
package com.yjx.biz; import java.util.List; import com.yjx.pojo.Goods; /** * 商品业务逻辑层接口 * @author zjjt * */ public interface IGoodsBiz { //查询商品表中的所有数据 List<Goods> selectAll(); //根据id查询 Goods selestId(int id); }商品数据业务逻辑层代码如下: GoodsBizImpl
package com.yjx.biz.impl; import java.util.List; import com.yjx.biz.IGoodsBiz; import com.yjx.dao.IGoodsDao; import com.yjx.dao.impl.GoodsDaoImpl; import com.yjx.pojo.Goods; /** * 商品业务逻辑层 * @author zjjt * */ public class GoodsBizImpl implements IGoodsBiz{ IGoodsDao dao=new GoodsDaoImpl(); /** * 查询商品表中所有数据 */ @Override public List<Goods> selectAll() { return dao.selectAll(); } /** * 根据id查询 */ @Override public Goods selestId(int id) { return dao.selestId(id); } }商品数据操作代码如下: 所以登录成功后先跳转到这里 ,在将商品数据从全查出来,然后存进session中 ,在首页的时候在遍历 IndexServlet
package com.yjx.servlet; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.yjx.biz.IGoodsBiz; import com.yjx.biz.impl.GoodsBizImpl; import com.yjx.pojo.Goods; /** * 首页商品数据显示 * @author zjjt * */ @WebServlet("/index.do") public class IndexServlet extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { IGoodsBiz goodsbiz=new GoodsBizImpl(); List<Goods> list=goodsbiz.selectAll(); //将该集合中的数据存进request中 req.setAttribute("goods", list); //使用request存放 ,需要转发 req.getRequestDispatcher("index.jsp").forward(req, resp); } }首页界面代码如下:index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!-- 商品首页 --> <!DOCTYPE html> <html> <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" href="bootstrap-3.3.7-dist/css/bootstrap.css"> <script src="bootstrap-3.3.7-dist/js/jquery-3.5.1.js"></script> <script src="bootstrap-3.3.7-dist\js\bootstrap.js"></script> <meta name="viewport" content="width=device-width,initial-scale=1"> <style> body { padding: 20px 40px; } </style> </head> <body> <h1> ${user.name}<small>这是首页</small> </h1> <h1> <a class="btn btn-primary" href="car.jsp">点我去购物车🛒</a> </h1> <table class="table table-bordered table-striped"> <tbody><tr> <th>商品编号</th> <th>商品名称</th> <th>商品价格</th> <th>商品操作</th> </tr> <!-- 遍历 --> <c:forEach items="${goods}" var="g"> <tr> <td>${g.id}</td> <td>${g.name}</td> <td>${g.price}</td> <td><a href="car.do?id=${g.id}" class="btn btn-default">加入🚗</a></td> </tr> </c:forEach> </body></html>购物车数据操作 :CarServlet, 我们在点击首页的加入购物车页面时,会到该类中进行数据操作 ,将商品添加进购物车
package com.yjx.servlet; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.yjx.biz.IGoodsBiz; import com.yjx.biz.impl.GoodsBizImpl; import com.yjx.pojo.Car; import com.yjx.pojo.Goods; /** * 购物车数据 * @author zjjt * */ @WebServlet("/car.do") public class CarServlet extends HttpServlet{ IGoodsBiz goodsbiz=new GoodsBizImpl(); @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { List<Car> car=(List<Car>)req.getSession().getAttribute("car"); //先将传过来的id接收到 int id=Integer.parseInt(req.getParameter("id")); boolean f=true; //判断该商品是否已经存在购物车中 ,如何存在只在数量上相加 for (Car c : car) { if(c.getGoods().getId()==id) { //设置数量加1 c.setCount(c.getCount()+1); //设置商品总价 c.setTotal(c.getCount()*c.getGoods().getPrice()); f=false; break; } } if(f) { //当商品不存在相同的进入这里 //根据id进行查询商品 Goods goods=goodsbiz.selestId(id); Car c=new Car(); c.setGoods(goods); //商品的数量设置 c.setCount(1); //商品的总价设置 c.setTotal(c.getGoods().getPrice()); car.add(c); } //遍历购物车将总价加上 int sum=0; for (Car car2 : car) { sum+=car2.getTotal(); } req.getSession().setAttribute("sum",sum); resp.sendRedirect("index.do"); } }3.购物车
购物车中具备查看我们加入购物和的商品,然后对商品的数量增加减 ,当商品存在购物车中了 ,我们在首页将同一件商品在加入购物车时 ,只有数量加1 。
购物车的pojo包下的实体类代码如下:Car
package com.yjx.pojo; /** * 购物车实体类 * @author zjjt * */ public class Car { private Goods goods; private Integer count; private Integer total; public Goods getGoods() { return goods; } public void setGoods(Goods goods) { this.goods = goods; } public Integer getCount() { return count; } public void setCount(Integer count) { this.count = count; } public Integer getTotal() { return total; } public void setTotal(Integer total) { this.total = total; } public Car() { // TODO Auto-generated constructor stub } public Car(Goods goods, Integer count, Integer total) { super(); this.goods = goods; this.count = count; this.total = total; } }购物车页面代码如下: car.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE html> <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" href="bootstrap-3.3.7-dist/css/bootstrap.css"> <script src="bootstrap-3.3.7-dist/js/jquery-3.5.1.js"></script> <script src="bootstrap-3.3.7-dist\js\bootstrap.js"></script> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>我的购物车</title> </head> <body> <div class="container"> <h1> ${user.name}<small>这是购物车</small> </h1> <h1> <button onclick="location.href=index.do" class="btn btn-default">继续购买</button> <button onclick="location.href=calc.do" class="btn btn-default">订单结算</button> <button onclick="location.href=myOrder.do" class="btn btn-default">查看订单</button> </h1> <table class="table table-bordered table-striped"> <tr> <td>商品编号</td> <td>商品名字</td> <td>商品单价</td> <td>商品数量</td> <td>商品总价</td> <td>商品操作</td> </tr> <c:forEach items="${car}" var="c"> <tr> <td>${c.goods.id}</td> <td>${c.goods.name}</td> <td>${c.goods.price}</td> <td><a href="updCar.do?id=${c.goods.id}&type=1" class="btn btn-default">+</a> ${c.count} <a href="updCar.do?id=${c.goods.id}&type=-1" class="btn btn-default">-</a></td> <td>${c.total}</td> <td><a href="delCar.do?id=${c.goods.id}" class="btn btn-default">商品删除</a></td> </tr> </c:forEach> </table> </div> <h1>总价:${sum}</h1> </body></html>点击加号或者减号数据操作代码如下:updCarServlet
当点击加号或者减号携带过来一个数 ,判断是加法还是减法 ,进行对数量上的加减
package com.yjx.servlet; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.yjx.biz.IGoodsBiz; import com.yjx.biz.impl.GoodsBizImpl; import com.yjx.pojo.Car; import com.yjx.pojo.Goods; /** * 修改商品数量操作 * @author zjjt * * */ @WebServlet("/updCar.do") public class updCarServlet extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //拿到购物车 List<Car> car=(List<Car>)req.getSession().getAttribute("car"); //接收到传过来的值 int id=Integer.parseInt(req.getParameter("id")); int type=Integer.parseInt(req.getParameter("type")); for (Car c : car) { if(c.getGoods().getId().equals(id)) { int count=c.getCount()+type; //设置该商品的数量 if(count<1)break; c.setCount(count); c.setTotal(c.getCount()*c.getGoods().getPrice()); } } //遍历购物车将总价加上 int sum=0; for (Car car2 : car) { sum+=car2.getTotal(); } req.getSession().setAttribute("sum",sum); resp.sendRedirect("car.jsp"); } }购物车数据删除代码如下: delCarServlet
package com.yjx.servlet; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.yjx.pojo.Car; /** * 删除商品操作 * @author zjjt * */ @WebServlet("/delCar.do") public class delCarServlet extends HttpServlet{ @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //拿到购物车 List<Car> car=(List<Car>)req.getSession().getAttribute("car"); //先接收到id int id=Integer.parseInt(req.getParameter("id")); Car i=null; //遍历购物车 for (Car c : car) { if(c.getGoods().getId().equals(id)){ i=c; } } //将商品删除 car.remove(i); //遍历购物车将总价加上 int sum=0; for (Car car2 : car) { sum+=car2.getTotal(); } req.getSession().setAttribute("sum",sum); resp.sendRedirect("car.jsp"); } }三.过滤器
过滤器的作用 ,就是当我们没有登录时 ,有一些界面无法进入 ,所以我们进在过滤器中进行过滤 ,满足我们条件的我们就放行,不满足条件的就让他继续在登录页面 。
package com.yjx.filter; import java.io.IOException; import java.util.ArrayList; import java.util.List; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.yjx.pojo.User; /** * 过滤 * @author zjjt * */ public class LoginFilter implements Filter{ //过滤的作用:因为当我们没有登录成功时 ,只有允许在登录界面 ,不允许跳转到别的界面,所以我们选择使用过滤 ,不满足我们进入的 // 需求就让他跳回登录界面 。 //1.先实现filter接口 //2.先实例一个集合 ,将我们需要放行的页面放入 List<String> list=new ArrayList(); { list.add("/login.jsp"); list.add("/login.do"); list.add(".css"); list.add(".js"); } @Override public void doFilter(ServletRequest req, ServletResponse reps, FilterChain chain)throws IOException, ServletException { //将请求和响应强转成它的子类 HttpServletRequest request=(HttpServletRequest)req; HttpServletResponse response=(HttpServletResponse)reps; //获取到路径 String path=request.getServletPath(); boolean f=false; //遍历集合和获取到的路径进行判断 for(String p:list) { if(path.endsWith(p)){//判断是否是以增加进集合的的数据结尾的 //如果以该为结尾的话 f=true; System.out.print(f); break; } } if(f){ //如果存在list集合中就放行 chain.doFilter(request, response);//放行语句 return; } //判断用户是否已经登录啦,如果session中存在user那么就放行 User u=(User)request.getAttribute("user");//得到一个用户进行判断 if(u!=null) { chain.doFilter(request, response); }else { //用户没有登录就返回登录界面 response.sendRedirect("login.jsp"); } } }今天的学习就到这里啦。
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!