课堂测试——增加信息
一、程序设计思想
按照JSP+Servlet+JavaBean的开发模式,将编码任务划分成以下部分:
JSP:页面上显示输入框和提交按钮,并且在界面上插入JavaScript脚本,用来检验输入信息是否满足要求,若满足要求则点击提交按钮可以提交,否则仍会停留在当前界面。
Servlet:控制流程,说白了就是把JSP上输入的合法信息通过Servlet文件中的执行语句将数据写入数据表中。
JavaBean:定义Course类,规定有授课教师teacher,课程名称course,授课地点place。Course类的对象是整个流程中调控的对象。
Dao:数据库访问,实现了把Course对象写入数据表的方法,Servlet的执行流程会调用这些方法。
二、源代码
1 //Course.Java 2 public class Course { 3 private String teacher; 4 private String course; 5 private String place; 6 public Course() { 7 8 } 9 public String getTeacher() { 10 return teacher; 11 } 12 public void setTeacher(String teacher) { 13 this.teacher = teacher; 14 } 15 public String getCourse() { 16 return course; 17 } 18 public void setCourse(String course) { 19 this.course = course; 20 } 21 public String getPlace() { 22 return place; 23 } 24 public void setPlace(String place) { 25 this.place = place; 26 } 27 28 }
1 //Dao.Java 2 import java.sql.Connection; 3 import java.sql.DriverManager; 4 import java.sql.Statement; 5 import java.sql.PreparedStatement; 6 import java.sql.ResultSet; 7 import java.sql.SQLException; 8 9 public class Dao { 10 public static Connection getConnection() { 11 Connection con = null; 12 Statement stmt = null; 13 String url = "jdbc:sqlserver://localhost:1433;DatabaseName=DrinkeryManage"; 14 try { 15 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 16 con = DriverManager.getConnection(url,"sa","leomessi10"); 17 } catch (ClassNotFoundException | SQLException e) { 18 System.out.println(e.getMessage()); 19 } 20 close(stmt); 21 return con; 22 } 23 24 public static void close(Connection con) { 25 26 try { 27 if(con!=null) 28 con.close(); 29 } catch (SQLException e) { 30 System.out.println(e.getMessage()); 31 } 32 } 33 34 public static void close(PreparedStatement pre) { 35 try { 36 if(pre!=null) 37 pre.close(); 38 } catch (SQLException e) { 39 System.out.println(e.getMessage()); 40 } 41 } 42 43 public static void close(Statement stmt) { 44 try { 45 if(stmt!=null) 46 stmt.close(); 47 } catch (SQLException e) { 48 System.out.println(e.getMessage()); 49 } 50 } 51 52 public static void close(ResultSet rs) { 53 try { 54 if(rs!=null) 55 rs.close(); 56 } catch (SQLException e) { 57 System.out.println(e.getMessage()); 58 } 59 } 60 } 61 62 //UserDao.Java 63 import Bean.Course; 64 import java.sql.Connection; 65 import java.sql.DriverManager; 66 import java.sql.Statement; 67 68 69 import java.sql.PreparedStatement; 70 import java.sql.ResultSet; 71 import java.sql.SQLException; 72 73 public class UseDao { 74 public void add(Course course) { 75 Connection con = Dao.getConnection(); 76 PreparedStatement pre = null; 77 try { 78 pre = con.prepareStatement("insert into Teacher(course,teacher,place) values(?,?,?)"); 79 pre.setString(1,course.getCourse()); 80 pre.setString(2,course.getTeacher()); 81 pre.setString(3,course.getPlace()); 82 pre.executeUpdate(); 83 } catch (SQLException e) { 84 // TODO 自动生成的 catch 块 85 e.printStackTrace(); 86 System.out.println(e.getMessage()); 87 } 88 Dao.close(pre); 89 Dao.close(con); 90 } 91 } 92 93 //Servlet.Java 94 import Bean.Course; 95 import Dao.*; 96 97 98 import java.io.IOException; 99 import javax.servlet.http.HttpServlet; 100 import javax.servlet.ServletException; 101 import javax.servlet.http.HttpServletRequest; 102 import javax.servlet.http.HttpServletResponse; 103 104 @SuppressWarnings("serial") 105 public class Servlet extends HttpServlet{ 106 public void service(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{ 107 req.setCharacterEncoding("utf-8"); 108 String method = req.getParameter("method"); 109 if(method.equals("add"))add(req,resp); 110 } 111 public void add(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{ 112 req.setCharacterEncoding("utf-8"); 113 String course = req.getParameter("course"); 114 String teacher = req.getParameter("teacher"); 115 String place = req.getParameter("place"); 116 Course cou = new Course(); 117 cou.setCourse(course); 118 cou.setTeacher(teacher); 119 cou.setPlace(place); 120 UseDao usedao = new UseDao(); 121 usedao.add(cou); 122 } 123 }
1 //login.jsp 2 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 3 <html> 4 <head> 5 <%@ page language="java" contentType="text/html; charset=UTF-8" 6 pageEncoding="UTF-8"%> 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 8 <script type="text/javascript"> 9 function check(form){ 10 course = form.course.value; 11 teacher = form.teacher.value; 12 place = form.place.value; 13 if(course==""){ 14 alert("课程名称不能为空"); 15 return false; 16 } 17 if(teacher!="王建民"&&teacher!="刘立嘉"&&teacher!="刘丹"&&teacher!="王辉"&&teacher!="杨子光"){ 18 alert("老师必须为王建民、刘立嘉、刘丹、王辉、杨子辉中的一位"); 19 return false; 20 } 21 if(place.indexOf("一教")!=0&&place.indexOf("二教")!=0&&place.indexOf("三教")!=0&&place.indexOf("基教")!=0){ 22 alert("上课地点不对"); 23 return false; 24 } 25 str = "我他妈呵呵" 26 console.err(str); 27 return true; 28 } 29 </script> 30 <title>增加信息</title> 31 </head> 32 <body> 33 <form name="form1" action="${pageContext.request.contextPath}/Servlet/Servlet?method=add" method="post" target="_self" onsubmit="return check(form1)"> 34 <table> 35 <tr> 36 <td colspan="2">课程名称:<input type="text" name="course"></td> 37 38 </tr> 39 <tr> 40 <td colspan="2">教师姓名:<input type="text" name="teacher"></td> 41 42 </tr> 43 <tr> 44 <td colspan="2">上课地点:<input type="text" name="place"></td> 45 46 </tr> 47 48 <tr> 49 <td><input type="submit" value="保存"></td> 50 </tr> 51 </table> 52 </form> 53 </body> 54 </html>
1 //在web.xml中添加以下内容 2 <servlet> 3 <servlet-name>Servlet</servlet-name> 4 <servlet-class>Servlet.Servlet</servlet-class> 5 </servlet> 6 <servlet-mapping> 7 <servlet-name>Servlet</servlet-name> 8 <url-pattern>/Servlet/Servlet</url-pattern> 9 </servlet-mapping>
三、验证截图
--------------------------------------------------------------------------------------------------------------------------------------------END