实现技术JSP+Servlet+MySQL
思想:首先前台用jsp获取数据,然后用Form表单传值给Servlet,Servlet操作MySQL,获取数据再通过jsp显示
1.jsp功能选择界面
1
2 pageEncoding="UTF-8"%>
3
4
5
6
7
8
Insert title here9
10
11
12
13
14
21
26
27 删除课程信息
28
29
33
37
38
39
2.添加新课程(jsp+servlet)
add.jsp
1
2 pageEncoding="UTF-8"%>
3
4
5
6
7
Insert title here8
9
10
11
12
13
14
15 添加新课程
16
17 课程名称:
18 上课老师:
19 上课地点:  
20
21
22
23
24
25
26
27
28
29
30
对应的servlet
Add.java
1 packageMySQL;2
3 importjava.io.IOException;4 importjava.sql.Connection;5 importjava.sql.DriverManager;6 importjava.sql.PreparedStatement;7 importjava.sql.ResultSet;8 importjava.sql.SQLException;9 importjava.sql.Statement;10
11 importjavax.servlet.ServletException;12 importjavax.servlet.annotation.WebServlet;13 importjavax.servlet.http.HttpServlet;14 importjavax.servlet.http.HttpServletRequest;15 importjavax.servlet.http.HttpServletResponse;16
17 /**
18 * Servlet implementation class Add19 */
20 @WebServlet("/Add")21 public class Add extendsHttpServlet {22 private static final long serialVersionUID = 1L;23
24 //JDBC 驱动名及数据库 URL
25 static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";26 static final String DB_URL = "jdbc:mysql://localhost:3306/experiment?useSSL=false&serverTimezone=UTC";27
28 //数据库的用户名与密码,需要根据自己的设置
29 static final String USER = "root";30 static final String PASS = "HEIYANG";31 static boolean flag=true;32
33 /**
34 *@seeHttpServlet#HttpServlet()35 */
36 publicAdd() {37 super();38 //TODO Auto-generated constructor stub
39 }40
41 /**
42 *@seeHttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)43 */
44 @SuppressWarnings("resource")45 protected void doGet(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {46 //TODO Auto-generated method stub
47
48 response.setContentType("text/html;charset=UTF-8");49 response.getWriter().append("Served at: ").append(request.getContextPath());50
51 String addclass=request.getParameter("addclass");//获取输入
52 String addteacher=request.getParameter("addteacher"); //获取输入
53 String addplace =request.getParameter("addplace");//获取输入
54 if(addplace.startsWith("一教")||addplace.startsWith("二教")||addplace.startsWith("三教")||addplace.startsWith("基教")) {55 //对教室的判断若不为这几个教室则无法录入
56 if(addteacher.equals("王建民")||addteacher.equals("刘立嘉")||addteacher.equals("刘丹")||addteacher.equals("王辉")||addteacher.equals("杨子光")) {57 //对老师额判断
58 //连接数据库
59 Connection conn = null;60 Statement stmt = null;61
62 //设置响应内容类型
63 response.setContentType("text/html;charset=UTF-8");64
65
66 try{67
68 //注册 JDBC 驱动器
69 Class.forName("com.mysql.jdbc.Driver");70
71 //打开一个连接
72 conn =DriverManager.getConnection(DB_URL,USER,PASS);73
74 //执行 SQL 查询
75 stmt =conn.createStatement();76 String sql;77 sql = "SELECT name FROM classroom";78 ResultSet rs =stmt.executeQuery(sql);79 //展开结果集数据库
80 while(rs.next()){81 //通过字段检索
82
83 String username = rs.getString("name");84
85 if(username.equals(addclass))86 flag=false;87 }88
89 //完成后关闭
90 rs.close();91 stmt.close();92 conn.close();93 if(flag==true)94 {95 PreparedStatement stmt1 = null;96 //注册 JDBC 驱动器
97 Class.forName("com.mysql.jdbc.Driver");98
99 //打开一个连接
100 conn =DriverManager.getConnection(DB_URL,USER,PASS);101
102 String add= "INSERT into classroom values(?,?,?)";103 stmt1 =conn.prepareStatement(add);104 ((PreparedStatement) stmt1).setString(1, addclass);105 ((PreparedStatement) stmt1).setString(2, addteacher );106 ((PreparedStatement) stmt1).setString(3, addplace);107
108 stmt1.executeUpdate();109
110
111 //完成后关闭
112 stmt.close();113 conn.close();114
115 }116
117
118 } catch(SQLException se) {119 //处理 JDBC 错误
120 se.printStackTrace();121 } catch(Exception e) {122 //处理 Class.forName 错误
123 e.printStackTrace();124 }finally{125 //最后是用于关闭资源的块
126 try{127 if(stmt!=null)128 stmt.close();129 }catch(SQLException se2){130 }131 try{132 if(conn!=null)133 conn.close();134 }catch(SQLException se){135 se.printStackTrace();136 }137 }138 if(flag==true)139 {140 response.getWriter().print("");141 response.setHeader("refresh", "1;function.jsp");142 }143 else
144 response.sendRedirect("add.jsp");145
146 }else
147 response.sendRedirect("add.jsp");148 }149 else
150 response.sendRedirect("add.jsp");151
152
153
154
155
156
157 }158
159
160
161 /**
162 *@seeHttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)163 */
164 protected void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {165 //TODO Auto-generated method stub
166 doGet(request, response);167 }168
169 }
3.修改内容(jsp+servlet)
modification.jsp
1
2 pageEncoding="UTF-8"%>
3
4
5
6
7
Insert title here8
9
10
11
12
13
14
15 修改课程信息
16
17 选择修改的课程名称:  修改后的课程名称:
18 选择修改的上课老师:  修改后的上课老师:
19 选择修改的上课地点:  修改后的上课地点:
20
21
22
23
24
25
26
27
28
29
对应的servlet:
Modification.java
1 packageMySQL;2
3 importjava.io.IOException;4 importjava.sql.Connection;5 importjava.sql.DriverManager;6 importjava.sql.PreparedStatement;7 importjava.sql.ResultSet;8 importjava.sql.SQLException;9
10 importjavax.servlet.ServletException;11 importjavax.servlet.annotation.WebServlet;12 importjavax.servlet.http.HttpServlet;13 importjavax.servlet.http.HttpServletRequest;14 importjavax.servlet.http.HttpServletResponse;15
16 /**
17 * Servlet implementation class Modification18 */
19 @WebServlet("/Modification")20 public class Modification extendsHttpServlet {21 private static final long serialVersionUID = 1L;22
23
24 //JDBC 驱动名及数据库 URL
25 static String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";26 static String DB_URL = "jdbc:mysql://localhost:3306/experiment?useSSL=false&serverTimezone=UTC";27
28
29 //数据库的用户名与密码,需要根据自己的设置
30 static String USER = "root";31 static String PASS = "HEIYANG";32 /**
33 *@seeHttpServlet#HttpServlet()34 */
35 publicModification() {36 super();37 //TODO Auto-generated constructor stub
38 }39
40 /**
41 *@seeHttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)42 */
43 @SuppressWarnings("resource")44 protected void doGet(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {45 //TODO Auto-generated method stub
46 response.getWriter().append("Served at: ").append(request.getContextPath());47
48 Connection conn =null;49 PreparedStatement stmt = null;50 ResultSet rs = null;51 boolean Flag=false;52
53 String class0=request.getParameter("addclass0");//获取输入
54 String class1=request.getParameter("addclass1");//获取输入
55 String teacher0=request.getParameter("addteacher0");//获取输入
56 String teacher1=request.getParameter("addteacher1");//获取输入
57 String place0=request.getParameter("addplace0");//获取输入
58 String place1=request.getParameter("addplace1");//获取输入
59
60 try{61
62 try{63 Class.forName("com.mysql.jdbc.Driver");64 conn =DriverManager.getConnection(DB_URL,USER,PASS);65 } catch(ClassNotFoundException e) {66 //TODO Auto-generated catch block
67 e.printStackTrace();68 }69
70 String sql;71 System.out.println("数据库连接成功");72 if(class0!=null)73 {74 sql="update classroom set name='"+class1+"' where name='"+class0+"'";75 stmt =conn.prepareStatement(sql);76 stmt.executeUpdate();77 }78 if(teacher0!=null)79 {80 sql="update classroom set teacher='"+teacher1+"' where teacher='"+teacher0+"'";81 stmt =conn.prepareStatement(sql);82 stmt.executeUpdate();83 }84 if(place0!=null)85 {86 sql="update classroom set place='"+place1+"' where place='"+place0+"'";87 stmt =conn.prepareStatement(sql);88 stmt.executeUpdate();89
90 }91
92 System.out.println("success");93 Flag=true;94 //out.flush();95 //out.close();
96 }catch(SQLException e) {97 e.printStackTrace();98 }finally{99 try{100 //注意关闭原则:从里到外
101 if (rs != null) {102 rs.close();103 }104 if (stmt != null) {105 stmt.close();106 }107 if (conn != null) {108 conn.close();109 }110 } catch(SQLException e) {111 e.printStackTrace();112 }113 }114 if(Flag==true)115 response.sendRedirect("function.jsp");116 else
117 response.sendRedirect("modification.jsp");118 }119
120 /**
121 *@seeHttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)122 */
123 protected void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {124 doGet(request, response);125 }126
127 }
4.删除(jsp+servlet)
delete.jsp
1
2 pageEncoding="UTF-8"%>
3
4
5
6
7
Insert title here8
9
10
11
12
13
14 删除课程信息
15
16 要删除的课程名称:
17 要删除的上课老师:
18 要删除的上课地点:  
19
20
21
22
23
24
25
26
27
28
29
delete.java
1 packageMySQL;2
3 importjava.io.IOException;4 importjava.sql.Connection;5 importjava.sql.DriverManager;6 importjava.sql.PreparedStatement;7 importjava.sql.ResultSet;8 importjava.sql.SQLException;9 importjava.sql.Statement;10
11 importjavax.servlet.ServletException;12 importjavax.servlet.annotation.WebServlet;13 importjavax.servlet.http.HttpServlet;14 importjavax.servlet.http.HttpServletRequest;15 importjavax.servlet.http.HttpServletResponse;16
17 importcom.mysql.cj.protocol.Resultset;18
19
20 /**
21 * Servlet implementation class delete22 */
23 @WebServlet("/delete")24 public class delete extendsHttpServlet {25 private static final long serialVersionUID = 1L;26
27 //JDBC 驱动名及数据库 URL
28 static String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";29 static String DB_URL = "jdbc:mysql://localhost:3306/experiment?useSSL=false&serverTimezone=UTC";30
31 //数据库的用户名与密码,需要根据自己的设置
32 static String USER = "root";33 static String PASS = "HEIYANG";34
35 //连接数据库
36 static Connection conn = null;37 static PreparedStatement stmt = null;38
39 /**
40 *@seeHttpServlet#HttpServlet()41 */
42 publicdelete() {43 super();44 //TODO Auto-generated constructor stub
45 }46
47 /**
48 *@seeHttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)49 */
50 @SuppressWarnings("unused")51 protected void doGet(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {52 //TODO Auto-generated method stub
53 boolean Flag=false;54 response.setContentType("text/html;charset=UTF-8");55 response.getWriter().append("Served at: ").append(request.getContextPath());56
57 String delclass=request.getParameter("addclass");//获取输入
58 String delteacher=request.getParameter("addteacher"); //获取输入
59 String adelplace =request.getParameter("addplace");//获取输入
60
61 String del1= "DELETE from classroom where name=?";62 String del2= "DELETE from classroom where teacher=?";63 String del3= "DELETE from classroom where place=?";64
65 try{66 Class.forName("com.mysql.jdbc.Driver");67 Connection conn =DriverManager.getConnection(DB_URL,USER,PASS);68 if(delclass!=null)69 {70 stmt =conn.prepareStatement(del1);71 stmt.setString(1,delclass);72 int rs =stmt.executeUpdate();73 Flag=true;74 }75 else if(delteacher!=null)76 {77 stmt =conn.prepareStatement(del2);78 stmt.setString(2,delteacher);79 int rs =stmt.executeUpdate();80 Flag=true;81 }82 else if(adelplace!=null)83 {84 stmt =conn.prepareStatement(del3);85 stmt.setString(3,adelplace);86 int rs =stmt.executeUpdate();87 Flag=true;88 }89
90
91 stmt.close();92 conn.close();93 if(Flag==true) {94 response.getWriter().print("");95 response.setHeader("refresh", "1;function.jsp");96 //response.sendRedirect("function.jsp");
97 }98 else
99 response.sendRedirect("delete.jsp");100 } catch (SQLException |ClassNotFoundException e) {101 //TODO Auto-generated catch block
102 e.printStackTrace();103 }104
105
106
107
108
109
110
111
112 }113
114 /**
115 *@seeHttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)116 */
117 protected void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {118 //TODO Auto-generated method stub
119 doGet(request, response);120 }121
122 }
5.查找(jsp+servlet)
search.jsp
1
2 pageEncoding="UTF-8"%>
3
4
5
6
7
Insert title here8
9
10
11
12
13
14 查询课程信息
15
16 课程名称:
17 上课老师:
18 上课地点:  
19
20
21
22
23
24
25
26
27
28
29
30
31
display.java
1 packageMySQL;2
3 importjava.io.IOException;4 importjava.io.PrintWriter;5 importjava.sql.Connection;6 importjava.sql.DriverManager;7 importjava.sql.ResultSet;8 importjava.sql.SQLException;9 importjava.sql.Statement;10 importjava.util.LinkedList;11 importjava.util.List;12
13 importjavax.servlet.ServletException;14 importjavax.servlet.annotation.WebServlet;15 importjavax.servlet.http.HttpServlet;16 importjavax.servlet.http.HttpServletRequest;17 importjavax.servlet.http.HttpServletResponse;18
19 /**
20 * Servlet implementation class display21 */
22 @WebServlet("/display")23 public class display extendsHttpServlet {24 private static final long serialVersionUID = 1L;25
26
27 /**
28 *@seeHttpServlet#HttpServlet()29 */
30 publicdisplay() {31 super();32 //TODO Auto-generated constructor stub
33 }34
35 /**
36 *@seeHttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)37 */
38 protected void doGet(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {39 //TODO Auto-generated method stub
40 response.setContentType("text/html;charset=utf-8");41
42 response.setContentType("text/html");43
44 response.getWriter().append("Served at: ").append(request.getContextPath());45
46 String addclass=request.getParameter("class");//获取输入
47 String addteacher=request.getParameter("teacher"); //获取输入
48 String addplace =request.getParameter("place");//获取输入49
50 //设置响应内容类型
51 response.setContentType("text/html;charset=utf-8");52 response.setContentType("text/html;charset=GBK");53 response.setContentType("text/html");54
55 Connection connection = null;56 Statement statement = null;57 ResultSet resultSet = null;58 PrintWriter printWriter =response.getWriter();59 List list = new LinkedList();60 try{61 Class.forName("com.mysql.jdbc.Driver");62 String url = "jdbc:mysql://localhost:3306/experiment?useSSL=false&serverTimezone=UTC";63 connection = DriverManager.getConnection(url, "root", "HEIYANG");64 statement =connection.createStatement();65
66 resultSet = statement.executeQuery("SELECT name,teacher,place FROM classroom");67 printWriter.print("
Servlet连接数据库");68 printWriter.print("70 while(resultSet.next()) {71 if(addclass!=null) {72 if((resultSet.getString("name")).indexOf(addclass)!=-1) {73 printWriter.print("
");74 printWriter.print("" + resultSet.getString("name") + ""+"" + resultSet.getString("teacher") + ""+"" + resultSet.getString("place") + "");75 printWriter.print("");76 }77 }78 else if(addteacher!=null) {79 if((resultSet.getString("teacher")).indexOf(addteacher)!=-1)80 {81 printWriter.print("");82 printWriter.print("" + resultSet.getString("name") + ""+"" + resultSet.getString("teacher") + ""+"" + resultSet.getString("place") + "");83 printWriter.print("");84 String name=resultSet.getString("name");85 list.add(name);86 }87 }88 else if(addplace!=null) {8990 if((resultSet.getString("place")).indexOf(addplace)!=-1)91 {92 printWriter.print("
");93 printWriter.print("" + resultSet.getString("name") + ""+"" + resultSet.getString("teacher") + ""+"" + resultSet.getString("place") + "");94 printWriter.print("");95 }96 }97 }98 }catch(ClassNotFoundException e) {99 //TODO Auto-generated catch block100 e.printStackTrace();101 } catch(SQLException e) {102 //TODO Auto-generated catch block
103 e.printStackTrace();104 }finally{105 try{106 //resultSet.close();
107 statement.close();108 connection.close();109 } catch(SQLException e) {110 //TODO Auto-generated catch block
111 e.printStackTrace();112 }113 }114
115 request.setAttribute( "list ",list);116 request.getRequestDispatcher("show.jsp").forward(request,response);117
118 }119
120 /**
121 *@seeHttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)122 */
123 protected void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {124 //TODO Auto-generated method stub
125 doGet(request, response);126 }127
128 }