java web课程管理系统开发实例(从数据库连接到代码)

以下是几个简单知识:

JavaBean:用于传递数据,拥有与数据相关的逻辑处理

JSP:从Model接收数据并生成HTML

Servlet:接收HTTP请求并控制Model和View

jdbc:用于配置环境

 

前言:相关的软件下载和环境配置

1、下载并配置JDK。

2、下载eclipse。

3、下载并配置apache-tomcat(服务器)。

4、下载MySQL(数据库)。

5、下载Navicat for MySQL(数据库可视化工具),方便对数据库的操作。

6、下载jdbc用来实现eclipse中的项目与数据库实现连接。

(看网上教程就好)

一、【建立数据库】

 库中设有课程,教师,教室三个值

二、【新建web项目

打开eclipse,点击File—》New—》other—》Dynamic Web Project

 

点击Next

需要输入项目名,最好用英文填写,完成之后eclipse左侧会有刚刚创建的项目出现下图

 

在我的电脑中,打开你下载的jdbc(也就是mysql-connector-java-8.0.13)所在的文件夹中的

 

 

将mysql-connector-java-8.0.13文件复制

粘贴在eclipse中,你所建立的项目下的 WebContent/WEB-INF/lib 文件夹下,如下图

接下来便是jsp文件和java文件的写入了.

代码如下:

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html>
 4 <html>
 5 <head>
 6 <meta charset="UTF-8">
 7 <title>Insert title here</title>
 8 <style>
 9     .a{
10         margin-top: 20px;
11     }
12     .b{
13         font-size: 20px;
14         width: 160px;
15         color: white;
16         background-color: greenyellow;
17     }
18 </style>
19 </head>
20 <body>
21     <%
22          Object message = request.getAttribute("message");
23          if(message!=null && !"".equals(message)){
24       
25     %>
26          <script type="text/javascript">
27               alert("<%=request.getAttribute("message")%>");
28          </script>
29     <%} %>
30     <div align="center">
31         <h1 style="color: red;">课程信息录入</h1>
32         <a href="index.jsp">返回主页</a>
33         <form action="CourseServlet?method=add" method="post" onsubmit="return check()">
34             <div class="a">
35                 课程名称<input type="text" id="name" name="name"/>
36             </div>
37             <div class="a">
38                 任课教师<input type="text" id="teacher" name="teacher" />
39             </div>
40             <div class="a">
41                 上课地点<input type="text" id="classroom" name="classroom" />
42             </div>
43             <div class="a">
44                 <button type="submit" class="b">保   存</button>
45             </div>
46         </form>
47     </div>
48     <script type="text/javascript">
49         function check() {
50             var name = document.getElementById("name");;
51             var teacher = document.getElementById("teacher");
52             var classroom = document.getElementById("classroom");
53              
54             //非空
55             if(name.value == '') {
56                 alert('课程名称为空');
57                 name.focus();
58                 return false;
59             }
60             if(teacher.value == '') {
61                 alert('教师为空');
62                 teacher.focus();
63                 return false;
64             }
65             if(classroom.value == '') {
66                 alert('上课地点为空');
67                 classroom.focus();
68                 return false;
69             }
70              
71             //教师
72             if(teacher.value != '王建民' && teacher.value != '王辉' && teacher.value != '刘丹' && teacher.value != '刘立嘉' && teacher.value != '杨子光'){
73                 alert('教师名称错误');
74                 return false;
75             }
76              
77             //教室
78             if(!/^基教/.test(classroom.value) && !/^一教/.test(classroom.value) && !/^二教/.test(classroom.value) && !/^三教/.test(classroom.value)) {
79                 alert('上课地点错误');
80                 return false;
81             }
82         }
83     </script>
84 </body>
85 </html>
add.jsp
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html>
 4 <html>
 5 <head>
 6 <meta charset="UTF-8">
 7 <title>Insert title here</title>
 8 <style>
 9     .a{
10         margin-top: 20px;
11     }
12     .b{
13         font-size: 20px;
14         width: 160px;
15         color: white;
16         background-color: greenyellow;
17     }
18 </style>
19 </head>
20 <body>
21     <%
22          Object message = request.getAttribute("message");
23          if(message!=null && !"".equals(message)){
24       
25     %>
26          <script type="text/javascript">
27               alert("<%=request.getAttribute("message")%>");
28          </script>
29     <%} %>
30     <div align="center">
31         <h1 style="color: red;">课程信息删除</h1>
32         <a href="index.jsp">返回主页</a>
33         <form action="CourseServlet?method=getcoursebyname" method="post" onsubmit="return check()">
34             <div class="a">
35                 课程名称<input type="text" id="name" name="name"/>
36             </div>
37             <div class="a">
38                 <button type="submit" class="b">查   找</button>
39             </div>
40         </form>
41     </div>
42     <script type="text/javascript">
43         function check() {
44             var name = document.getElementById("name");;
45              
46             //非空
47             if(name.value == '') {
48                 alert('课程名称为空');
49                 name.focus();
50                 return false;
51             }
52         }
53     </script>
54 </body>
55 </html>
del.jsp
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html>
 4 <html>
 5 <head>
 6 <meta charset="UTF-8">
 7 <title>Insert title here</title>
 8 <style>
 9     .a{
10         margin-top: 20px;
11     }
12     .b{
13         font-size: 20px;
14         width: 160px;
15         color: white;
16         background-color: greenyellow;
17     }
18     .tb, td {
19         border: 1px solid black;
20         font-size: 22px;
21     }
22 </style>
23 </head>
24 <body>
25     <div align="center">
26         <h1 style="color: red;">课程信息删除</h1>
27         <a href="index.jsp">返回主页</a>
28         <table class="tb">
29             <tr>
30                 <td>课程名称</td>
31                 <td>${course.name}</td>
32             </tr>
33             <tr>
34                 <td>任课教师</td>
35                 <td>${course.teacher}</td>
36             </tr>
37             <tr>
38                 <td>上课地点</td>
39                 <td>${course.classroom}</td>
40             </tr>
41         </table>
42         <div class="a">
43             <a onclick="return check()" href="CourseServlet?method=del&id=${course.id}">删   除</a>
44         </div>
45     </div>
46     <script type="text/javascript">
47         function check() {
48             if (confirm("真的要删除吗?")){
49                 return true;
50             }else{
51                 return false;
52             }
53         }
54     </script>
55 </body>
56 </html>
detail.jsp
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html>
 4 <html>
 5 <head>
 6 <meta charset="UTF-8">
 7 <title>Insert title here</title>
 8 <style>
 9     .a{
10         margin-top: 20px;
11     }
12     .b{
13         font-size: 20px;
14         width: 160px;
15         color: white;
16         background-color: greenyellow;
17     }
18 </style>
19 </head>
20 <body>
21     <%
22          Object message = request.getAttribute("message");
23          if(message!=null && !"".equals(message)){
24       
25     %>
26          <script type="text/javascript">
27               alert("<%=request.getAttribute("message")%>");
28          </script>
29     <%} %>
30     <div align="center">
31         <h1 style="color: red;">课程信息修改</h1>
32         <a href="index.jsp">返回主页</a>
33         <form action="CourseServlet?method=update" method="post" onsubmit="return check()">
34             <div class="a">
35                 课程名称<input type="text" id="name" name="name" value="${course.name}"/>
36             </div>
37             <div class="a">
38                 任课教师<input type="text" id="teacher" name="teacher" value="${course.teacher}"/>
39             </div>
40             <div class="a">
41                 上课地点<input type="text" id="classroom" name="classroom" value="${course.classroom}"/>
42             </div>
43             <input type="hidden" id="id" name="id" value="${course.id}"/>
44             <div class="a">
45                 <button type="submit" class="b">修   改</button>
46             </div>
47         </form>
48     </div>
49     <script type="text/javascript">
50         function check() {
51             var name = document.getElementById("name");;
52             var teacher = document.getElementById("teacher");
53             var classroom = document.getElementById("classroom");
54              
55             //非空
56             if(name.value == '') {
57                 alert('课程名称为空');
58                 name.focus();
59                 return false;
60             }
61             if(teacher.value == '') {
62                 alert('教师为空');
63                 teacher.focus();
64                 return false;
65             }
66             if(classroom.value == '') {
67                 alert('上课地点为空');
68                 classroom.focus();
69                 return false;
70             }
71              
72             //教师
73             if(teacher.value != '王建民' && teacher.value != '王辉' && teacher.value != '刘丹' && teacher.value != '刘立嘉' && teacher.value != '杨子光'){
74                 alert('教师名称错误');
75                 return false;
76             }
77              
78             //教室
79             if(!/^基教/.test(classroom.value) && !/^一教/.test(classroom.value) && !/^二教/.test(classroom.value) && !/^三教/.test(classroom.value)) {
80                 alert('上课地点错误');
81                 return false;
82             }
83         }
84     </script>
85 </body>
86 </html>
detail2.jsp
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html>
 4 <html>
 5 <head>
 6 <meta charset="UTF-8">
 7 <title>首页</title>
 8 <style>
 9     .a{
10         font-size: 26px;
11         margin-top: 20px;
12     }
13 </style>
14 </head>
15 <body>
16     <div align="center">
17         <h1 style="color: red;">课程基本信息管理系统</h1>
18         <div class="a">
19             <a href="add.jsp">课程信息录入</a>
20         </div>
21         <div class="a">
22             <a href="CourseServlet?method=list">课程信息修改</a>
23         </div>
24         <div class="a">
25             <a href="del.jsp">课程信息删除</a>
26         </div>
27         <div class="a">
28             <a href="search.jsp">课程信息查询</a>
29         </div>
30     </div>
31 </body>
32 </html>
index
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 4 <!DOCTYPE html>
 5 <html>
 6 <head>
 7 <meta charset="UTF-8">
 8 <title>Insert title here</title>
 9 <style>
10     .a{
11         margin-top: 20px;
12     }
13     .b{
14         font-size: 20px;
15         width: 160px;
16         color: white;
17         background-color: greenyellow;
18     }
19     .tb, td {
20         border: 1px solid black;
21         font-size: 22px;
22     }
23 </style>
24 </head>
25 <body>
26     <%
27          Object message = request.getAttribute("message");
28          if(message!=null && !"".equals(message)){
29       
30     %>
31          <script type="text/javascript">
32               alert("<%=request.getAttribute("message")%>");
33          </script>
34     <%} %>
35     <div align="center">
36         <h1 style="color: red;">课程信息列表</h1>
37         <a href="index.jsp">返回主页</a>
38         <table class="tb">
39             <tr>
40                 <td>id</td>
41                 <td>课程名称</td>
42                 <td>任课教师</td>
43                 <td>上课地点</td>
44                 <td align="center" colspan="2">操作</td>
45             </tr>
46             <c:forEach items="${courses}" var="item">
47                 <tr>
48                     <td>${item.id}</td>
49                     <td>${item.name}</td>
50                     <td>${item.teacher}</td>
51                     <td>${item.classroom}</td>
52                     <td><a href="CourseServlet?method=getcoursebyid&id=${item.id}">修改</a></td>
53                 </tr>
54             </c:forEach>
55         </table>
56     </div>
57 </body>
58 </html>
list.jsp
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html>
 4 <html>
 5 <head>
 6 <meta charset="UTF-8">
 7 <title>Insert title here</title>
 8 <style>
 9     .a{
10         margin-top: 20px;
11     }
12     .b{
13         font-size: 20px;
14         width: 160px;
15         color: white;
16         background-color: greenyellow;
17     }
18 </style>
19 </head>
20 <body>
21     <div align="center">
22         <h1 style="color: red;">课程信息查询</h1>
23         <a href="index.jsp">返回主页</a>
24         <form action="CourseServlet?method=search" method="post" onsubmit="return check()">
25             <div class="a">
26                 课程名称<input type="text" id="name" name="name"/>
27             </div>
28             <div class="a">
29                 任课教师<input type="text" id="teacher" name="teacher" />
30             </div>
31             <div class="a">
32                 上课地点<input type="text" id="classroom" name="classroom" />
33             </div>
34             <div class="a">
35                 <button type="submit" class="b">查   询</button>
36             </div>
37         </form>
38     </div>
39     <script type="text/javascript">
40         function check() {
41             var name = document.getElementById("name");;
42             var teacher = document.getElementById("teacher");
43             var classroom = document.getElementById("classroom");
44              
45             //非空
46             if(name.value == '' && teacher.value == '' && classroom.value == '') {
47                 alert('请填写一个条件');
48                 return false;
49             }
50         }
51     </script>
52 </body>
53 </html>
search.jsp
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 4 <!DOCTYPE html>
 5 <html>
 6 <head>
 7 <meta charset="UTF-8">
 8 <title>Insert title here</title>
 9 <style>
10     .a{
11         margin-top: 20px;
12     }
13     .b{
14         font-size: 20px;
15         width: 160px;
16         color: white;
17         background-color: greenyellow;
18     }
19     .tb, td {
20         border: 1px solid black;
21         font-size: 22px;
22     }
23 </style>
24 </head>
25 <body>
26     <div align="center">
27         <h1 style="color: red;">课程信息列表</h1>
28         <a href="index.jsp">返回主页</a>
29         <table class="tb">
30             <tr>
31                 <td>id</td>
32                 <td>课程名称</td>
33                 <td>任课教师</td>
34                 <td>上课地点</td>
35             </tr>
36             <!-- forEach遍历出adminBeans -->
37             <c:forEach items="${courses}" var="item" varStatus="status">
38                 <tr>
39                     <td>${item.id}</td>
40                     <td><a>${item.name}</a></td>
41                     <td>${item.teacher}</td>
42                     <td>${item.classroom}</td>
43                 </tr>
44             </c:forEach>
45         </table>
46     </div>
47 </body>
48 </html>
searchlist.jsp

直接在上图中一起建立包和类

 1 package com.hjf;
 2  
 3 public class Course {
 4  
 5     private int id;
 6     private String name;
 7     private String teacher;
 8     private String classroom;
 9      
10     public int getId() {
11         return id;
12     }
13     public void setId(int id) {
14         this.id = id;
15     }
16     public String getName() {
17         return name;
18     }
19     public void setName(String name) {
20         this.name = name;
21     }
22     public String getTeacher() {
23         return teacher;
24     }
25     public void setTeacher(String teacher) {
26         this.teacher = teacher;
27     }
28     public String getClassroom() {
29         return classroom;
30     }
31     public void setClassroom(String classroom) {
32         this.classroom = classroom;
33     }
34      
35     public Course() {}
36      
37     public Course(int id, String name, String teacher, String classroom) {
38         this.id = id;
39         this.name = name;
40         this.teacher = teacher;
41         this.classroom = classroom;
42     }
43      
44     public Course(String name, String teacher, String classroom) {
45         this.name = name;
46         this.teacher = teacher;
47         this.classroom = classroom;
48     }
49 }
Course.java
  1 package com.hjf;
  2  
  3 import java.sql.Connection;
  4  
  5 import java.sql.ResultSet;
  6 import java.sql.SQLException;
  7 import java.sql.Statement;
  8 import java.util.ArrayList;
  9 import java.util.List;
 10  
 11  
 12  
 13 /**
 14  * 课程Dao
 15  * Dao层操作数据
 16  * @author Hu
 17  *
 18  */
 19 public class CourseDao {
 20  
 21     /**
 22      * 添加
 23      * @param course
 24      * @return
 25      */
 26     public boolean add(Course course) {
 27         String sql = "insert into course(name, teacher, classroom) values('" + course.getName() + "','" + course.getTeacher() + "','" + course.getClassroom() + "')";
 28         Connection conn = DBUtil.getConn();
 29         Statement state = null;
 30         boolean f = false;
 31         int a = 0;
 32          
 33         try {
 34             state = conn.createStatement();
 35             state.executeUpdate(sql);
 36         } catch (Exception e) {
 37             e.printStackTrace();
 38         } finally {
 39             DBUtil.close(state, conn);
 40         }
 41          
 42         if (a > 0) {
 43             f = true;
 44         }
 45         return f;
 46     }
 47  
 48     /**
 49      * 删除
 50      *
 51      * @param id
 52      * @return
 53      */
 54     public boolean delete (int id) {
 55         boolean f = false;
 56         String sql = "delete from course where id='" + id + "'";
 57         Connection conn = DBUtil.getConn();
 58         Statement state = null;
 59         int a = 0;
 60          
 61         try {
 62             state = conn.createStatement();
 63             a = state.executeUpdate(sql);
 64         } catch (SQLException e) {
 65             e.printStackTrace();
 66         } finally {
 67             DBUtil.close(state, conn);
 68         }
 69          
 70         if (a > 0) {
 71             f = true;
 72         }
 73         return f;
 74     }
 75  
 76     /**
 77      * 修改
 78      * @param name
 79      * @param pass
 80      */
 81     public boolean update(Course course) {
 82         String sql = "update course set name='" + course.getName() + "', teacher='" + course.getTeacher() + "', classroom='" + course.getClassroom()
 83             + "' where id='" + course.getId() + "'";
 84         Connection conn = DBUtil.getConn();
 85         Statement state = null;
 86         boolean f = false;
 87         int a = 0;
 88  
 89         try {
 90             state = conn.createStatement();
 91             a = state.executeUpdate(sql);
 92         } catch (SQLException e) {
 93             e.printStackTrace();
 94         } finally {
 95             DBUtil.close(state, conn);
 96         }
 97          
 98         if (a > 0) {
 99             f = true;
100         }
101         return f;
102     }
103      
104     /**
105      * 验证课程名称是否唯一
106      * true --- 不唯一
107      * @param name
108      * @return
109      */
110     public boolean name(String name) {
111         boolean flag = false;
112         String sql = "select name from course where name = '" + name + "'";
113         Connection conn = DBUtil.getConn();
114         Statement state = null;
115         ResultSet rs = null;
116          
117         try {
118             state = conn.createStatement();
119             rs = state.executeQuery(sql);
120             while (rs.next()) {
121                 flag = true;
122             }
123         } catch (SQLException e) {
124             e.printStackTrace();
125         } finally {
126             DBUtil.close(rs, state, conn);
127         }
128         return flag;
129     }
130      
131     /**
132      * 通过ID得到类
133      * @param id
134      * @return
135      */
136     public Course getCourseById(int id) {
137         String sql = "select * from course where id ='" + id + "'";
138         Connection conn = DBUtil.getConn();
139         Statement state = null;
140         ResultSet rs = null;
141         Course course = null;
142          
143         try {
144             state = conn.createStatement();
145             rs = state.executeQuery(sql);
146             while (rs.next()) {
147                 String name = rs.getString("name");
148                 String teacher = rs.getString("teacher");
149                 String classroom = rs.getString("classroom");
150                 course = new Course(id, name, teacher, classroom);
151             }
152         } catch (Exception e) {
153             e.printStackTrace();
154         } finally {
155             DBUtil.close(rs, state, conn);
156         }
157          
158         return course;
159     }
160      
161     /**
162      * 通过name得到Course
163      * @param name
164      * @return
165      */
166     public Course getCourseByName(String name) {
167         String sql = "select * from course where name ='" + name + "'";
168         Connection conn = DBUtil.getConn();
169         Statement state = null;
170         ResultSet rs = null;
171         Course course = null;
172          
173         try {
174             state = conn.createStatement();
175             rs = state.executeQuery(sql);
176             while (rs.next()) {
177                 int id = rs.getInt("id");
178                 String teacher = rs.getString("teacher");
179                 String classroom = rs.getString("classroom");
180                 course = new Course(id, name, teacher, classroom);
181             }
182         } catch (Exception e) {
183             e.printStackTrace();
184         } finally {
185             DBUtil.close(rs, state, conn);
186         }
187          
188         return course;
189     }
190      
191     /**
192      * 查找
193      * @param name
194      * @param teacher
195      * @param classroom
196      * @return
197      */
198     public List<Course> search(String name, String teacher, String classroom) {
199         String sql = "select * from course where ";
200         if (name != "") {
201             sql += "name like '%" + name + "%'";
202         }
203         if (teacher != "") {
204             sql += "teacher like '%" + teacher + "%'";
205         }
206         if (classroom != "") {
207             sql += "classroom like '%" + classroom + "%'";
208         }
209         List<Course> list = new ArrayList<>();
210         Connection conn = DBUtil.getConn();
211         Statement state = null;
212         ResultSet rs = null;
213  
214         try {
215             state = conn.createStatement();
216             rs = state.executeQuery(sql);
217             Course bean = null;
218             while (rs.next()) {
219                 int id = rs.getInt("id");
220                 String name2 = rs.getString("name");
221                 String teacher2 = rs.getString("teacher");
222                 String classroom2 = rs.getString("classroom");
223                 bean = new Course(id, name2, teacher2, classroom2);
224                 list.add(bean);
225             }
226         } catch (SQLException e) {
227             e.printStackTrace();
228         } finally {
229             DBUtil.close(rs, state, conn);
230         }
231          
232         return list;
233     }
234      
235     /**
236      * 全部数据
237      * @param name
238      * @param teacher
239      * @param classroom
240      * @return
241      */
242     public List<Course> list() {
243         String sql = "select * from course";
244         List<Course> list = new ArrayList<>();
245         Connection conn = DBUtil.getConn();
246         Statement state = null;
247         ResultSet rs = null;
248  
249         try {
250             state = conn.createStatement();
251             rs = state.executeQuery(sql);
252             Course bean = null;
253             while (rs.next()) {
254                 int id = rs.getInt("id");
255                 String name2 = rs.getString("name");
256                 String teacher2 = rs.getString("teacher");
257                 String classroom2 = rs.getString("classroom");
258                 bean = new Course(id, name2, teacher2, classroom2);
259                 list.add(bean);
260             }
261         } catch (SQLException e) {
262             e.printStackTrace();
263         } finally {
264             DBUtil.close(rs, state, conn);
265         }
266          
267         return list;
268     }
269  
270 }
CourseDao.java
 1 package com.hjf;
 2  
 3 import java.util.List;
 4  
 5 /**
 6  * CourseService
 7  * 服务层
 8  * @author Hu
 9  *
10  */
11 public class CourseService {
12  
13     CourseDao cDao = new CourseDao();
14      
15     /**
16      * 添加
17      * @param course
18      * @return
19      */
20     public boolean add(Course course) {
21         boolean f = false;
22         if(!cDao.name(course.getName())) {
23             cDao.add(course);
24             f = true;
25         }
26         return f;
27     }
28      
29     /**
30      * 删除
31      */
32     public void del(int id) {
33         cDao.delete(id);
34     }
35      
36     /**
37      * 修改
38      * @return
39      */
40     public void update(Course course) {
41         cDao.update(course);
42     }
43      
44     /**
45      * 通过ID得到一个Course
46      * @return
47      */
48     public Course getCourseById(int id) {
49         return cDao.getCourseById(id);
50     }
51  
52     /**
53      * 通过Name得到一个Course
54      * @return
55      */
56     public Course getCourseByName(String name) {
57         return cDao.getCourseByName(name);
58     }
59      
60     /**
61      * 查找
62      * @return
63      */
64     public List<Course> search(String name, String teacher, String classroom) {
65         return cDao.search(name, teacher, classroom);
66     }
67      
68     /**
69      * 全部数据
70      * @return
71      */
72     public List<Course> list() {
73         return cDao.list();
74     }
75 }
CourseService
  1 package com.hjf;
  2  
  3 import java.io.IOException;
  4  
  5  
  6 import java.util.List;
  7  
  8 import javax.servlet.ServletException;
  9 import javax.servlet.annotation.WebServlet;
 10 import javax.servlet.http.HttpServlet;
 11 import javax.servlet.http.HttpServletRequest;
 12 import javax.servlet.http.HttpServletResponse;
 13  
 14 @WebServlet("/CourseServlet")
 15 public class CourseServlet extends HttpServlet {
 16      
 17     private static final long serialVersionUID = 1L;
 18  
 19     CourseService service = new CourseService();
 20      
 21     /**
 22      * 方法选择
 23      */
 24     protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 25         req.setCharacterEncoding("utf-8");
 26         String method = req.getParameter("method");
 27         if ("add".equals(method)) {
 28             add(req, resp);
 29         } else if ("del".equals(method)) {
 30             del(req, resp);
 31         } else if ("update".equals(method)) {
 32             update(req, resp);
 33         } else if ("search".equals(method)) {
 34             search(req, resp);
 35         } else if ("getcoursebyid".equals(method)) {
 36             getCourseById(req, resp);
 37         } else if ("getcoursebyname".equals(method)) {
 38             getCourseByName(req, resp);
 39         } else if ("list".equals(method)) {
 40             list(req, resp);
 41         }
 42     }
 43  
 44     /**
 45      * 添加
 46      * @param req
 47      * @param resp
 48      * @throws IOException
 49      * @throws ServletException
 50      */
 51     private void add(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
 52         req.setCharacterEncoding("utf-8");
 53         String name = req.getParameter("name");
 54         String teacher = req.getParameter("teacher");
 55         String classroom = req.getParameter("classroom");
 56         Course course = new Course(name, teacher, classroom);
 57          
 58         //添加后消息显示
 59         if(service.add(course)) {
 60             req.setAttribute("message", "添加成功");
 61             req.getRequestDispatcher("add.jsp").forward(req,resp);
 62         } else {
 63             req.setAttribute("message", "课程名称重复,请重新录入");
 64             req.getRequestDispatcher("add.jsp").forward(req,resp);
 65         }
 66     }
 67      
 68     /**
 69      * 全部
 70      * @param req
 71      * @param resp
 72      * @throws ServletException
 73      */
 74     private void list(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
 75         req.setCharacterEncoding("utf-8");
 76         List<Course> courses = service.list();
 77         req.setAttribute("courses", courses);
 78         req.getRequestDispatcher("list.jsp").forward(req,resp);
 79     }
 80  
 81     /**
 82      * 通过ID得到Course
 83      * @param req
 84      * @param resp
 85      * @throws ServletException
 86      */
 87     private void getCourseById(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
 88         req.setCharacterEncoding("utf-8");
 89         int id = Integer.parseInt(req.getParameter("id"));
 90         Course course = service.getCourseById(id);
 91         req.setAttribute("course", course);
 92         req.getRequestDispatcher("detail2.jsp").forward(req,resp);
 93     }
 94  
 95     /**
 96      * 通过名字查找
 97      * 跳转至删除
 98      * @param req
 99      * @param resp
100      * @throws IOException
101      * @throws ServletException
102      */
103     private void getCourseByName(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
104         req.setCharacterEncoding("utf-8");
105         String name = req.getParameter("name");
106         Course course = service.getCourseByName(name);
107         if(course == null) {
108             req.setAttribute("message", "查无此课程!");
109             req.getRequestDispatcher("del.jsp").forward(req,resp);
110         } else {
111             req.setAttribute("course", course);
112             req.getRequestDispatcher("detail.jsp").forward(req,resp);
113         }
114     }
115      
116     /**
117      * 删除
118      * @param req
119      * @param resp
120      * @throws IOException
121      * @throws ServletException
122      */
123     private void del(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
124         req.setCharacterEncoding("utf-8");
125         int id = Integer.parseInt(req.getParameter("id"));
126         service.del(id);
127         req.setAttribute("message", "删除成功!");
128         req.getRequestDispatcher("del.jsp").forward(req,resp);
129     }
130      
131     /**
132      * 修改
133      * @param req
134      * @param resp
135      * @throws IOException
136      * @throws ServletException
137      */
138     private void update(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
139         req.setCharacterEncoding("utf-8");
140         int id = Integer.parseInt(req.getParameter("id"));
141         String name = req.getParameter("name");
142         String teacher = req.getParameter("teacher");
143         String classroom = req.getParameter("classroom");
144         Course course = new Course(id, name, teacher, classroom);
145          
146         service.update(course);
147         req.setAttribute("message", "修改成功");
148         req.getRequestDispatcher("CourseServlet?method=list").forward(req,resp);
149     }
150      
151     /**
152      * 查找
153      * @param req
154      * @param resp
155      * @throws ServletException
156      */
157     private void search(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
158         req.setCharacterEncoding("utf-8");
159         String name = req.getParameter("name");
160         String teacher = req.getParameter("teacher");
161         String classroom = req.getParameter("classroom");
162         List<Course> courses = service.search(name, teacher, classroom);
163         req.setAttribute("courses", courses);
164         req.getRequestDispatcher("searchlist.jsp").forward(req,resp);
165     }
166 }
CourseServlet.java
 1 package com.hjf;
 2  
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.ResultSet;
 6 import java.sql.SQLException;
 7 import java.sql.Statement;
 8  
 9 /**
10  * 数据库连接工具
11  * @author Hu
12  *
13  */
14 public class DBUtil {
15      
16     public static String db_url = "jdbc:mysql://localhost:3306/course?useSSL=false&useUnicode=true&characterEncoding=UTF-8";
17     public static String db_user = "root";
18     public static String db_pass = "123";
19      
20     public static Connection getConn () {
21         Connection conn = null;
22          
23         try {
24             Class.forName("com.mysql.jdbc.Driver");//加载驱动
25             conn = DriverManager.getConnection(db_url, db_user, db_pass);
26         } catch (Exception e) {
27             e.printStackTrace();
28         }
29          
30         return conn;
31     }
32      
33     /**
34      * 关闭连接
35      * @param state
36      * @param conn
37      */
38     public static void close (Statement state, Connection conn) {
39         if (state != null) {
40             try {
41                 state.close();
42             } catch (SQLException e) {
43                 e.printStackTrace();
44             }
45         }
46          
47         if (conn != null) {
48             try {
49                 conn.close();
50             } catch (SQLException e) {
51                 e.printStackTrace();
52             }
53         }
54     }
55      
56     public static void close (ResultSet rs, Statement state, Connection conn) {
57         if (rs != null) {
58             try {
59                 rs.close();
60             } catch (SQLException e) {
61                 e.printStackTrace();
62             }
63         }
64          
65         if (state != null) {
66             try {
67                 state.close();
68             } catch (SQLException e) {
69                 e.printStackTrace();
70             }
71         }
72          
73         if (conn != null) {
74             try {
75                 conn.close();
76             } catch (SQLException e) {
77                 e.printStackTrace();
78             }
79         }
80     }
81  
82 }
DBUtil.java

关于为什么有的类需要单独一个包

为了不同项目间更好的对接.

附:

 目录说明 
com.astar 
- config 用于放置配置文件,资源文件等。如Spring配置文件applicationContext.xml 
- background 后台管理层结构 
- common 项目中公用的文件,如下 
- constant 常量 
- enumeration 枚举类 
- util 工具类 
- dao 抽象接口及实现类,用于放置封装好的底层数据访问操作。如JPA的CURD 
- service 抽象业务接口及实现类,用于调用同层dao目录中的DAO对象,便于被实现和继承 
- controller 控制层,通过SpringMVC 实现请求处理,并转发。 
- entity 实体层,用于放置项目中的公用实体 
- filter 过滤层,放置过滤器 
- center/finance/printer/keeper/editor 这是项目中的角色,每个角色作为一个独立层,便于分工和解耦,使每层中的业务功能内聚 
- service 独立的,特有的业务 
- dao 通过该层自己来处理DAO

 

posted @ 2018-12-09 22:33  夜神风  阅读(7594)  评论(1编辑  收藏  举报