以下是几个简单知识:

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. * 课程Dao
  13. * Dao层操作数据
  14. * @author Hu
  15. *
  16. */
  17. public class CourseDao {
  18.  
  19. /**
  20. * 添加
  21. * @param course
  22. * @return
  23. */
  24. public boolean add(Course course) {
  25. String sql = "insert into course(name, teacher, classroom) values('" + course.getName() + "','" + course.getTeacher() + "','" + course.getClassroom() + "')";
  26. Connection conn = DBUtil.getConn();
  27. Statement state = null;
  28. boolean f = false;
  29. int a = 0;
  30.  
  31. try {
  32. state = conn.createStatement();
  33. state.executeUpdate(sql);
  34. } catch (Exception e) {
  35. e.printStackTrace();
  36. } finally {
  37. DBUtil.close(state, conn);
  38. }
  39.  
  40. if (a > 0) {
  41. f = true;
  42. }
  43. return f;
  44. }
  45.  
  46. /**
  47. * 删除
  48. *
  49. * @param id
  50. * @return
  51. */
  52. public boolean delete (int id) {
  53. boolean f = false;
  54. String sql = "delete from course where id='" + id + "'";
  55. Connection conn = DBUtil.getConn();
  56. Statement state = null;
  57. int a = 0;
  58.  
  59. try {
  60. state = conn.createStatement();
  61. a = state.executeUpdate(sql);
  62. } catch (SQLException e) {
  63. e.printStackTrace();
  64. } finally {
  65. DBUtil.close(state, conn);
  66. }
  67.  
  68. if (a > 0) {
  69. f = true;
  70. }
  71. return f;
  72. }
  73.  
  74. /**
  75. * 修改
  76. * @param name
  77. * @param pass
  78. */
  79. public boolean update(Course course) {
  80. String sql = "update course set name='" + course.getName() + "', teacher='" + course.getTeacher() + "', classroom='" + course.getClassroom()
  81. + "' where id='" + course.getId() + "'";
  82. Connection conn = DBUtil.getConn();
  83. Statement state = null;
  84. boolean f = false;
  85. int a = 0;
  86.  
  87. try {
  88. state = conn.createStatement();
  89. a = state.executeUpdate(sql);
  90. } catch (SQLException e) {
  91. e.printStackTrace();
  92. } finally {
  93. DBUtil.close(state, conn);
  94. }
  95.  
  96. if (a > 0) {
  97. f = true;
  98. }
  99. return f;
  100. }
  101.  
  102. /**
  103. * 验证课程名称是否唯一
  104. * true --- 不唯一
  105. * @param name
  106. * @return
  107. */
  108. public boolean name(String name) {
  109. boolean flag = false;
  110. String sql = "select name from course where name = '" + name + "'";
  111. Connection conn = DBUtil.getConn();
  112. Statement state = null;
  113. ResultSet rs = null;
  114.  
  115. try {
  116. state = conn.createStatement();
  117. rs = state.executeQuery(sql);
  118. while (rs.next()) {
  119. flag = true;
  120. }
  121. } catch (SQLException e) {
  122. e.printStackTrace();
  123. } finally {
  124. DBUtil.close(rs, state, conn);
  125. }
  126. return flag;
  127. }
  128.  
  129. /**
  130. * 通过ID得到类
  131. * @param id
  132. * @return
  133. */
  134. public Course getCourseById(int id) {
  135. String sql = "select * from course where id ='" + id + "'";
  136. Connection conn = DBUtil.getConn();
  137. Statement state = null;
  138. ResultSet rs = null;
  139. Course course = null;
  140.  
  141. try {
  142. state = conn.createStatement();
  143. rs = state.executeQuery(sql);
  144. while (rs.next()) {
  145. String name = rs.getString("name");
  146. String teacher = rs.getString("teacher");
  147. String classroom = rs.getString("classroom");
  148. course = new Course(id, name, teacher, classroom);
  149. }
  150. } catch (Exception e) {
  151. e.printStackTrace();
  152. } finally {
  153. DBUtil.close(rs, state, conn);
  154. }
  155.  
  156. return course;
  157. }
  158.  
  159. /**
  160. * 通过name得到Course
  161. * @param name
  162. * @return
  163. */
  164. public Course getCourseByName(String name) {
  165. String sql = "select * from course where name ='" + name + "'";
  166. Connection conn = DBUtil.getConn();
  167. Statement state = null;
  168. ResultSet rs = null;
  169. Course course = null;
  170.  
  171. try {
  172. state = conn.createStatement();
  173. rs = state.executeQuery(sql);
  174. while (rs.next()) {
  175. int id = rs.getInt("id");
  176. String teacher = rs.getString("teacher");
  177. String classroom = rs.getString("classroom");
  178. course = new Course(id, name, teacher, classroom);
  179. }
  180. } catch (Exception e) {
  181. e.printStackTrace();
  182. } finally {
  183. DBUtil.close(rs, state, conn);
  184. }
  185.  
  186. return course;
  187. }
  188.  
  189. /**
  190. * 查找
  191. * @param name
  192. * @param teacher
  193. * @param classroom
  194. * @return
  195. */
  196. public List<Course> search(String name, String teacher, String classroom) {
  197. String sql = "select * from course where ";
  198. if (name != "") {
  199. sql += "name like '%" + name + "%'";
  200. }
  201. if (teacher != "") {
  202. sql += "teacher like '%" + teacher + "%'";
  203. }
  204. if (classroom != "") {
  205. sql += "classroom like '%" + classroom + "%'";
  206. }
  207. List<Course> list = new ArrayList<>();
  208. Connection conn = DBUtil.getConn();
  209. Statement state = null;
  210. ResultSet rs = null;
  211.  
  212. try {
  213. state = conn.createStatement();
  214. rs = state.executeQuery(sql);
  215. Course bean = null;
  216. while (rs.next()) {
  217. int id = rs.getInt("id");
  218. String name2 = rs.getString("name");
  219. String teacher2 = rs.getString("teacher");
  220. String classroom2 = rs.getString("classroom");
  221. bean = new Course(id, name2, teacher2, classroom2);
  222. list.add(bean);
  223. }
  224. } catch (SQLException e) {
  225. e.printStackTrace();
  226. } finally {
  227. DBUtil.close(rs, state, conn);
  228. }
  229.  
  230. return list;
  231. }
  232.  
  233. /**
  234. * 全部数据
  235. * @param name
  236. * @param teacher
  237. * @param classroom
  238. * @return
  239. */
  240. public List<Course> list() {
  241. String sql = "select * from course";
  242. List<Course> list = new ArrayList<>();
  243. Connection conn = DBUtil.getConn();
  244. Statement state = null;
  245. ResultSet rs = null;
  246.  
  247. try {
  248. state = conn.createStatement();
  249. rs = state.executeQuery(sql);
  250. Course bean = null;
  251. while (rs.next()) {
  252. int id = rs.getInt("id");
  253. String name2 = rs.getString("name");
  254. String teacher2 = rs.getString("teacher");
  255. String classroom2 = rs.getString("classroom");
  256. bean = new Course(id, name2, teacher2, classroom2);
  257. list.add(bean);
  258. }
  259. } catch (SQLException e) {
  260. e.printStackTrace();
  261. } finally {
  262. DBUtil.close(rs, state, conn);
  263. }
  264.  
  265. return list;
  266. }
  267.  
  268. }

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. import java.util.List;
  6.  
  7. import javax.servlet.ServletException;
  8. import javax.servlet.annotation.WebServlet;
  9. import javax.servlet.http.HttpServlet;
  10. import javax.servlet.http.HttpServletRequest;
  11. import javax.servlet.http.HttpServletResponse;
  12.  
  13. @WebServlet("/CourseServlet")
  14. public class CourseServlet extends HttpServlet {
  15.  
  16. private static final long serialVersionUID = 1L;
  17.  
  18. CourseService service = new CourseService();
  19.  
  20. /**
  21. * 方法选择
  22. */
  23. protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  24. req.setCharacterEncoding("utf-8");
  25. String method = req.getParameter("method");
  26. if ("add".equals(method)) {
  27. add(req, resp);
  28. } else if ("del".equals(method)) {
  29. del(req, resp);
  30. } else if ("update".equals(method)) {
  31. update(req, resp);
  32. } else if ("search".equals(method)) {
  33. search(req, resp);
  34. } else if ("getcoursebyid".equals(method)) {
  35. getCourseById(req, resp);
  36. } else if ("getcoursebyname".equals(method)) {
  37. getCourseByName(req, resp);
  38. } else if ("list".equals(method)) {
  39. list(req, resp);
  40. }
  41. }
  42.  
  43. /**
  44. * 添加
  45. * @param req
  46. * @param resp
  47. * @throws IOException
  48. * @throws ServletException
  49. */
  50. private void add(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
  51. req.setCharacterEncoding("utf-8");
  52. String name = req.getParameter("name");
  53. String teacher = req.getParameter("teacher");
  54. String classroom = req.getParameter("classroom");
  55. Course course = new Course(name, teacher, classroom);
  56.  
  57. //添加后消息显示
  58. if(service.add(course)) {
  59. req.setAttribute("message", "添加成功");
  60. req.getRequestDispatcher("add.jsp").forward(req,resp);
  61. } else {
  62. req.setAttribute("message", "课程名称重复,请重新录入");
  63. req.getRequestDispatcher("add.jsp").forward(req,resp);
  64. }
  65. }
  66.  
  67. /**
  68. * 全部
  69. * @param req
  70. * @param resp
  71. * @throws ServletException
  72. */
  73. private void list(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
  74. req.setCharacterEncoding("utf-8");
  75. List<Course> courses = service.list();
  76. req.setAttribute("courses", courses);
  77. req.getRequestDispatcher("list.jsp").forward(req,resp);
  78. }
  79.  
  80. /**
  81. * 通过ID得到Course
  82. * @param req
  83. * @param resp
  84. * @throws ServletException
  85. */
  86. private void getCourseById(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
  87. req.setCharacterEncoding("utf-8");
  88. int id = Integer.parseInt(req.getParameter("id"));
  89. Course course = service.getCourseById(id);
  90. req.setAttribute("course", course);
  91. req.getRequestDispatcher("detail2.jsp").forward(req,resp);
  92. }
  93.  
  94. /**
  95. * 通过名字查找
  96. * 跳转至删除
  97. * @param req
  98. * @param resp
  99. * @throws IOException
  100. * @throws ServletException
  101. */
  102. private void getCourseByName(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
  103. req.setCharacterEncoding("utf-8");
  104. String name = req.getParameter("name");
  105. Course course = service.getCourseByName(name);
  106. if(course == null) {
  107. req.setAttribute("message", "查无此课程!");
  108. req.getRequestDispatcher("del.jsp").forward(req,resp);
  109. } else {
  110. req.setAttribute("course", course);
  111. req.getRequestDispatcher("detail.jsp").forward(req,resp);
  112. }
  113. }
  114.  
  115. /**
  116. * 删除
  117. * @param req
  118. * @param resp
  119. * @throws IOException
  120. * @throws ServletException
  121. */
  122. private void del(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
  123. req.setCharacterEncoding("utf-8");
  124. int id = Integer.parseInt(req.getParameter("id"));
  125. service.del(id);
  126. req.setAttribute("message", "删除成功!");
  127. req.getRequestDispatcher("del.jsp").forward(req,resp);
  128. }
  129.  
  130. /**
  131. * 修改
  132. * @param req
  133. * @param resp
  134. * @throws IOException
  135. * @throws ServletException
  136. */
  137. private void update(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
  138. req.setCharacterEncoding("utf-8");
  139. int id = Integer.parseInt(req.getParameter("id"));
  140. String name = req.getParameter("name");
  141. String teacher = req.getParameter("teacher");
  142. String classroom = req.getParameter("classroom");
  143. Course course = new Course(id, name, teacher, classroom);
  144.  
  145. service.update(course);
  146. req.setAttribute("message", "修改成功");
  147. req.getRequestDispatcher("CourseServlet?method=list").forward(req,resp);
  148. }
  149.  
  150. /**
  151. * 查找
  152. * @param req
  153. * @param resp
  154. * @throws ServletException
  155. */
  156. private void search(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
  157. req.setCharacterEncoding("utf-8");
  158. String name = req.getParameter("name");
  159. String teacher = req.getParameter("teacher");
  160. String classroom = req.getParameter("classroom");
  161. List<Course> courses = service.search(name, teacher, classroom);
  162. req.setAttribute("courses", courses);
  163. req.getRequestDispatcher("searchlist.jsp").forward(req,resp);
  164. }
  165. }

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

java web课程管理系统开发实例(从数据库连接到代码)的更多相关文章

  1. 实战突击: Java Web项目整合开发(PDF)

    实战突击:  Java  Web项目整合开发(PDF)

  2. 给大一的学弟学妹们培训java web的后台开发讨论班计划

    蓝旭工作室5月大一讨论班课程计划   课时 讨论班性质 讨论班名称 主要内容 主讲人   第一讲 先导课 后台开发工具的使用与MySQL数据库基础 后台开发工具的基本使用方法与工程的创建,MySQL数 ...

  3. Java Web应用的开发环境配置

    1:第一是下载好Eclipse开发工具,这里不做叙述,自行下载安装. 2:使用Eclipse开发WEB项目,启动Eclipse,选择File--->new --->other---> ...

  4. java web几种开发模式(转)

    Java Web开发方案有多种可供选择,这里列举一些经典的开发模式进行横向比较,为Java Web的开发模式选择提供参考.除此之外还有好多方案(如Tapestry和Wicket)并不了解,这里就不列举 ...

  5. java web课程设计截图和服务器地址

    企业办公测试截图和服务器地址 本篇博客主要围绕以下几个部分展开,登录.系统管理.工作流.个人事务管理.内部邮件.公共信息共六个部分.主要有界面截图和简要介绍. 一.登录.更改密码界面 登录界面包括以管 ...

  6. 服务器部署Java Web及微信开发调试

    参考摘抄: 阿里云部署Java网站和微信开发调试心得技巧(上):https://www.imooc.com/article/20583 阿里云部署Java网站和微信开发调试心得技巧(下):https: ...

  7. 使用Spring Boot来加速Java web项目的开发

    我想,现在企业级的Java web项目应该或多或少都会使用到Spring框架的. 回首我们以前使用Spring框架的时候,我们需要首先在(如果你使用Maven的话)pom文件中增加对相关的的依赖(使用 ...

  8. java web课程设计(简单商城的前后端双系统,基于maven三模块开发)

    1.系统分析 1.1需求分析 实现一个简单但功能完整的商城项目,从设计到实现,规范化完成该项目,锻炼javaweb项目的编写能力,理解软件工程的软件设计思想 1.2编程技术简介 本次课程主要使用的软件 ...

  9. Java Web应用的开发模式

    一.概述 从互联网诞生的第一天起,web从一个简单的静态页面,发展到今天五花八门.令人眼花缭乱的复杂应用,大到企业级的web应用系统,小到简单的SPA管理系统.在硬件性能提升的同时,通过各种技术实现了 ...

随机推荐

  1. redis5.0集群配置

    介绍 redis自3.0版本以来支持主从模式的集群,可用哨兵监控集群健康状态,但这种方式的集群很不成熟,数据备份需要全量拷贝.在之后的版本才真正支持集群分片. 在redis5.0中去除了以redis- ...

  2. JSP JSONArray使用遇坑!添加以下6个jar包

    1.JAR包简介 要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包: commons-lang.jar commons-beanutils.jar commons ...

  3. qt连接oracle数据库

    由与qt开源版本没有提供oracle数据库驱动,需要自己根据源代码来手动编译oracle驱动. 经过近三天的折腾,终于成功编译oracle驱动,连接到数据库 ps:期间经过各种失败疼苦迷茫.现在终于完 ...

  4. TypeScript入门七:TypeScript的枚举

    关于枚举 数字枚举 字符串枚举 异构枚举 计算的和常量成员 运行时的枚举与反向映射 常量枚举与外部枚举 一.关于枚举 枚举:一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计 ...

  5. Framework7 - 入门教程(安装、配置、创建一个H5应用)

    1,Framework7介绍 (1)Framework7 是一个开源免费的框架.可以用来开发混合移动应用(原生和 HTML 混合)或者开发 iOS & Android 风格的 WEB APP. ...

  6. SAP UI5应用入口App.controller.js是如何被UI5框架加载的?

    首先在UI5应用的manifes.json里,定义了UI5应用的入口视图为App: 调试器里的pending数组的两个元素: 实际上对应了我在App.controller.js里定义的两个依赖: 而a ...

  7. Redis二进制安全概念

    二进制安全是指,在传输数据时,保证二进制数据的信息安全,也就是不被篡改.破译等,如果被攻击,能够及时检测出来. 二进制安全包含了密码学的一些东西,比如加解密.签名等. 举个例子,你把数据1111000 ...

  8. redis集群1

    redis-trib.rb命令详解   redis-trib.rb是官方提供的Redis Cluster的管理工具,无需额外下载,默认位于源码包的src目录下,但因该工具是用ruby开发的,所以需要准 ...

  9. 新人数据库连接不上或数据库配置管理器里面sql服务打不开问题

    新人在链接数据库时可能会出现链接不上数据库,这个问题解决方法是大家找到配置管理器里面,把那些停用的功能开启一下应该就可以.但是我们有的电脑还会遇到里面配置里面什么也没有的情况,这个时候我们就得到控制面 ...

  10. 读HTTP权威指南的体会

    国庆期间,我读了HTTP权威指南一书,现在我把总节为大家讲一下: Web 浏览器.服务器和相关的Web 应用程序都是通过HTTP 相互通信的.HTTP 是 现代全球因特网中使用的公共语言. 是对HTT ...