web 实验四 基于servlet的mvc模式

 

在实验开始前要导入相应的jar包。以及相关的library。

bean.studentBean.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
package bean;
 
import java.sql.ResultSet;
import java.util.ArrayList;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
 
import DBuntil.Dbutil;
 
public class studentBean {
private String name;
private String id;
private String sex;
private String birthday;
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getSex() {
    return sex;
}
public void setSex(String sex) {
    this.sex = sex;
}
public String getId() {
    return id;
}
public void setId(String id) {
    this.id = id;
}
public String getBirthday() {
    return birthday;
}
public void setBirthday(String birthday) {
    this.birthday = birthday;
}
 
/**
 * 从BookInfo表中获取所有的图书信息
 *
 * @return BookInfo的数组
 */
public static ArrayList<studentBean> getBookList() {
    ArrayList<studentBean> list = new ArrayList<studentBean>();
    String sql = "select * from students";
    Dbutil jdbc = new Dbutil();
    ResultSet rs = jdbc.executeQuery(sql);
    try {
        while (rs.next()) {
            studentBean bi = new studentBean();
            bi.setId(rs.getString("id"));
            bi.setName(rs.getString("name"));
            bi.setSex(rs.getString("sex"));
            bi.setBirthday(rs.getString("birthday"));
            list.add(bi);
        }
        rs.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    jdbc.close();
    return list;
}
/**
 * 获取指定id的图书信息
 *
 * @param id 图书id
 * @return 一个BookInfo对象
 */
public static studentBean getStudentById(String id) {
    String sql = "select * from students where id=" + id;
    Dbutil jdbc = new Dbutil();
    ResultSet rs = jdbc.executeQuery(sql);
    studentBean bi = new studentBean();
    try {
        if (rs.next()) {
            bi.setId(rs.getString("id"));
            bi.setName(rs.getString("name"));
            bi.setSex(rs.getString("sex"));
            bi.setBirthday(rs.getString("birthday"));
        }
        rs.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    jdbc.close();
    return bi;
}
 
/**
 * 更新指定id的图书信息
 *
 * @param bi       要更新的图书的对象
 * @return 修改的结果:1代表成功,0代表没有更新
 */
public static int updateStudent(studentBean bi) {
    int result = 0;
    String sql = "update students set name='" + bi.getName() + "',id='" + bi.getId() + "',sex='"
            + bi.getSex() + "',birthday='" + bi.getBirthday() + "' where id='" + bi.getId()+"'";
    Dbutil jdbc = new Dbutil();
    result = jdbc.executeUpdate(sql);
    System.out.println(sql);
    jdbc.close();
    return result;
}
 
/**
 * 删除指定id的图书
 *
 * @param id 图书id
 * @return 删除的结果:1代表成功,0代表没有删除
 */
public static int deleteStudent(String id) {
    int result = 0;
    String sql = "delete from students where id=" + id;
    Dbutil jdbc = new Dbutil();
    result = jdbc.executeUpdate(sql);
    System.out.println(sql);
    jdbc.close();
    return result;
}
 
/**
 * 增加一本图书
 *
 * @param bi 图书对象
 * @return 新增的结果:1代表成功,0代表没有增加
 */
public static int addStudent(studentBean bi) {
    int result = 0;
    String sql = "insert into students(id,name,sex,birthday) values('" + bi.getId() + "','"+ bi.getName() + "','" + bi.getSex() + "','"
            + bi.getBirthday() + "')";
    Dbutil jdbc = new Dbutil();
    result = jdbc.executeUpdate(sql);
    System.out.println(sql);
    jdbc.close();
    return result;
}
}

  Dbutil.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package DBuntil;
 
 
import java.sql.*;
 
public class Dbutil {
 
 
     
 
    /**
     * 完成与数据库的连接和数据的访问
     * @author Leiyu
     * @version 1.0
     *
     */
 
        private String driverStr = "com.mysql.jdbc.Driver";
        private String connStr = "jdbc:mysql://localhost:3306/lab03?uerUnicode=true&characterEncoding=UTF-8";
        private String dbusername = "root";
        private String dbpassword = "123456";
        private Connection conn = null;
        private Statement stmt = null;
 
        {  
            try {
                Class.forName(driverStr);
                conn = DriverManager.getConnection(connStr, dbusername, dbpassword);
                stmt = conn.createStatement();
            } catch (Exception ex) {
                System.out.println("数据库连接失败!");
            }
}
 
        /**
         * 执行更新操作
         * @param s
         * SQL语句
         * @return
         * 更新操作的结果
         */
        public int executeUpdate(String s) {
            int result = 0;
            try {
                result = stmt.executeUpdate(s);
            } catch (Exception ex) {
                System.out.println("更新出现异常!");
            }
            return result;
        }
         
        /**
         * 执行查询操作
         * @param s
         * SQL语句
         * @return
         * 查询结果
         */
        public ResultSet executeQuery(String s) {
            ResultSet rs = null;
            try {
                rs = stmt.executeQuery(s);
            } catch (Exception ex) {
                System.out.println("查询出现异常!");
            }
            return rs;
        }
 
        /**
         * 关闭数据库
         */
        public void close() {
            try {
                stmt.close();
                conn.close();
            } catch (Exception e) {
            }
        }
    }

  StudenrtController.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
package servlert;
 
 
import java.io.IOException;
import java.util.ArrayList;
import jakarta.servlet.*;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.*;
import bean.studentBean;
 
/**
 * 用来接收客户端的后缀为do的请求
 *
 * @author Leiyu
 * @version 1.0
 *
 */
@WebServlet("*.do")
 
public class StudentController  extends HttpServlet{
    private static final long serialVersionUID = 1L;
 
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
 
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 
        request.setCharacterEncoding("utf-8");
 
        String actionUrl = request.getServletPath(); // 获取客户请求的Servlet地址
 
        if (actionUrl.equals("/index.do")) { // 查询所有学生
            ArrayList<studentBean> list = studentBean.getBookList(); // 调用studentBean的getStudentList方法查询所有学生,赋值给list
            request.setAttribute("list", list); // 在request增加属性list,其结果为list对象
            request.getRequestDispatcher("/index.jsp").forward(request, response);// 重定向至index.jsp进行显示
 
        } else if (actionUrl.equals("/addview.do")) { // 新增学生显示页面
            request.getRequestDispatcher("add.jsp").forward(request, response);
        } else if (actionUrl.equals("/add.do")) { // 新增学生
            studentBean bi = new studentBean();
            String id=request.getParameter("id");
            bi.setId(id);
            String name=request.getParameter("name");
            bi.setName(name);
            String sex=request.getParameter("sex");
            bi.setSex(sex);
            String birthday=request.getParameter("year")+"/"+request.getParameter("month")+"/"+request.getParameter("day");
            bi.setBirthday(birthday);
            int r = studentBean.addStudent(bi); // 调用studentBean的addStudent方法完成
            if (r == 1)
                request.getRequestDispatcher("success.jsp").forward(request, response); // 成功的话重定向至success.jsp
            else
                request.getRequestDispatcher("failure.jsp").forward(request, response); // 失败的话重定向至failure.jsp
 
        } else if (actionUrl.equals("/edit.do")) { // 客户端要对指定id的学生进行修改
            String id = request.getParameter("id");
            studentBean bi = studentBean.getStudentById(id); // 调用studentBean的getStudentById方法获取学生信息,赋值给bi对象
            request.setAttribute("bi", bi); // 将bi对象增加到request的属性中
            request.getRequestDispatcher("/edit.jsp").forward(request, response);// 重定向至edit.jsp进行显示
 
        } else if (actionUrl.equals("/update.do")) { // 用户输入要修改的学生的信息之后需要保存到数据库
            studentBean bi = new studentBean();
            bi.setId(request.getParameter("id"));
            bi.setName(request.getParameter("name"));
            bi.setSex(request.getParameter("sex"));
            String birthday=request.getParameter("year")+"/"+request.getParameter("month")+"/"+request.getParameter("day");
            bi.setBirthday(birthday);
            int r = studentBean.updateStudent(bi);// 调用studentBean的updateStudent方法实现
            if (r == 1)
                request.getRequestDispatcher("/success.jsp").forward(request, response);// 成功的话重定向至success.jsp
            else
                request.getRequestDispatcher("/failure.jsp").forward(request, response);// 失败的话重定向至failure.jsp
 
        } else if (actionUrl.equals("/delete.do")) { // 用户需要删除指定id的学生
            String id = request.getParameter("id");
            int r = studentBean.deleteStudent(id); // 调用studentBean的deleteStudent方法实现
            if (r == 1)
                request.getRequestDispatcher("/success.jsp").forward(request, response);// 成功的话重定向至success.jsp
            else
                request.getRequestDispatcher("/failure.jsp").forward(request, response);// 失败的话重定向至failure.jsp
        }
    }
}

  style.css

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
body {
    text-align: center;
}
 
table {
    width: 400px;
    border: 1px solid #696969;
    border-collapse: collapse;
    margin:0 auto;
}
th {
    border: 1px solid #696969;
    background-color:#9DFCFC;
}
td {
    text-align: center;
    border: 1px solid #696969;
    height: 50px;
    background-color:#ff9966;
}
td.ltd {
    text-align: left;
}
input {
    font-size: 20px;
}

  index.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" %>
<%@ page  import="java.util.ArrayList" %>
<%@ page  import="bean.studentBean" %>
<html>
<head>
<title>图书管理系统</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
    <h1>图书管理系统</h1>
    <a href="addview.do">增加图书信息</a>
    <p />
    <table style="width: 50%">
        <tr>
            <th>姓名</th>
            <th>性别</th>
            <th>生日</th>
            <th>管理</th>
        </tr>
        <%
            @SuppressWarnings("unchecked")
            
            ArrayList<studentBean> list = studentBean.getBookList();
            for (studentBean bi : list) {
                String id = bi.getId();
        %>
        <tr>
            <td><%=bi.getName()%></td>
            <td><%=bi.getSex()%></td>
            <td><%=bi.getBirthday()%></td>
            <td><a href="edit.do?id=<%=id%>">修改</a> <a
                href="delete.do?id=<%=id%>">删除</a></td>
        </tr>
        <%
            }
        %>
    </table>
    <br />
    <hr />
    <div style="text-align: center; width: 100%; font-size: 12px; color: #333;">
        ©版权所有:石家庄铁道大学信息科学与技术学院  <a href="Lab04-1.png"
            target="_blank">网站地图</a>
    </div>
</body>
</html>

  add.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"  %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>添加学生信息</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
    <form action="add.do" method="post">
        <h2>添加学生信息</h2>
        <table style="width: 50%">
            <tr>
                <th width="30%">学号:</th>
                <td width="70%"><input name="id" type="text"></td>
            </tr>
            <tr>
                <th>姓名:</th>
                <td><input name="name" type="text"></td>
            </tr>
            <tr>
                <th>性别:</th>
                <td><input name="sex" type="radio" value="男">男   
                <input name="sex" type="radio" value="女">女   </td>
                 
            </tr>
                <tr>
                <th>生日:</th>
                <td><input name="year" type="text" style="width:60px;">年<input name="month" type="text" style="width:40px;">月<input name="day" type="text" style="width:40px;">日</td>
            </tr>
            <tr>
                <td colspan="2"><input type="submit" name="submit" value="添加"> <input type="reset" value="重置"></td>
            </tr>
        </table>
    </form>
     
</body>
</html>

  edit.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"  %>
<%@ page import="bean.studentBean"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>修改学生信息</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
</head>
<body>
<%
studentBean bi = (studentBean) request.getAttribute("bi");
String year=null;
String month=null;
String day=null;
String birthday=bi.getBirthday();
String res[]=birthday.split("/");
year=res[0];
month=res[1];
day=res[2];
    %>
    <form action="update.do" method="post">
        <input type="hidden" name="id" value="<%=bi.getId()%>">
        <table style="width: 50%">
            <caption>修改学生信息</caption>
            <tr>
                <th width="30%">姓名:</th>
                <td width="70%"><input name="name" type="text"
                    value="<%=bi.getName()%>"></td>
            </tr>
            <tr>
                <th>性别:</th>
                <%
                if ("男".equals(bi.getSex()))
                {
                     
                    out.println("<td><input name='sex' type='radio' value='男' checked>男   "
                            + "<input name='sex' type='radio' value='女'>女   </td>");
                }
                if ("女".equals(bi.getSex())){
                     
                    out.println("<td><input name='sex' type='radio' value='男' >男   "
                            + "<input name='sex' type='radio' value='女' checked>女   </td>");}
                %>
            </tr>
            <tr>
                <th>生日:</th>
                <th>
                <input name="year" type="text"
                style="width:60px;" value="<%=year%>" >年
                <input name="month" type="text"
                style="width:40px;" value="<%=month%>">月
                <input name="day" type="text"
                style="width:40px;" value="<%=day%>">日
                </th>         </tr>
            <tr>
                <th colspan="2"><input type="submit" value="修改"> <input
                    type="reset" value="重置"></th>
            </tr>
        </table>
    </form>
</body>
</html>

  success.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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">
<link rel="stylesheet" type="text/css" href="css/style.css">
<title>操作成功提示</title>
</head>
<body>
    <p style="color: #CC1111">操作成功!</p>
    <a href="index.do">转到主页</a>
</body>
</html>

  failure.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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">
<link rel="stylesheet" type="text/css" href="css/style.css">
<title>Insert title here</title>
</head>
<body>
    操作失败!
    <a href="javascript:history.back()">返回</a>
</body>
</html>

  

 

posted @   炽灬  阅读(92)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示