1.创建登录页面
login.html
<
!DOCTYPE html PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"
>
<html >
<head >
<meta http -equiv = "Content-Type" content = "text/html; charset=UTF-8" >
<title >登录 < /title >
< /head >
<body >
<form action = "/login" method = "post" >
姓名: <input type = "text" name = "username" / > <br / >
密码: <input type = "password" name = "password" / > <br / >
<input type = "submit" value = "登录" / >
< /form >
< /body >
< /html >
<html >
<head >
<meta http -equiv = "Content-Type" content = "text/html; charset=UTF-8" >
<title >登录 < /title >
< /head >
<body >
<form action = "/login" method = "post" >
姓名: <input type = "text" name = "username" / > <br / >
密码: <input type = "password" name = "password" / > <br / >
<input type = "submit" value = "登录" / >
< /form >
< /body >
< /html >
2.购物页面
buy.html
<
!DOCTYPE html PUBLIC
"-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"
>
<html >
<head >
<meta http -equiv = "Content-Type" content = "text/html; charset=UTF-8" >
<title >购买 < /title >
< /head >
<body >
<form action = "/buy" method = "post" >
货品: <select name = "product" >
<option value = "鼠标" >鼠标 < /option >
<option value = "光盘" >光盘 < /option >
<option value = "手机" >手机 < /option >
< /select > <br / >
数量: <input type = "text" name = "number" / > <br / >
<input type = "submit" value = "购买" / >
< /form >
< /body >
< /html >
<html >
<head >
<meta http -equiv = "Content-Type" content = "text/html; charset=UTF-8" >
<title >购买 < /title >
< /head >
<body >
<form action = "/buy" method = "post" >
货品: <select name = "product" >
<option value = "鼠标" >鼠标 < /option >
<option value = "光盘" >光盘 < /option >
<option value = "手机" >手机 < /option >
< /select > <br / >
数量: <input type = "text" name = "number" / > <br / >
<input type = "submit" value = "购买" / >
< /form >
< /body >
< /html >
3.实体类的创建
/day8_shopping_car/src/com/myself/domain/Car.java
package com.myself.domain;
import java.util.ArrayList;
import java.util.List;
/**
* 购物车类,可添加,删除和获取购物车项
* @author Jungor
*
*/
public class Car {
// 用于存放CarItem(购物车项)的list
private List <CarItem > list = new ArrayList <CarItem >();
/**
* 获取购物车中的所有购物车项
* @return 包含所有购物车项的List
*/
public List <CarItem > list() {
return list;
}
/**
* 添加购物车项到购物车
* @param carItem 需要添加的购物车项
*/
public void add(CarItem carItem) {
this.list.add(carItem);
}
/**
* 从购物车中删除购物车项
* @param id 需要删除的购物车项ID
*/
public void remove(String id) {
for ( int i = 0; i < list.size(); i ++) {
if (list.get(i).getId().equals(id)) {
list.remove(i);
break;
}
}
}
}
import java.util.ArrayList;
import java.util.List;
/**
* 购物车类,可添加,删除和获取购物车项
* @author Jungor
*
*/
public class Car {
// 用于存放CarItem(购物车项)的list
private List <CarItem > list = new ArrayList <CarItem >();
/**
* 获取购物车中的所有购物车项
* @return 包含所有购物车项的List
*/
public List <CarItem > list() {
return list;
}
/**
* 添加购物车项到购物车
* @param carItem 需要添加的购物车项
*/
public void add(CarItem carItem) {
this.list.add(carItem);
}
/**
* 从购物车中删除购物车项
* @param id 需要删除的购物车项ID
*/
public void remove(String id) {
for ( int i = 0; i < list.size(); i ++) {
if (list.get(i).getId().equals(id)) {
list.remove(i);
break;
}
}
}
}
/day8_shopping_car/src/com/myself/domain/CarItem.java
package com.myself.domain;
/**
* 购物车项,包含id,货品名,数量
* @author Jungor
*
*/
public class CarItem {
private String id;
private String product;
private Integer number;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getProduct() {
return product;
}
public void setProduct(String product) {
this.product = product;
}
public Integer getNumber() {
return number;
}
public void setNumber(Integer number) {
this.number = number;
}
}
/**
* 购物车项,包含id,货品名,数量
* @author Jungor
*
*/
public class CarItem {
private String id;
private String product;
private Integer number;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getProduct() {
return product;
}
public void setProduct(String product) {
this.product = product;
}
public Integer getNumber() {
return number;
}
public void setNumber(Integer number) {
this.number = number;
}
}
/day8_shopping_car/src/com/myself/domain/User.java
package com.myself.domain;
/**
* 用户类,用于封装用户登录信息
* @author Jungor
*
*/
public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [" + username + ", " + password + "]";
}
}
/**
* 用户类,用于封装用户登录信息
* @author Jungor
*
*/
public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [" + username + ", " + password + "]";
}
}
4.创建Servlet
/day8_shopping_car/src/com/myself/servlet/BuyServlet.java
package com.myself.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.UUID;
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 com.myself.domain.Car;
import com.myself.domain.CarItem;
import com.myself.domain.User;
/**
* 购买时需要的Servlet,可以将一个购物车项添加到购物车
* @author Jungor
*
*/
public class BuyServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 设置编码
request.setCharacterEncoding( "UTF-8");
response.setContentType( "text/html;charset=UTF-8");
// 获取打印流
PrintWriter out = response.getWriter();
// 获取货品名称
String product = request.getParameter( "product");
Integer number = null; // 数量
try {
// 接收到的是一个String,将其转换为Integer,如果转换失败,则向页面输出提示信息
number = Integer.parseInt(request.getParameter( "number"));
} catch (NumberFormatException e) {
out.println( "数量非法,<a href='/buy.html'>重新填写</a><br/>");
return;
//e.printStackTrace();
}
// 通过JSESSIONID,获取session对象,如果没有获取到,则新创建一个session对象
HttpSession session = request.getSession();
// 在session中获取user属性的对象
User user = (User) session.getAttribute( "user");
// 在session中获取car属性的对象
Car car = (Car) session.getAttribute( "car");
// 只有当用户已登录,且货品和数量不为空时,才允许添加项到购物车
if (user != null && product != null && number != null) {
CarItem carItem = new CarItem(); // 创建购物车项
// UUID.randomUUID().toString(),一个随机且不重复的字符串,方便购物车项的查询
carItem.setId(UUID.randomUUID().toString());
carItem.setProduct(product);
carItem.setNumber(number);
// 如果购物车为空,则创建一个购物车,并添加到Session
if (car == null) {
car = new Car();
session.setAttribute( "car", car);
}
car.add(carItem);
out.println( "购买成功<br/>");
out.println( "<a href='/buy.html'>继续购买</a><br/>");
out.println( "<a href='/list'>管理列表</a><br/>");
} else {
out.println( "<a href='/login.html'>请登录</a><br/>");
}
}
}
import java.io.IOException;
import java.io.PrintWriter;
import java.util.UUID;
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 com.myself.domain.Car;
import com.myself.domain.CarItem;
import com.myself.domain.User;
/**
* 购买时需要的Servlet,可以将一个购物车项添加到购物车
* @author Jungor
*
*/
public class BuyServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 设置编码
request.setCharacterEncoding( "UTF-8");
response.setContentType( "text/html;charset=UTF-8");
// 获取打印流
PrintWriter out = response.getWriter();
// 获取货品名称
String product = request.getParameter( "product");
Integer number = null; // 数量
try {
// 接收到的是一个String,将其转换为Integer,如果转换失败,则向页面输出提示信息
number = Integer.parseInt(request.getParameter( "number"));
} catch (NumberFormatException e) {
out.println( "数量非法,<a href='/buy.html'>重新填写</a><br/>");
return;
//e.printStackTrace();
}
// 通过JSESSIONID,获取session对象,如果没有获取到,则新创建一个session对象
HttpSession session = request.getSession();
// 在session中获取user属性的对象
User user = (User) session.getAttribute( "user");
// 在session中获取car属性的对象
Car car = (Car) session.getAttribute( "car");
// 只有当用户已登录,且货品和数量不为空时,才允许添加项到购物车
if (user != null && product != null && number != null) {
CarItem carItem = new CarItem(); // 创建购物车项
// UUID.randomUUID().toString(),一个随机且不重复的字符串,方便购物车项的查询
carItem.setId(UUID.randomUUID().toString());
carItem.setProduct(product);
carItem.setNumber(number);
// 如果购物车为空,则创建一个购物车,并添加到Session
if (car == null) {
car = new Car();
session.setAttribute( "car", car);
}
car.add(carItem);
out.println( "购买成功<br/>");
out.println( "<a href='/buy.html'>继续购买</a><br/>");
out.println( "<a href='/list'>管理列表</a><br/>");
} else {
out.println( "<a href='/login.html'>请登录</a><br/>");
}
}
}
/day8_shopping_car/src/com/myself/servlet/DeleteServlet.java
package com.myself.servlet;
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;
import com.myself.domain.Car;
import com.myself.domain.User;
/**
* 删除购物加中的购物车项
* @author Jungor
*
*/
public class DeleteServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 设置编码
request.setCharacterEncoding( "UTF-8");
response.setContentType( "text/html;charset=UTF-8");
// 获取输出流
PrintWriter out = response.getWriter();
// 获取session,如果使用JSESSIONID没有找到则创建一个
HttpSession session = request.getSession();
// 获取session中属性名为user的对象
User user = (User) session.getAttribute( "user");
// 获取session中属性名为car的对象
Car car = (Car) session.getAttribute( "car");
// 接收需要删除的购物车项的id
String id = request.getParameter( "id");
// 如果用户已登录,则向下执行,否则向页面输出提示信息
if (user != null) {
// 当car对象存在时,才从此购物车中删除购物车项,且转入的id也不为空
if (car != null && id != null && ! "".equals(id)) {
car.remove(id);
out.println( "删除成功<br/>");
out.println( "<a href='/buy.html'>继续购买</a><br/>");
out.println( "<a href='/list'>管理列表</a><br/>");
} else {
out.println( "也还没车车...");
}
} else {
out.println( "还没登录,禁止操作。<a href='/login.html'>返回登录</a>");
}
}
}
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;
import com.myself.domain.Car;
import com.myself.domain.User;
/**
* 删除购物加中的购物车项
* @author Jungor
*
*/
public class DeleteServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 设置编码
request.setCharacterEncoding( "UTF-8");
response.setContentType( "text/html;charset=UTF-8");
// 获取输出流
PrintWriter out = response.getWriter();
// 获取session,如果使用JSESSIONID没有找到则创建一个
HttpSession session = request.getSession();
// 获取session中属性名为user的对象
User user = (User) session.getAttribute( "user");
// 获取session中属性名为car的对象
Car car = (Car) session.getAttribute( "car");
// 接收需要删除的购物车项的id
String id = request.getParameter( "id");
// 如果用户已登录,则向下执行,否则向页面输出提示信息
if (user != null) {
// 当car对象存在时,才从此购物车中删除购物车项,且转入的id也不为空
if (car != null && id != null && ! "".equals(id)) {
car.remove(id);
out.println( "删除成功<br/>");
out.println( "<a href='/buy.html'>继续购买</a><br/>");
out.println( "<a href='/list'>管理列表</a><br/>");
} else {
out.println( "也还没车车...");
}
} else {
out.println( "还没登录,禁止操作。<a href='/login.html'>返回登录</a>");
}
}
}
/day8_shopping_car/src/com/myself/servlet/ListServlet.java
package com.myself.servlet;
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;
import com.myself.domain.Car;
import com.myself.domain.CarItem;
import com.myself.domain.User;
/**
* 用于显示购物车里面的内容
* @author Jungor
*
*/
public class ListServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 设置编码
request.setCharacterEncoding( "UTF-8");
response.setContentType( "text/html;charset=UTF-8");
// 获取输出流
PrintWriter out = response.getWriter();
// 获取session,如果使用JSESSIONID没有找到则创建一个
HttpSession session = request.getSession();
// 获取session中属性名为car的对象
Car car = (Car) session.getAttribute( "car");
// 获取session中属性名为user的对象
User user = (User) session.getAttribute( "user");
// 如果user对象为空,则表示还没登录,要求用户登录后才能进行操作
if (user == null) {
out.println( "还没登录。<a href='/login.html'>请登录</a>");
return;
}
out.println( "<b>" + user.getUsername() + "</b> 的购物车<br/>");
// 如果car对象为空,表示还没创建购物车,如果不为空,就表示有购物车,可以依次输出其内容
if (car != null) {
for (CarItem carItem : car.list()) {
out.println( "商品:" + carItem.getProduct() + " 数量:" + carItem.getNumber() + " <a href='/delete?id=" + carItem.getId() + "'>删除</a>");
out.println( "<hr>");
}
} else {
out.println( "还没购物车,所以没内容");
}
}
}
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;
import com.myself.domain.Car;
import com.myself.domain.CarItem;
import com.myself.domain.User;
/**
* 用于显示购物车里面的内容
* @author Jungor
*
*/
public class ListServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 设置编码
request.setCharacterEncoding( "UTF-8");
response.setContentType( "text/html;charset=UTF-8");
// 获取输出流
PrintWriter out = response.getWriter();
// 获取session,如果使用JSESSIONID没有找到则创建一个
HttpSession session = request.getSession();
// 获取session中属性名为car的对象
Car car = (Car) session.getAttribute( "car");
// 获取session中属性名为user的对象
User user = (User) session.getAttribute( "user");
// 如果user对象为空,则表示还没登录,要求用户登录后才能进行操作
if (user == null) {
out.println( "还没登录。<a href='/login.html'>请登录</a>");
return;
}
out.println( "<b>" + user.getUsername() + "</b> 的购物车<br/>");
// 如果car对象为空,表示还没创建购物车,如果不为空,就表示有购物车,可以依次输出其内容
if (car != null) {
for (CarItem carItem : car.list()) {
out.println( "商品:" + carItem.getProduct() + " 数量:" + carItem.getNumber() + " <a href='/delete?id=" + carItem.getId() + "'>删除</a>");
out.println( "<hr>");
}
} else {
out.println( "还没购物车,所以没内容");
}
}
}
/day8_shopping_car/src/com/myself/servlet/LoginServlet.java
package com.myself.servlet;
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;
import com.myself.domain.User;
/**
* 用户登录,将登录信息封装成一个User对象,并添加到Session
* @author Jungor
*
*/
public class LoginServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 设置编码
request.setCharacterEncoding( "UTF-8");
response.setContentType( "text/html;charset=UTF-8");
// 获取输出流
PrintWriter out = response.getWriter();
// 接收到的参数
String username = request.getParameter( "username");
String password = request.getParameter( "password");
// 获取session,如果使用JSESSIONID没有找到则创建一个
HttpSession session = request.getSession();
// 获取session中属性名为user的对象
User user = (User) session.getAttribute( "user");
// 如果user对象为空,用户名和密码不为空,则将登录信息封装为一个User对象,并添加至session中
if (user == null
&& username != null && ! "".equals(username)
&& password != null && ! "".equals(password)) {
// 将username和password封装成一个User对象
user = new User();
user.setPassword(password);
user.setUsername(username);
// 将对象添加到session中
session.setAttribute( "user", user);
out.println( "欢迎回来:<b>" + user.getUsername() + "</b> <a href='/logout'>注销</a><br/>");
out.println( "<a href='/buy.html'>购物</a><br/>");
out.println( "<a href='/list'>管理购物</a>");
} else if (user != null && username == null && password == null) {
//当user对象不为空,但username和password为空,直接读取session中user对象
out.println( "欢迎回来:<b>" + user.getUsername() + "</b> <a href='/logout'>注销</a><br/>");
out.println( "<a href='/buy.html'>购物</a><br/>");
out.println( "<a href='/list'>管理购物</a>");
} else {
// 当前面条件不满足时,向页面输出提示信息
out.println( "<a href='/login.html'>重新登录</a>");
}
}
}
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;
import com.myself.domain.User;
/**
* 用户登录,将登录信息封装成一个User对象,并添加到Session
* @author Jungor
*
*/
public class LoginServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 设置编码
request.setCharacterEncoding( "UTF-8");
response.setContentType( "text/html;charset=UTF-8");
// 获取输出流
PrintWriter out = response.getWriter();
// 接收到的参数
String username = request.getParameter( "username");
String password = request.getParameter( "password");
// 获取session,如果使用JSESSIONID没有找到则创建一个
HttpSession session = request.getSession();
// 获取session中属性名为user的对象
User user = (User) session.getAttribute( "user");
// 如果user对象为空,用户名和密码不为空,则将登录信息封装为一个User对象,并添加至session中
if (user == null
&& username != null && ! "".equals(username)
&& password != null && ! "".equals(password)) {
// 将username和password封装成一个User对象
user = new User();
user.setPassword(password);
user.setUsername(username);
// 将对象添加到session中
session.setAttribute( "user", user);
out.println( "欢迎回来:<b>" + user.getUsername() + "</b> <a href='/logout'>注销</a><br/>");
out.println( "<a href='/buy.html'>购物</a><br/>");
out.println( "<a href='/list'>管理购物</a>");
} else if (user != null && username == null && password == null) {
//当user对象不为空,但username和password为空,直接读取session中user对象
out.println( "欢迎回来:<b>" + user.getUsername() + "</b> <a href='/logout'>注销</a><br/>");
out.println( "<a href='/buy.html'>购物</a><br/>");
out.println( "<a href='/list'>管理购物</a>");
} else {
// 当前面条件不满足时,向页面输出提示信息
out.println( "<a href='/login.html'>重新登录</a>");
}
}
}
/day8_shopping_car/src/com/myself/servlet/LogoutServlet.java
package com.myself.servlet;
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;
import com.myself.domain.User;
/**
* 用户注销
* @author Jungor
*
*/
public class LogoutServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// 设置编码
request.setCharacterEncoding( "UTF-8");
response.setContentType( "text/html;charset=UTF-8");
// 获取session
HttpSession session = request.getSession();
// 注销,让session失效,同时清除user和car在session中的对象
session.invalidate();
// 注销后,重定向到登录页面
response.sendRedirect( "/login.html");
}
}
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;
import com.myself.domain.User;
/**
* 用户注销
* @author Jungor
*
*/
public class LogoutServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
// 设置编码
request.setCharacterEncoding( "UTF-8");
response.setContentType( "text/html;charset=UTF-8");
// 获取session
HttpSession session = request.getSession();
// 注销,让session失效,同时清除user和car在session中的对象
session.invalidate();
// 注销后,重定向到登录页面
response.sendRedirect( "/login.html");
}
}
5.web.xml注册
<
?xml version
=
"1.0" encoding
=
"UTF-8"
?
>
<web -app xmlns = "http://java.sun.com/xml/ns/javaee" xmlns :xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi :schemaLocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version = "2.5" >
<welcome -file -list >
<welcome -file >index.html < /welcome -file >
<welcome -file >index.htm < /welcome -file >
<welcome -file >index.jps < /welcome -file >
< /welcome -file -list >
< ! -- 用户登录 -- >
<servlet >
<servlet -name >LoginServlet < /servlet -name >
<servlet - class >com.myself.servlet.LoginServlet < /servlet - class >
< /servlet >
<servlet -mapping >
<servlet -name >LoginServlet < /servlet -name >
<url -pattern > /login < /url -pattern >
< /servlet -mapping >
< ! -- 将购物车项添加到购物车 -- >
<servlet >
<servlet -name >BuyServlet < /servlet -name >
<servlet - class >com.myself.servlet.BuyServlet < /servlet - class >
< /servlet >
<servlet -mapping >
<servlet -name >BuyServlet < /servlet -name >
<url -pattern > /buy < /url -pattern >
< /servlet -mapping >
< ! -- 列出购物车项 -- >
<servlet >
<servlet -name >ListServlet < /servlet -name >
<servlet - class >com.myself.servlet.ListServlet < /servlet - class >
< /servlet >
<servlet -mapping >
<servlet -name >ListServlet < /servlet -name >
<url -pattern > /list < /url -pattern >
< /servlet -mapping >
< ! -- 删除购物车中的购物车项 -- >
<servlet >
<servlet -name >DeleteServlet < /servlet -name >
<servlet - class >com.myself.servlet.DeleteServlet < /servlet - class >
< /servlet >
<servlet -mapping >
<servlet -name >DeleteServlet < /servlet -name >
<url -pattern > /delete < /url -pattern >
< /servlet -mapping >
< ! -- 注销 -- >
<servlet >
<servlet -name >LogoutServlet < /servlet -name >
<servlet - class >com.myself.servlet.LogoutServlet < /servlet - class >
< /servlet >
<servlet -mapping >
<servlet -name >LogoutServlet < /servlet -name >
<url -pattern > /logout < /url -pattern >
< /servlet -mapping >
< /web -app >
<web -app xmlns = "http://java.sun.com/xml/ns/javaee" xmlns :xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi :schemaLocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version = "2.5" >
<welcome -file -list >
<welcome -file >index.html < /welcome -file >
<welcome -file >index.htm < /welcome -file >
<welcome -file >index.jps < /welcome -file >
< /welcome -file -list >
< ! -- 用户登录 -- >
<servlet >
<servlet -name >LoginServlet < /servlet -name >
<servlet - class >com.myself.servlet.LoginServlet < /servlet - class >
< /servlet >
<servlet -mapping >
<servlet -name >LoginServlet < /servlet -name >
<url -pattern > /login < /url -pattern >
< /servlet -mapping >
< ! -- 将购物车项添加到购物车 -- >
<servlet >
<servlet -name >BuyServlet < /servlet -name >
<servlet - class >com.myself.servlet.BuyServlet < /servlet - class >
< /servlet >
<servlet -mapping >
<servlet -name >BuyServlet < /servlet -name >
<url -pattern > /buy < /url -pattern >
< /servlet -mapping >
< ! -- 列出购物车项 -- >
<servlet >
<servlet -name >ListServlet < /servlet -name >
<servlet - class >com.myself.servlet.ListServlet < /servlet - class >
< /servlet >
<servlet -mapping >
<servlet -name >ListServlet < /servlet -name >
<url -pattern > /list < /url -pattern >
< /servlet -mapping >
< ! -- 删除购物车中的购物车项 -- >
<servlet >
<servlet -name >DeleteServlet < /servlet -name >
<servlet - class >com.myself.servlet.DeleteServlet < /servlet - class >
< /servlet >
<servlet -mapping >
<servlet -name >DeleteServlet < /servlet -name >
<url -pattern > /delete < /url -pattern >
< /servlet -mapping >
< ! -- 注销 -- >
<servlet >
<servlet -name >LogoutServlet < /servlet -name >
<servlet - class >com.myself.servlet.LogoutServlet < /servlet - class >
< /servlet >
<servlet -mapping >
<servlet -name >LogoutServlet < /servlet -name >
<url -pattern > /logout < /url -pattern >
< /servlet -mapping >
< /web -app >
6.测试OK
登录页面
登录后页面
购物页面
购物成功
购物车