1.创建数据库表
create table t_student(
stu_id int primary key auto_increment,
stu_name varchar(20),
stu_age int,
stu_address varchar(20)
);
2.创建项目,导入依赖包,完善项目结构
需要的依赖包:
javax.servlet-api + druid + mysql-connector-java + javax.servlet.jsp-api + jstl + standard
项目结构
3.创建javabean类
package com.weiwei.studentdemo.bean;
public class StudentBean {
private int stuid;
private String stuname;
private int stuage;
private String stuaddress;
public int getStuid() {
return stuid;
}
public void setStuid(int stuid) {
this.stuid = stuid;
}
public String getStuname() {
return stuname;
}
public void setStuname(String stuname) {
this.stuname = stuname;
}
public int getStuage() {
return stuage;
}
public void setStuage(int stuage) {
this.stuage = stuage;
}
public String getStuaddress() {
return stuaddress;
}
public void setStuaddress(String stuaddress) {
this.stuaddress = stuaddress;
}
}
4.创建数据访问接口
package com.weiwei.studentdemo.db;
import com.weiwei.studentdemo.bean.StudentBean;
import java.util.List;
/**
* 创建数据访问接口
*/
public interface StudentDao {
//接口下的抽象方法
//查询所有学生信息,返回一个学生信息集合供遍历显示
List<StudentBean> getAllStudent();
//添加学生信息,返回添加结果
Boolean insertStudent(StudentBean studentBean);
//根据学号查询单个学生信息
StudentBean getOneStudent(int stuid);
//修改学生信息
Boolean updateStudent(StudentBean studentBean);
//根据学号删除学生信息
Boolean removeStudent(int stuid);
}
5.在resources中配置数据源【db.properties】
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/student_db?serverTimezone=UTC
username=root
password=123456
initialSize=100
maxActive=300
maxWait=60000
6.创建数据访问接口实现类
package com.weiwei.studentdemo.db;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import com.weiwei.studentdemo.bean.StudentBean;
import javax.sql.DataSource;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
/**
* 创建数据访问接口实现类
*/
public class StudentDaoImpl implements StudentDao{
/*
和数据库创立连接
*/
//定义保存Druid数据源对象
private DataSource dataSource=null;
//无参数构造方法初始化数据源
private StudentDaoImpl(){
if(dataSource==null){
try {
Properties pro = new Properties();
InputStream inStream = this.getClass().getResourceAsStream("/db.properties");
pro.load(inStream);
dataSource = DruidDataSourceFactory.createDataSource(pro);
}catch (Exception e){
e.printStackTrace();
}
}
}
/**
* 单例模式创建数据访问接口实现类
* 保证只创建一个对象:构造方法私有、提供一个静态方法返回创建好的当前类对象
*/
private static StudentDaoImpl studaoimp=null;
public static StudentDaoImpl getStudaoimp(){
if(studaoimp==null){
studaoimp=new StudentDaoImpl();
}
return studaoimp;
}
@Override
/**
* 从数据库查询所有学生信息返回集合中
*
*/
public List<StudentBean> getAllStudent() {
List<StudentBean> studentlist=null;
try {
//数据库建立连接
Connection conn = dataSource.getConnection();
String sql="select * from t_student;";
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs= ps.executeQuery();
studentlist = new ArrayList<>();
while (rs.next()){
StudentBean stu = new StudentBean();
stu.setStuid(rs.getInt("stu_id"));
stu.setStuname(rs.getString("stu_name"));
stu.setStuage(rs.getInt("stu_age"));
stu.setStuaddress(rs.getString("stu_address"));
studentlist.add(stu);
}
rs.close();
ps.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
return studentlist;
}
@Override
/**
* 添加学生信息
*
*/
public Boolean insertStudent(StudentBean studentBean) {
boolean flag=false;
try {
Connection conn = dataSource.getConnection();
String sql="insert into t_student values(null,?,?,?);";
PreparedStatement ps=conn.prepareStatement(sql);
ps.setString(1,studentBean.getStuname());
ps.setInt(2,studentBean.getStuage());
ps.setString(3,studentBean.getStuaddress());
if(ps.executeUpdate()>0){
flag=true;
}
ps.close();
conn.close();
}catch (Exception e){
e.printStackTrace();
}
return flag;
}
@Override
/**
* 查询单个学生信息
*
*/
public StudentBean getOneStudent(int stuid) {
StudentBean student=null;
try {
Connection conn = dataSource.getConnection();
String sql="select * from t_student where stu_id=?;";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1,stuid);
ResultSet rs = ps.executeQuery();
if(rs.next()){
student= new StudentBean();
student.setStuid(rs.getInt("stu_id"));
student.setStuname(rs.getString("stu_name"));
student.setStuage(rs.getInt("stu_age"));
student.setStuaddress(rs.getString("stu_address"));
}
rs.close();
ps.close();
conn.close();
}catch (Exception e){
e.printStackTrace();
}
return student;
}
@Override
/**
* 修改学生信息
*/
public Boolean updateStudent(StudentBean student) {
boolean flag=false;
try {
Connection conn = dataSource.getConnection();
String sql="update t_student set stu_name=?,stu_age=?,stu_address=? where stu_id=?;";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1,student.getStuname());
ps.setInt(2,student.getStuage());
ps.setString(3,student.getStuaddress());
ps.setInt(4,student.getStuid());
if(ps.executeUpdate()>0){
flag=true;
}
}catch(Exception e){
e.printStackTrace();
}
return flag;
}
@Override
/**
* 删除学生
*/
public Boolean removeStudent(int stuid) {
boolean flag=false;
try {
Connection conn = dataSource.getConnection();
String sql="delete from t_student where stu_id=?;";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1,stuid);
if(ps.executeUpdate()>0){flag=true;}
ps.close();
conn.close();
}catch (Exception e){
e.printStackTrace();
}
return flag;
}
}
7.创建业务访问接口
package com.weiwei.studentdemo.service;
import com.weiwei.studentdemo.bean.StudentBean;
import java.util.List;
public interface StudentService {
List<StudentBean> queryAllStudent();
boolean addStudent(StudentBean studentBean);
boolean deleteStudent(int stuid);
boolean modifyStudent(StudentBean studentBean);
StudentBean queryOneStudent(int stuid);
}
8.创建业务访问接口实现类
package com.weiwei.studentdemo.service;
import com.weiwei.studentdemo.bean.StudentBean;
import com.weiwei.studentdemo.db.StudentDao;
import java.util.List;
public class StudentServiceImpl implements StudentService{
private StudentDao studentDao=null;
public StudentServiceImpl(StudentDao studentDao){
this.studentDao=studentDao;
}
@Override
public List<StudentBean> queryAllStudent() {
return studentDao.getAllStudent();
}
@Override
public boolean addStudent(StudentBean studentBean) {
return studentDao.insertStudent(studentBean);
}
@Override
public boolean deleteStudent(int stuid) {
return studentDao.removeStudent(stuid);
}
@Override
public boolean modifyStudent(StudentBean studentBean) {
return studentDao.updateStudent(studentBean);
}
@Override
public StudentBean queryOneStudent(int stuid) {
return studentDao.getOneStudent(stuid);
}
}
9.创建Servlet
9.1 查询所有学生servlet
package com.weiwei.studentdemo.servlet;
import com.weiwei.studentdemo.bean.StudentBean;
import com.weiwei.studentdemo.db.StudentDaoImpl;
import com.weiwei.studentdemo.service.StudentServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
public class StudentAllServlet 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 {
StudentServiceImpl studentService = new StudentServiceImpl(StudentDaoImpl.getStudaoimp());
List<StudentBean> studentBeanList = studentService.queryAllStudent();
req.setAttribute("studentBeanList",studentBeanList);
req.getRequestDispatcher("/main.jsp").forward(req,resp);
}
}
9.2 添加学生servlet
package com.weiwei.studentdemo.servlet;
import com.weiwei.studentdemo.bean.StudentBean;
import com.weiwei.studentdemo.db.StudentDaoImpl;
import com.weiwei.studentdemo.service.StudentServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class addStudentServlet 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 {
String stuname = req.getParameter("stuname");
int stuage = Integer.parseInt(req.getParameter("stuage"));
String stuaddress = req.getParameter("stuaddress");
StudentBean studentBean = new StudentBean();
studentBean.setStuname(stuname);
studentBean.setStuage(stuage);
studentBean.setStuaddress(stuaddress);
StudentServiceImpl studentService = new StudentServiceImpl(StudentDaoImpl.getStudaoimp());
studentService.addStudent(studentBean);
req.getRequestDispatcher("/getall").forward(req,resp);
}
}
9.3 删除学生servlet
package com.weiwei.studentdemo.servlet;
import com.weiwei.studentdemo.db.StudentDaoImpl;
import com.weiwei.studentdemo.service.StudentServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class deleteStudentServlet 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 {
int stuid = Integer.parseInt(req.getParameter("stuid"));
StudentServiceImpl studentService = new StudentServiceImpl(StudentDaoImpl.getStudaoimp());
studentService.deleteStudent(stuid);
req.getRequestDispatcher("/getall").forward(req,resp);
}
}
9.4 查询单个学生信息servlet
package com.weiwei.studentdemo.servlet;
import com.weiwei.studentdemo.bean.StudentBean;
import com.weiwei.studentdemo.db.StudentDaoImpl;
import com.weiwei.studentdemo.service.StudentServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
public class OneStudentServlet 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 {
int stuid = Integer.parseInt(req.getParameter("stuid"));
StudentServiceImpl studentService = new StudentServiceImpl(StudentDaoImpl.getStudaoimp());
StudentBean studentBean = studentService.queryOneStudent(stuid);
req.setAttribute("studentBean",studentBean);
req.getRequestDispatcher("/showone.jsp").forward(req,resp);
}
}
9.5 修改学生servlet
package com.weiwei.studentdemo.servlet;
import com.weiwei.studentdemo.bean.StudentBean;
import com.weiwei.studentdemo.db.StudentDaoImpl;
import com.weiwei.studentdemo.service.StudentServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
public class ModifyToServlet 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 {
int stuid = Integer.parseInt(req.getParameter("stuid"));
StudentServiceImpl studentService = new StudentServiceImpl(StudentDaoImpl.getStudaoimp());
StudentBean student = studentService.queryOneStudent(stuid);
req.setAttribute("student",student);
req.getRequestDispatcher("/modify.jsp").forward(req,resp);
}
}
package com.weiwei.studentdemo.servlet;
import com.weiwei.studentdemo.bean.StudentBean;
import com.weiwei.studentdemo.db.StudentDaoImpl;
import com.weiwei.studentdemo.service.StudentServiceImpl;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class modifyStudentServlet 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 {
int stuid = Integer.parseInt(req.getParameter("stuid"));
String stuname = req.getParameter("stuname");
int stuage = Integer.parseInt(req.getParameter("stuage"));
String stuaddress = req.getParameter("stuaddress");
StudentBean studentBean = new StudentBean();
studentBean.setStuid(stuid);
studentBean.setStuname(stuname);
studentBean.setStuage(stuage);
studentBean.setStuaddress(stuaddress);
StudentServiceImpl studentService = new StudentServiceImpl(StudentDaoImpl.getStudaoimp());
studentService.modifyStudent(studentBean);
req.getRequestDispatcher("/getall").forward(req,resp);
}
}
9.6 字过滤器servlet
package com.weiwei.studentdemo.servlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
public class CharServlet extends HttpServletRequestWrapper {
private HttpServletRequest request;
private String encoding ;
public CharServlet(HttpServletRequest request, String encoding) {
super(request);
this.request = request;
this.encoding = encoding;
}
@Override
public String getParameter(String name) {
/*
String name=req.getParameter("name");
byte data[]=name.getBytes("utf-8");
String newname=new String(data,""utf-8");
*/
String value = request.getParameter(name);
if (value == null) {
return null;
}
//得到请求方式
String method = request.getMethod();
if ("get".equalsIgnoreCase(method)) {
try {
value = new String(value.getBytes(this.encoding), this.encoding);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
return value;
}
}
10.字符过滤器filter
package com.weiwei.studentdemo.filter;
import com.weiwei.studentdemo.servlet.CharServlet;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class CharFilter implements Filter {
String code;
@Override
public void init(FilterConfig filterConfig) throws ServletException {
code = filterConfig.getInitParameter("charcode");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) servletRequest;
HttpServletResponse resp= (HttpServletResponse) servletResponse;
req.setCharacterEncoding(code);
resp.setCharacterEncoding(code);
//解决post请求的中文乱码
resp.setContentType("text/html;charset"+code);
//解决get请求的中文乱码----重写getParameter方法
CharServlet charServlet = new CharServlet(req, code);
filterChain.doFilter(charServlet,resp);
}
@Override
public void destroy() {
}
}
11.jsp页面代码
11.1 main.jsp---主页面(显示所有学生信息)
<%--
Created by IntelliJ IDEA.
User: Betty
Date: 2022/2/21
Time: 17:12
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>学生管理系统</title>
</head>
<body>
<center>
<a href="addstudent.jsp">添加学生信息</a>
<a href="queryone.jsp">查询学生信息</a>
<table border="1px" width="500px" cellspacing="0px">
<tr align="center">
<td>学生编号</td>
<td>学生姓名</td>
<td>学生年龄</td>
<td>学生地址</td>
<td colspan="2">操作</td>
</tr>
<c:if test="${studentBeanList.size()>0}">
<c:forEach items="${studentBeanList}" var="student">
<tr align="center">
<td>${student.stuid}</td>
<td>${student.stuname}</td>
<td>${student.stuage}</td>
<td>${student.stuaddress}</td>
<td><a href="/studentdemo/delete?stuid=${student.stuid}">删除</a></td>
<td><a href="/studentdemo/modifyto?stuid=${student.stuid}">修改</a></td>
</tr>
</c:forEach>
</c:if>
<c:if test="${studentBeanList.size()<=0}">
<tr align="center">
<td colspan="6" style="color: red">没有记录</td>
</tr>
</c:if>
</table>
</center>
</body>
</html>
11.2 addstudent.jsp---添加学生页面
<%--
Created by IntelliJ IDEA.
User: Betty
Date: 2022/2/21
Time: 17:17
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>添加学生信息</title>
</head>
<body>
<center>
<form action="add" method="post">
<table border="1px">
<tr>
<td>学生姓名:</td>
<td><input type="text" name="stuname"></td>
</tr>
<tr>
<td>学生年龄:</td>
<td><input type="text" name="stuage"></td>
</tr>
<tr>
<td>学生地址:</td>
<td><input type="text" name="stuaddress"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="添加"></td>
</tr>
</table>
</form>
<a href="/studentdemo/getall">返回主页</a>
</center>
</body>
</html>
11.3 showone.jsp---显示单个学生信息页面
<%--
Created by IntelliJ IDEA.
User: Betty
Date: 2022/2/22
Time: 10:56
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>搜索学生信息</title>
</head>
<body>
<center>
<table border="1px" width="500px" cellspacing="0px">
<tr align="center">
<td>学生编号</td>
<td>学生姓名</td>
<td>学生年龄</td>
<td>学生地址</td>
</tr>
<tr align="center">
<td>${studentBean.stuid}</td>
<td>${studentBean.stuname}</td>
<td>${studentBean.stuage}</td>
<td>${studentBean.stuaddress}</td>
</tr>
<c:if test="${studentBean==null}">
<tr align="center">
<td colspan="4" style="color: red">没有该学生信息</td>
</tr>
</c:if>
</table>
<a href="/studentdemo/getall">返回主页</a>
</center>
</body>
</html>
11.4 queryone.jsp---搜索学生信息页面
<%--
Created by IntelliJ IDEA.
User: Betty
Date: 2022/2/22
Time: 10:57
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>搜索学生信息</title>
</head>
<body>
<center>
<form action="getone" method="post">
<table>
<tr>
<td>学生编号:</td>
<td><input type="text" name="stuid"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="查询"></td>
</tr>
</table>
</form>
<a href="/studentdemo/getall">返回主页</a>
</center>
</body>
</html>
11.5 modify.jsp---修改学生信息页面
<%--
Created by IntelliJ IDEA.
User: Betty
Date: 2022/2/22
Time: 11:22
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>修改学生信息</title>
</head>
<body>
<center>
<form action="renew" method="post">
<table>
<tr>
<td>学生编号</td>
<td><input type="text" name="stuid" value="${student.stuid}"></td>
</tr>
<tr>
<td>学生姓名</td>
<td><input type="text" name="stuname" value="${student.stuname}"></td>
</tr>
<tr>
<td>学生年龄</td>
<td><input type="text" name="stuage" value="${student.stuage}"></td>
</tr>
<tr>
<td>学生地址</td>
<td><input type="text" name="stuaddress" value="${student.stuaddress}"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="修改"></td>
</tr>
</table>
</form>
</center>
</body>
</html>
12. web.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<display-name>Archetype Created Web Application</display-name>
<filter>
<filter-name>charfilter</filter-name>
<filter-class>com.weiwei.studentdemo.filter.CharFilter</filter-class>
<init-param>
<param-name>charcode</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>charfilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>getall</servlet-name>
<servlet-class>com.weiwei.studentdemo.servlet.StudentAllServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>add</servlet-name>
<servlet-class>com.weiwei.studentdemo.servlet.addStudentServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>delete</servlet-name>
<servlet-class>com.weiwei.studentdemo.servlet.deleteStudentServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>getone</servlet-name>
<servlet-class>com.weiwei.studentdemo.servlet.OneStudentServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>renew</servlet-name>
<servlet-class>com.weiwei.studentdemo.servlet.modifyStudentServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>modifyto</servlet-name>
<servlet-class>com.weiwei.studentdemo.servlet.ModifyToServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>getall</servlet-name>
<url-pattern>/getall</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>add</servlet-name>
<url-pattern>/add</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>delete</servlet-name>
<url-pattern>/delete</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>getone</servlet-name>
<url-pattern>/getone</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>renew</servlet-name>
<url-pattern>/renew</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>modifyto</servlet-name>
<url-pattern>/modifyto</url-pattern>
</servlet-mapping>
</web-app>
13.执行页面过程展示