基本流程:JSP文件显示页面,在前端页面输入赋值,使用form或href超链接传值到Servlet中方法,在Servlet方法中调用Dao层的类对象,将数据传到数据库中,并实现对数据库里的数据的增删改查,完成后将值重新返回到JSP输出操作结果数据。

共分为五个包和对应的JSP文件:

1.Util包:建立连接数据库的方法,以及关闭操作数据库的方法。

  1. package Util;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8. import java.sql.Statement;
  9.  
  10. /**
  11. * 数据库连接工具
  12. * @author Hu
  13. *
  14. */
  15. public class DBUtil {
  16.  
  17. public static String db_url = "jdbc:mysql://localhost:3306/course?useUnicode=true&characterEncoding=UTF-8";
  18. public static String db_user = "root";
  19. public static String db_pass = "root";
  20.  
  21. public static Connection getConn () {
  22. Connection conn = null;
  23.  
  24. try {
  25. Class.forName("com.mysql.jdbc.Driver");//加载驱动
  26. conn = DriverManager.getConnection(db_url, db_user, db_pass);
  27. } catch (Exception e) {
  28. e.printStackTrace();
  29. }
  30.  
  31. return conn;
  32. }
  33.  
  34. /**
  35. * 关闭连接
  36. * @param state
  37. * @param conn
  38. */
  39. public static void close (Statement state, Connection conn) {
  40. if (state != null) {
  41. try {
  42. state.close();
  43. } catch (SQLException e) {
  44. e.printStackTrace();
  45. }
  46. }
  47.  
  48. if (conn != null) {
  49. try {
  50. conn.close();
  51. } catch (SQLException e) {
  52. e.printStackTrace();
  53. }
  54. }
  55. }
  56.  
  57. public static void close (ResultSet rs, Statement state, Connection conn) {
  58. if (rs != null) {
  59. try {
  60. rs.close();
  61. } catch (SQLException e) {
  62. e.printStackTrace();
  63. }
  64. }
  65.  
  66. if (state != null) {
  67. try {
  68. state.close();
  69. } catch (SQLException e) {
  70. e.printStackTrace();
  71. }
  72. }
  73.  
  74. if (conn != null) {
  75. try {
  76. conn.close();
  77. } catch (SQLException e) {
  78. e.printStackTrace();
  79. }
  80. }
  81. }
  82.  
  83. public static void main(String[] args) throws SQLException {
  84. Connection conn = getConn();
  85. PreparedStatement pstmt = null;
  86. ResultSet rs = null;
  87. String sql ="select * from course";
  88. pstmt = conn.prepareStatement(sql);
  89. rs = pstmt.executeQuery();
  90. if(rs.next()){
  91. System.out.println("空");
  92. }else{
  93. System.out.println("不空");
  94. }
  95. }
  96. }

2.Servlet包:①接受来自JSP页面的参数,将这些参数收集起来。②将Dao层传回来的操作结果返回到JSP页面显示。

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

3.Javabean包:定义一个Course类,将要操作的对象归纳出他的属性和get,set方法。

  1. package Javabean;
  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. }

4.Dao层包:最主要的包,在这里通过Util包链接数据库,进行对数据库中的数据的增删改查,主要运用了数据库语言。

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

5.Service包:通过Dao包实现数据库的增删改查。

  1. package Service;
  2.  
  3. import java.util.List;
  4.  
  5. import Dao.CourseDao;
  6. import Javabean.Course;
  7.  
  8. /**
  9. * CourseService
  10. * 服务层
  11. * @author Hu
  12. *
  13. */
  14. public class CourseService {
  15.  
  16. CourseDao cDao = new CourseDao();
  17.  
  18. /**
  19. * 添加
  20. * @param course
  21. * @return
  22. */
  23. public boolean add(Course course) {
  24. boolean f = false;
  25. if(!cDao.name(course.getName())) {
  26. cDao.add(course);
  27. f = true;
  28. }
  29. return f;
  30. }
  31.  
  32. /**
  33. * 删除
  34. */
  35. public void del(int id) {
  36. cDao.delete(id);
  37. }
  38.  
  39. /**
  40. * 修改
  41. * @return
  42. */
  43. public void update(Course course) {
  44. cDao.update(course);
  45. }
  46.  
  47. /**
  48. * 通过ID得到一个Course
  49. * @return
  50. */
  51. public Course getCourseById(int id) {
  52. return cDao.getCourseById(id);
  53. }
  54.  
  55. /**
  56. * 通过Name得到一个Course
  57. * @return
  58. */
  59. public Course getCourseByName(String name) {
  60. return cDao.getCourseByName(name);
  61. }
  62.  
  63. /**
  64. * 查找
  65. * @return
  66. */
  67. public List<Course> search(String name, String teacher, String classroom) {
  68. return cDao.search(name, teacher, classroom);
  69. }
  70.  
  71. /**
  72. * 全部数据
  73. * @return
  74. */
  75. public List<Course> list() {
  76. return cDao.list();
  77. }
  78. }

功能一:增加

在首页中选择功能添加信息,通过href超链接跳转到添加add.JSP页面,在add.JSP页面中的Form表格中输入要添加的相应的信息,通过Form表格的提交按钮将输入框Input中的内容和值(该值确定调用Servlet中的add方法)传给Servlet,在Servlet中调用add方法,在该方法中调用的Dao层中的add方法,Dao层中的add方法,该方法通过DB层获取与数据库的连接,对数据库进行数据添加的功能,之后返回操作结果给Servlet的add方法,由Servlet中的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.  
  9. </head>
  10. <body>
  11. <%
  12. Object message = request.getAttribute("message");
  13. if(message!=null && !"".equals(message)){
  14.  
  15. %>
  16. <script type="text/javascript">
  17. alert("<%=request.getAttribute("message")%>");
  18. </script>
  19. <%} %>
  20. <div align="center">
  21. <h1 style="color: black;">课程信息录入</h1>
  22. <a href="index.jsp">返回主页</a>
  23. <form action="CourseServlet?method=add" method="post" onsubmit="return check()">
  24. <div class="a">
  25. 课程名称<input type="text" id="name" name="name"/>
  26. </div>
  27. <div class="a">
  28. 任课教师<input type="text" id="teacher" name="teacher" />
  29. </div>
  30. <div class="a">
  31. 上课地点<input type="text" id="classroom" name="classroom" />
  32. </div>
  33. <div class="a">
  34. <button type="submit" class="b">保&nbsp;&nbsp;&nbsp;存</button>
  35. </div>
  36. </form>
  37. </div>
  38. <script type="text/javascript">
  39. function check() {
  40. var name = document.getElementById("name");;
  41. var teacher = document.getElementById("teacher");
  42. var classroom = document.getElementById("classroom");
  43.  
  44. //非空
  45. if(name.value == '') {
  46. alert('课程名称为空');
  47. name.focus();
  48. return false;
  49. }
  50. if(teacher.value == '') {
  51. alert('教师为空');
  52. teacher.focus();
  53. return false;
  54. }
  55. if(classroom.value == '') {
  56. alert('上课地点为空');
  57. classroom.focus();
  58. return false;
  59. }
  60.  
  61. //教师
  62. if(teacher.value != '王建民' && teacher.value != '王辉' && teacher.value != '刘丹' && teacher.value != '刘立嘉' && teacher.value != '杨子光'){
  63. alert('教师名称错误');
  64. return false;
  65. }
  66.  
  67. //教室
  68. if(!/^基教/.test(classroom.value) && !/^一教/.test(classroom.value) && !/^二教/.test(classroom.value) && !/^三教/.test(classroom.value)) {
  69. alert('上课地点错误');
  70. return false;
  71. }
  72. }
  73. </script>
  74. </body>
  75. </html>

功能二:删除

在首页中选择功能删除信息,通过href超链接跳转到删除del.JSP页面中,在该页面中输入要删除的课程名称,然后传值到Servlet中,在Servlet中通过调用Dao层的查询方法,在数据库中查找是否存在此课程,若存在,将课程全部信息存入List中传给Servlet,Servlet在用JSP文件显示该课程全部信息,用户在确定是否要删除,若要删除则继续传值给Servlet,调用Servlet中的删除del方法,该方法调用Dao层的delete函数,实现数据库中的数据的删除,将操作结果返回至Servlet中,在Servlet中判断输出一个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.  
  9. </head>
  10. <body>
  11. <%
  12. Object message = request.getAttribute("message");
  13. if(message!=null && !"".equals(message)){
  14.  
  15. %>
  16. <script type="text/javascript">
  17. alert("<%=request.getAttribute("message")%>");
  18. </script>
  19. <%} %>
  20. <div align="center">
  21. <h1 style="color: black;">课程信息删除</h1>
  22. <a href="index.jsp">返回主页</a>
  23. <form action="CourseServlet?method=getcoursebyname" method="post" onsubmit="return check()">
  24. <div class="a">
  25. 课程名称<input type="text" id="name" name="name"/>
  26. </div>
  27. <div class="a">
  28. <button type="submit" class="b">查&nbsp;&nbsp;&nbsp;找</button>
  29. </div>
  30. </form>
  31. </div>
  32. <script type="text/javascript">
  33. function check() {
  34. var name = document.getElementById("name");;
  35.  
  36. //非空
  37. if(name.value == '') {
  38. alert('课程名称为空');
  39. name.focus();
  40. return false;
  41. }
  42. }
  43. </script>
  44. </body>
  45. </html>
  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: black;">课程信息删除</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}">删&nbsp;&nbsp;&nbsp;除</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>
  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.  
  9. </head>
  10. <body>
  11. <%
  12. Object message = request.getAttribute("message");
  13. if(message!=null && !"".equals(message)){
  14.  
  15. %>
  16. <script type="text/javascript">
  17. alert("<%=request.getAttribute("message")%>");
  18. </script>
  19. <%} %>
  20. <div align="center">
  21. <h1 style="color: black;">课程信息修改</h1>
  22. <a href="index.jsp">返回主页</a>
  23. <form action="CourseServlet?method=update" method="post" onsubmit="return check()">
  24. <div class="a">
  25. 课程名称<input type="text" id="name" name="name" value="${course.name}"/>
  26. </div>
  27. <div class="a">
  28. 任课教师<input type="text" id="teacher" name="teacher" value="${course.teacher}"/>
  29. </div>
  30. <div class="a">
  31. 上课地点<input type="text" id="classroom" name="classroom" value="${course.classroom}"/>
  32. </div>
  33. <input type="hidden" id="id" name="id" value="${course.id}"/>
  34. <div class="a">
  35. <button type="submit" class="b">修&nbsp;&nbsp;&nbsp;改</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 == '') {
  47. alert('课程名称为空');
  48. name.focus();
  49. return false;
  50. }
  51. if(teacher.value == '') {
  52. alert('教师为空');
  53. teacher.focus();
  54. return false;
  55. }
  56. if(classroom.value == '') {
  57. alert('上课地点为空');
  58. classroom.focus();
  59. return false;
  60. }
  61.  
  62. //教师
  63. if(teacher.value != '王建民' && teacher.value != '王辉' && teacher.value != '刘丹' && teacher.value != '刘立嘉' && teacher.value != '杨子光'){
  64. alert('教师名称错误');
  65. return false;
  66. }
  67.  
  68. //教室
  69. if(!/^基教/.test(classroom.value) && !/^一教/.test(classroom.value) && !/^二教/.test(classroom.value) && !/^三教/.test(classroom.value)) {
  70. alert('上课地点错误');
  71. return false;
  72. }
  73. }
  74. </script>
  75. </body>
  76. </html>

功能三:修改

在首页中选择功能修改信息,通过href超链接跳转到修改list.JSP页面中,显示全部的数据,点击要修改的一组数据,传值(此值为要修改的编号等 )给Servlet,在Servlet中调用Dao层的update修改方法,update方法修改数据库中数据,将操作结果返回至Servlet中,由Servlet最终调用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.  
  10. </head>
  11. <body>
  12. <%
  13. Object message = request.getAttribute("message");
  14. if(message!=null && !"".equals(message)){
  15.  
  16. %>
  17. <script type="text/javascript">
  18. alert("<%=request.getAttribute("message")%>");
  19. </script>
  20. <%} %>
  21. <div align="center">
  22. <h1 style="color: black;">课程信息列表</h1>
  23. <a href="index.jsp">返回主页</a>
  24. <table class="tb">
  25. <tr>
  26. <td>id</td>
  27. <td>课程名称</td>
  28. <td>任课教师</td>
  29. <td>上课地点</td>
  30. <td align="center" colspan="2">操作</td>
  31. </tr>
  32. <c:forEach items="${courses}" var="item">
  33. <tr>
  34. <td>${item.id}</td>
  35. <td>${item.name}</td>
  36. <td>${item.teacher}</td>
  37. <td>${item.classroom}</td>
  38. <td><a href="CourseServlet?method=getcoursebyid&id=${item.id}">修改</a></td>
  39. </tr>
  40. </c:forEach>
  41. </table>
  42. </div>
  43. </body>
  44. </html>

功能四:查找

在首页中选择功能查询信息,通过href超链接跳转到查询search.JSP页面中,在该页面中输入你要查询的信息,可进行粗略和精确查询,将输入的内容通过Form表格传值给Servlet,由Servlet中查询search方法调用Dao层的查询search方法,由此方法在数据库中进行模糊或者精确查询,将查询到的信息装在List中传给Servlet,最终由Servlet返回给JSP一个最终查询的信息。

  1.  

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>

  1.  

</head>
<body>
<div align="center">
<h1 style="color: black;">课程信息查询</h1>
<a href="index.jsp">返回主页</a>
<form action="CourseServlet?method=search" method="post" onsubmit="return check()">
<div class="a">
课程名称<input type="text" id="name" name="name"/>
</div>
<div class="a">
任课教师<input type="text" id="teacher" name="teacher" />
</div>
<div class="a">
上课地点<input type="text" id="classroom" name="classroom" />
</div>
<div class="a">
<button type="submit" class="b">查&nbsp;&nbsp;&nbsp;询</button>
</div>
</form>
</div>
<script type="text/javascript">
function check() {
var name = document.getElementById("name");;
var teacher = document.getElementById("teacher");
var classroom = document.getElementById("classroom");

//非空
if(name.value == '' && teacher.value == '' && classroom.value == '') {
alert('请填写一个条件');
return false;
}
}
</script>
</body>
</html>

编写一个JavaWeb项目的更多相关文章

  1. (转)一个JavaWeb项目开发总结

    原文地址:http://www.cnblogs.com/lzb1096101803/p/4907775.html 一.学会如何读一个JavaWeb项目源代码 步骤:表结构->web.xml-&g ...

  2. 一个JavaWeb项目开发总结

    一.学会如何读一个JavaWeb项目源代码 步骤:表结构->web.xml->mvc->db->spring ioc->log->代码 先了解项目数据库的表结构,这 ...

  3. 转:创建一个javaweb项目,以及导出war包

    一.使用IDEA创建一个javaweb项目 1.File->New Project选择Web Application 1 2 然后填写好路径和项目名称,点击确定. 1 2 2.先看一下刚创建好的 ...

  4. 怎用不用工具创建一个javaWeb项目

    整体步骤是: 1: 新建一个文件夹:  以项目名称命名 2:在新建的文件夹下再新建一个文件夹 WEB-INF  (注意:大小写) 和 一个文件  index.jsp : index.jsp里面的代码: ...

  5. 用STS和Maven的方式创建一个JavaWeb项目

    一.创建项目 1.Eclipse中用Maven创建项目,选maven-archetype-webapp,如下图: 创建好项目后,目录如下: 至此,项目已经创建完毕,下边是配置.关键所在!!! 二.项目 ...

  6. 从基于idea的第一个javaweb项目到shell脚本项目自动发布(jdk1.8,mysql5.7,maven3.5,tomcat9,subversion,centos7.3)之一

    首先说一下为什么写这篇文章,因为从正式参加工作就做javaweb开发,一路走来,碰到了很多的问题,每次问题都想从度娘那里得到准确的答案,但是,每个人遇到的问题不尽相同,问题的解决方案有时候也只是仅供参 ...

  7. IDEA2017.3.3创建第一个javaweb项目及tomcat部署实战

    一.创建简单web项目 1. 选择jdk(这里有点小问题不是很理解,通过java -verbose查找出来的jdk路径在C盘,这里并不能识别,而我jdk安装的时候有自己的路径在D盘,导入后就是图中的j ...

  8. 用记事本编写一个Servlet项目

    第一步:建立目录 新建一个文件夹FirstServlet,然后在FirstServlet目录下面再建两个文件夹,分别为:WEB-INF和src.最后在WEB-INF下面建一个classes文件夹 第二 ...

  9. (一)新建一个javaweb项目

    一.为了不影响其他项目,可以重新选择一个新的工作目录:swith workspace 二.为了尽可能统一项目,所使用的编程环境,包括:Tomcat.JRE都是项目组自己的,所以在新建项目的时候要注意选 ...

随机推荐

  1. what's the python之if判断、while循环以及for循环

    Python缩进原则 顶级代码必须顶行写,即如果一行代码本身不依赖于任何条件,那它必须不能进行任何缩进 同一级别的代码,缩进必须一致 官方建议缩进用4个空格 Python程序语言指定任何非0和非空的布 ...

  2. [转载]MACD 各周期指标状态

    MACD指标:MACD指标是一个非常好用的指标,它与均线.量价关系配合使用对判断行情很有效.这里有必要再深一点讲MACD级别之间的作用. 一.首先,必须明白的是任何指标中都是大级别包含小级别,小级别对 ...

  3. Python3学习之路~5.4 os模块

    用于提供系统级别的操作 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于shel ...

  4. NginxI/O模型理论基础

    I/O模型介绍 同步IO 关注的是消息通信机制  调用者需要等待被调用者先执行完毕才能往下继续执行   被调用者在执行完自己的任务后并不会同之调用者执行结果需要调用者自己去获取被调用者的执行状态 异步 ...

  5. shell进阶函数

    函数的定义和用途 函数function是由若干条shell命令组成的语句块,实现shell代码的重用和模块化编程. 函数和shell程序的异同点 它与shell程序形式上是相似的,不同的是它不是一个单 ...

  6. 【LeetCode每天一题】Reverse Linked List(链表反转)

    Reverse a singly linked list. Example:           Input: 1->2->3->4->5->NULL          ...

  7. Java Selenium - 几种对话框处理Alert\confirm\prompt

    1. Alert , 先用常规办法定位到能触发alert的按钮 , 然后 Alert alert = driver.switchTo().alert(); alert.accept(); 如果aler ...

  8. template.js简单入门

    template.js是一款开源的JavaScript模板引擎,用来渲染页面的. github地址 https://github.com/yanhaijing/template.js 下载templa ...

  9. RCNN系列算法的发展

    一. RCNN系列的发展 1.1  R-CNN 根据以往进行目标检测的方法,在深度学习应用于目标检测时,同样首先尝试使用滑动窗口的想法,先对图片进行选取2000个候选区域,分别对这些区域进行提取特征以 ...

  10. UGUI 打图集

    using UnityEngine; using System.Collections; using UnityEditor; using System.Collections.Generic; us ...