源码: https://download.youkuaiyun.com/download/aihiao/14974520
1. 新建一个名为StudentManager的Web项目
2. 考入相关jar
3. c3p0-config.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<!-- default-config 默认的配置 -->
<default-config>
<property name="driverClass">com.mysql.cj.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://192.168.25.138:3306/StudentManager?useSSL=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai</property>
<property name="user">root</property>
<property name="password">lyw123456</property>
<!-- 初始化连接池数量 -->
<property name="initialPoolSize">10</property>
<!-- 数据库连接最大空闲时间 -->
<property name="maxIdleTime">30</property>
<!-- 池子最大连接数 -->
<property name="maxPoolSize">100</property>
<!-- 池子最小连接数 -->
<property name="minPoolSize">10</property>
<!-- 最大Statements对象数 -->
<property name="maxStatements">200</property>
</default-config>
</c3p0-config>
4. 数据库连接池JDBCUtil.java工具类
package com.lywgames.util;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
/**
* 使用数据库连接池的获取的数据库连接, 我们不用做关闭操作, 数据库连接池自行管理
*/
public class JDBCUtil {
private static DataSource dataSource = null;
static {
dataSource = new ComboPooledDataSource();
}
public static DataSource getDataSource() {
return dataSource;
}
/**
* 获取连接对象
*/
public static Connection getConn(){
try {
return dataSource.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
/**
* 释放资源
* @param st
* @param rs
*/
public static void release(Statement st, ResultSet rs){
closeRs(rs);
closeSt(st);
}
public static void release(Statement st){
closeSt(st);
}
public static void closeRs(ResultSet rs){
try {
if(rs != null){
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
rs = null;
}
}
public static void closeSt(Statement st){
try {
if(st != null){
st.close();
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
st = null;
}
}
}
5. 学生Student.java实体类
package com.lywgames.domain;
import java.sql.Timestamp;
/**
* 这是学封装的对象 bean
*/
public class Student {
private int sid;
private String sname;
private String gender;
private String phone;
private String hobby;
private String info;
private Timestamp birthday;
public Student() {}
public Student(String sname, String gender, String phone, String hobby, String info, Timestamp birthday) {
this.sname = sname;
this.gender = gender;
this.phone = phone;
this.hobby = hobby;
this.info = info;
this.birthday = birthday;
}
public Student(int sid, String sname, String gender, String phone, String hobby, String info, Timestamp birthday) {
super();
this.sid = sid;
this.sname = sname;
this.gender = gender;
this.phone = phone;
this.hobby = hobby;
this.info = info;
this.birthday = birthday;
}
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public String getSname() {
return sname;
}
public void setSname(String sname) {
this.sname = sname;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getHobby() {
return hobby;
}
public void setHobby(String hobby) {
this.hobby = hobby;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
public Timestamp getBirthday() {
return birthday;
}
public void setBirthday(Timestamp birthday) {
this.birthday = birthday;
}
@Override
public String toString() {
return "Student [sid=" + sid + ", sname=" + sname + ", gender=" + gender + ", phone=" + phone + ", hobby="
+ hobby + ", info=" + info + ", birthday=" + birthday + "]";
}
}
6. 分页PageBean.java实体类
package com.lywgames.domain;
import java.util.List;
/**
* 这是一个用于封装了分页的数据。
* 里面包含:
* 该页的学生集合数据
* 总的记录数
* 总的页数
* 当前页
* 每页显示的记录数
* @param <T>
*/
public class PageBean<T> {
private int currentPage; //当前页
private int totalPage; //总页数
private int pageSize; //每页的记录数
private int totalSize; //总的记录数
private List<T> list; //当前页的学生集合
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotalSize() {
return totalSize;
}
public void setTotalSize(int totalSize) {
this.totalSize = totalSize;
}
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
}
7. 数据库操作StudentDao.java接口
package com.lywgames.dao;
import java.sql.SQLException;
import java.util.List;
import com.lywgames.domain.Student;
/**
* 这是针对学生表的数据访问
*/
public interface StudentDao {
/**
* 查询所有学生
* @return List<Student>
*/
List<Student> findAll() throws SQLException;
/**
* 添加学生
* @param student 需要添加到数据库的学生对象
* @throws SQLException
*/
int insert(Student student) throws SQLException;
/**
* 根据id删除学生
* @param sid
* @throws SQLException
*/
int delete(int sid) throws SQLException;
/**
* 根据id查询单个学生对象
* @param sid
* @return
* @throws SQLException
*/
Student findStudentById(int sid) throws SQLException;
/**
* 更新学生信息
* @param student 需要更新的学生数据
* @throws SQLException
*/
int update(Student student) throws SQLException;
/**
* 模糊查询, 根据姓名或者根据性别或者两者兼有。
* @param sname
* @param sgender
* @return 集合
* @throws SQLException
*/
List<Student> searchStudent(String sname, String sgender) throws SQLException;
/**
* 查询当页的学生数据
* @param currentPage
* @param pageSize
* @return
* @throws SQLException
*/
List<Student> findStudentByPage(int currentPage, int pageSize) throws SQLException;
/**
* 查询总的学生记录数
* @return
* @throws SQLException
*/
int findCount() throws SQLException;
}
8. 数据库操作StudentDaoImpl.java实现类
package com.lywgames.dao.impl;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;
import com.lywgames.dao.StudentDao;
import com.lywgames.domain.Student;
import com.lywgames.util.JDBCUtil;
/**
* 这是StudentDao的实现。 针对前面定义的规范, 做出具体的实现。
*/
public class StudentDaoImpl implements StudentDao {
/**
* 查询所有学生
*/
@Override
public List<Student> findAll() throws SQLException {
QueryRunner queryRunner = new QueryRunner();
return queryRunner.query(JDBCUtil.getConn(), "select * from t_student", new BeanListHandler<Student>(Student.class));
}
/**
* 添加学生
*/
@Override
public int insert(Student student) throws SQLException {
QueryRunner queryRunner = new QueryRunner();
return queryRunner.update(JDBCUtil.getConn(), "insert into t_student values (null, ?, ?, ?, ?, ?, ?)", student.getSname(),
student.getGender(), student.getPhone(), student.getHobby(), student.getInfo(), student.getBirthday());
}
/**
* 根据id删除学生
*/
@Override
public int delete(int sid) throws SQLException {
QueryRunner queryRunner = new QueryRunner();
return queryRunner.update(JDBCUtil.getConn(), "delete from t_student where sid = ?", sid);
}
/**
* 根据id查询单个学生对象
*/
@Override
public Student findStudentById(int sid) throws SQLException {
QueryRunner queryRunner = new QueryRunner();
return queryRunner.query(JDBCUtil.getConn(), "select * from t_student where sid = ?", new BeanHandler<Student>(Student.class), sid);
}
/**
* 更新学生信息
*/
@Override
public int update(Student student) throws SQLException {
QueryRunner queryRunner = new QueryRunner();
return queryRunner.update(JDBCUtil.getConn(), "update t_student set sname = ?, gender = ?, phone = ?, hobby = ?, info = ?, birthday = ? where sid = ?",
student.getSname(), student.getGender(), student.getPhone(), student.getHobby(), student.getInfo(), student.getBirthday(), student.getSid());
}
/**
* 模糊查询, 根据姓名或者根据性别或者两者兼有。
*/
@Override
public List<Student> searchStudent(String sname, String sgender) throws SQLException {
/**
* 1. sname有值, sgender为null或者""
* select * from t_student where sname like ?
* 2. sgender有值, sname为null或者""
* select * from t_student where sgender = ?
* 3. sname有值, sgender也有值
* select * from t_student where sname = ? and sgender = ?
*/
String sql = "select * from t_student";
List<String> params = new ArrayList<String>();
if(sname != null && sname.length() > 0 && (sgender == null || sgender.length() <= 0)) {
sql = sql + " where sname like ?";
params.add("%" + sname + "%");
}
if(sgender != null && sgender.length() > 0 && (sname == null || sname.length() <= 0)) {
sql = sql + " where gender = ?";
params.add(sgender);
}
if(sname != null && sname.length() > 0 && sgender != null && sgender.length() > 0) {
sql = sql + " where sname like ? and gender = ?";
params.add("%" + sname + "%");
params.add(sgender);
}
QueryRunner queryRunner = new QueryRunner();
return queryRunner.query(JDBCUtil.getConn(), sql, new BeanListHandler<Student>(Student.class), params.toArray());
}
/**
* 查询当页的学生数据
*/
@Override
public List<Student> findStudentByPage(int currentPage, int pageSize) throws SQLException {
// 假设pageSize是5
// 第一页: [5, 0], 0 = (1 - 1) * 5
// 第二页: [5, 5], 5 = (2 - 1) * 5
// 第三页: [5, 10], 10 = (3 - 1) * 5
String sql = "select * from t_student limit ? offset ?";
QueryRunner queryRunner = new QueryRunner();
return queryRunner.query(JDBCUtil.getConn(), sql, new BeanListHandler<Student>(Student.class), pageSize, (currentPage - 1) * pageSize);
}
/**
* 查询总的学生记录数
*/
@Override
public int findCount() throws SQLException {
QueryRunner queryRunner = new QueryRunner();
return ((Long)queryRunner.query(JDBCUtil.getConn(), "select count(*) from t_student", new ScalarHandler())).intValue();
}
}
9. 逻辑操作StudentService.java接口
package com.lywgames.service;
import java.sql.SQLException;
import java.util.List;
import com.lywgames.domain.PageBean;
import com.lywgames.domain.Student;
/**
* 这是学生的业务处理规范
*/
public interface StudentService {
int DEFAULT_PAGE_SIZE = 5; // 默认一页显示多少条记录
/**
* 查询所有学生
* @return List<Student>
*/
List<Student> findAll();
/**
* 添加学生
* @param student 需要添加到数据库的学生对象
* @throws SQLException
*/
int insert(Student student);
/**
* 根据id删除学生
* @param sid
* @throws SQLException
*/
int delete(int sid);
/**
* 根据id查询单个学生对象
* @param sid
* @return
* @throws SQLException
*/
Student findStudentById(int sid);
/**
* 更新学生信息
* @param student 需要更新的学生数据
* @throws SQLException
*/
int update(Student student);
/**
* 模糊查询, 根据姓名或者根据性别或者两者兼有。
* @param sname
* @param sgender
* @return 集合
* @throws SQLException
*/
List<Student> searchStudent(String sname, String sgender);
/**
* 查询当页的学生数据
* @param currentPage
* @return
* @throws SQLException
*/
PageBean<Student> findStudentByPage(int currentPage);
}
10. 逻辑操作StudentServiceImpl.java实现类
package com.lywgames.service.impl;
import java.sql.SQLException;
import java.util.List;
import com.lywgames.dao.StudentDao;
import com.lywgames.dao.impl.StudentDaoImpl;
import com.lywgames.domain.PageBean;
import com.lywgames.domain.Student;
import com.lywgames.service.StudentService;
/**
* 这是学生业务实现
*/
public class StudentServiceImpl implements StudentService {
private StudentDao studentDao = new StudentDaoImpl();
@Override
public List<Student> findAll(){
try {
return studentDao.findAll();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
@Override
public int insert(Student student){
try {
return studentDao.insert(student);
} catch (SQLException e) {
e.printStackTrace();
}
return -1;
}
@Override
public int delete(int sid) {
try {
return studentDao.delete(sid);
} catch (SQLException e) {
e.printStackTrace();
}
return -1;
}
@Override
public Student findStudentById(int sid) {
try {
return studentDao.findStudentById(sid);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
@Override
public int update(Student student) {
try {
return studentDao.update(student);
} catch (SQLException e) {
e.printStackTrace();
}
return -1;
}
@Override
public List<Student> searchStudent(String sname, String sgender) {
try {
return studentDao.searchStudent(sname, sgender);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
@Override
public PageBean<Student> findStudentByPage(int currentPage) {
PageBean<Student> pageBean = new PageBean<Student>();
pageBean.setCurrentPage(currentPage);
pageBean.setPageSize(DEFAULT_PAGE_SIZE);
try {
pageBean.setList(studentDao.findStudentByPage(currentPage, DEFAULT_PAGE_SIZE));
int count = studentDao.findCount();
pageBean.setTotalSize(count);
pageBean.setTotalPage(count % DEFAULT_PAGE_SIZE == 0 ? count / DEFAULT_PAGE_SIZE : (count / DEFAULT_PAGE_SIZE) + 1);
} catch (SQLException e) {
e.printStackTrace();
}
return pageBean;
}
}
11. 查找所有学生StudentListServlet.java
package com.lywgames.servlet;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.lywgames.domain.Student;
import com.lywgames.service.StudentService;
import com.lywgames.service.impl.StudentServiceImpl;
/**
* 查找所有学生
*/
public class StudentListServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
StudentService service = new StudentServiceImpl();
List<Student> studentList = service.findAll();
if(studentList != null) {
req.setAttribute("studentList", studentList);
}
req.getRequestDispatcher("list.jsp").forward(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
12. 分页查找学生StudentListPageServlet.java
package com.lywgames.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 com.lywgames.domain.PageBean;
import com.lywgames.domain.Student;
import com.lywgames.service.StudentService;
import com.lywgames.service.impl.StudentServiceImpl;
/**
* 分页查找学生
*/
public class StudentListPageServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
int currentPage = Integer.valueOf(req.getParameter("currentPage")).intValue() ;
StudentService service = new StudentServiceImpl();
PageBean<Student> pageBean = service.findStudentByPage(currentPage);
req.setAttribute("pageBean", pageBean);
req.getRequestDispatcher("page_list.jsp").forward(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
13. 添加学生AddServlet.java
package com.lywgames.servlet;
import java.io.IOException;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.lywgames.domain.Student;
import com.lywgames.service.StudentService;
import com.lywgames.service.impl.StudentServiceImpl;
/**
* 添加学生
*/
public class AddServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
String sname = req.getParameter("sname");
String gender = req.getParameter("gender");
String phone = req.getParameter("phone");
String info = req.getParameter("info");
long time = System.currentTimeMillis();
try {
time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(req.getParameter("birthday")).getTime();
} catch (ParseException e) {
e.printStackTrace();
}
Timestamp birthday = new Timestamp(time);
String[] hobbys = req.getParameterValues("hobby");
StringBuffer sb = new StringBuffer();
for(int i = 0; i < hobbys.length; i++) {
sb.append(hobbys[i]);
if(i < hobbys.length - 1) {
sb.append(",");
}
}
StudentService service = new StudentServiceImpl();
Student student = new Student(sname, gender, phone, sb.toString(), info, birthday);
int result = service.insert(student);
if(result == 1) {
req.getRequestDispatcher("StudentListServlet.action").forward(req, resp);
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
14. 编辑学生信息EditServlet.java
package com.lywgames.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 com.lywgames.domain.Student;
import com.lywgames.service.StudentService;
import com.lywgames.service.impl.StudentServiceImpl;
/**
* 编辑学生信息
*/
public class EditServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
String sid = req.getParameter("sid");
StudentService service = new StudentServiceImpl();
Student student = service.findStudentById(Integer.parseInt(sid));
if(student != null) {
req.setAttribute("student", student);
req.getRequestDispatcher("edit.jsp").forward(req, resp);
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
15. 更新学生信息UpdateServlet.java
package com.lywgames.servlet;
import java.io.IOException;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.lywgames.domain.Student;
import com.lywgames.service.StudentService;
import com.lywgames.service.impl.StudentServiceImpl;
/**
* 更新学生信息
*/
public class UpdateServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
int sid = Integer.parseInt(req.getParameter("sid"));
String sname = req.getParameter("sname");
String gender = req.getParameter("gender");
String phone = req.getParameter("phone");
String info = req.getParameter("info");
long time = System.currentTimeMillis();
try {
time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(req.getParameter("birthday")).getTime();
} catch (ParseException e) {
e.printStackTrace();
}
Timestamp birthday = new Timestamp(time);
String[] hobbys = req.getParameterValues("hobby");
StringBuffer sb = new StringBuffer();
for(int i = 0; i < hobbys.length; i++) {
sb.append(hobbys[i]);
if(i < hobbys.length - 1) {
sb.append(",");
}
}
StudentService service = new StudentServiceImpl();
Student student = new Student(sid, sname, gender, phone, sb.toString(), info, birthday);
int result = service.update(student);
if(result == 1) {
req.getRequestDispatcher("StudentListServlet.action").forward(req, resp);
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
16. 删除学生DeleteServlet.java
package com.lywgames.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 com.lywgames.service.StudentService;
import com.lywgames.service.impl.StudentServiceImpl;
/**
* 删除学生
*/
public class DeleteServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
String sid = req.getParameter("sid");
StudentService service = new StudentServiceImpl();
int result = service.delete(Integer.parseInt(sid));
if(result == 1) {
req.getRequestDispatcher("StudentListServlet.action").forward(req, resp);
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
17. 查找学生SearchStudentServlet.java
package com.lywgames.servlet;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.lywgames.domain.Student;
import com.lywgames.service.StudentService;
import com.lywgames.service.impl.StudentServiceImpl;
/**
* 查找学生
*/
public class SearchStudentServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
String sname = req.getParameter("sname");
String gender = req.getParameter("gender");
StudentService service = new StudentServiceImpl();
List<Student> studentList = service.searchStudent(sname, gender);
if(studentList != null) {
req.setAttribute("studentList", studentList);
}
req.getRequestDispatcher("list.jsp").forward(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
18. web.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>StudentManager</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>StudentListServlet</servlet-name>
<servlet-class>com.lywgames.servlet.StudentListServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>StudentListServlet</servlet-name>
<url-pattern>/StudentListServlet.action</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>AddServlet</servlet-name>
<servlet-class>com.lywgames.servlet.AddServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AddServlet</servlet-name>
<url-pattern>/AddServlet.action</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>EditServlet</servlet-name>
<servlet-class>com.lywgames.servlet.EditServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>EditServlet</servlet-name>
<url-pattern>/EditServlet.action</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>UpdateServlet</servlet-name>
<servlet-class>com.lywgames.servlet.UpdateServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UpdateServlet</servlet-name>
<url-pattern>/UpdateServlet.action</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>DeleteServlet</servlet-name>
<servlet-class>com.lywgames.servlet.DeleteServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DeleteServlet</servlet-name>
<url-pattern>/DeleteServlet.action</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>SearchStudentServlet</servlet-name>
<servlet-class>com.lywgames.servlet.SearchStudentServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SearchStudentServlet</servlet-name>
<url-pattern>/SearchStudentServlet.action</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>StudentListPageServlet</servlet-name>
<servlet-class>com.lywgames.servlet.StudentListPageServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>StudentListPageServlet</servlet-name>
<url-pattern>/StudentListPageServlet.action</url-pattern>
</servlet-mapping>
</web-app>