综合习题——修改数据

   一)创建登录页面:index.jsp

 1 <%@page import="java.text.SimpleDateFormat"%>
 2 <%@page import="java.sql.*"%>
 3 <%@ page language="java" contentType="text/html; charset=UTF-8"
 4     pageEncoding="UTF-8"%>
 5 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 6 <html>
 7 <head>
 8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 9 <title>学生信息</title>
10 </head>
11 <body>
12 学生信息列表
13 <br>
14 <%
15 try
16 {
17 //连接数据库
18 
19   //1)、加载驱动
20     Class.forName("oracle.jdbc.driver.OracleDriver");
21     String strUrl="jdbc:oracle:thin:@localhost:1521:ORCL";
22     Connection conn=DriverManager.getConnection(strUrl, "test", "test");
23   //2)、得到连接
24 //Connection 连接     DriverManager是一个结果集
25 // Connection conn=DriverManager.getConnection("strURL", "test", "test");
26 //读取
27 //Statement  声明  是java的一个重要接口
28  Statement st=conn.createStatement();
29 //RescultSet  遍历    executeQuery()  是数据库查询Select的一个方法
30   ResultSet rs=st.executeQuery("select t.*, t.rowid from T_STUDENT t");
31 //输出结果集
32 if(rs!=null)//如果遍历的认识这个数不为空
33 {
34     SimpleDateFormat sdf=new SimpleDateFormat("MM/dd/yyyy");
35     while(rs.next())//当有下一个数时,输出从rs里得到的“sno”的数据
36     {
37         
38         
39         
40         out.print("sno"+rs.getString("sno")+" ");//从rs结果集中得到"sno"的数据
41         out.print("sname"+rs.getString("sname")+" ");
42         out.print("ssex"+rs.getString("ssex")+" ");
43         try
44         {
45         out.print("sbirthday"+(rs.getDate("sbirthday")==null?"":sdf.format(rs.getDate("sbirthday")))+" ");
46         }catch(Exception e)
47         {
48             e.printStackTrace();
49         }
50         out.print("sclass"+rs.getString("class")+"<a href='update.jsp?sno="+rs.getString("sno")+"'>[修改]</a> <a href='Deletet_student.jsp?sno="+rs.getString("sno")+"'>[删除]</a><br>");
51     }
52 }
53 //释放资源
54 conn.close();
55 st.close();
56 rs.close();
57 }
58 catch(Exception e)
59 {
60     e.printStackTrace();
61     }
62 
63  %>
64 添加学生信息<br>
65 <form action="savet_student" method="post">
66 学号<input type="text" name="sno"><br>
67 姓名<input type="text" name="sname"><br>
68 性别<input type="text" name="ssex"><br>
69 生日<input type="text" name="sbirthday"><br>
70 班级<input type="text" name="sclass"><br>
71 <input type="submit" value="保存">
72 </form>
73 </body>
74 </html>

 二)创建修改页面:update.jsp

 1 <%@page import="java.text.SimpleDateFormat"%>
 2 <%@page import="java.sql.*"%>
 3 <%@ page language="java" contentType="text/html; charset=UTF-8"
 4     pageEncoding="UTF-8"%>
 5    
 6 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 7 <html>
 8 <head>
 9 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
10 <title>修改学生信息</title>
11 </head>
12 <body>
13 <%
14 //接收主键,从数据库中读取最新数据,在进行修改
15 String sno=request.getParameter("sno");
16 String sname="";
17 String ssex="";
18 String sbirthday="";
19 String sclass="";
20 if(sno!=null&&sno.trim().length()>0)
21 {
22     
23     try
24 {
25     //读取数据
26     Class.forName("oracle.jdbc.driver.OracleDriver");
27     String strUrl = "jdbc:oracle:thin:@localhost:1521:ORCL";
28 
29     Connection conn = DriverManager.getConnection(strUrl, "test", "test");
30     PreparedStatement pst=conn.prepareStatement("select * from t_student where sno=?");
31     pst.setString(1,sno);
32     ResultSet rs=pst.executeQuery();
33     //如果数据库中数据不为空且有下一条数据
34     if(rs!=null&&rs.next())
35     {
36         
37         sname=rs.getString("sname");
38         ssex=rs.getString("ssex");
39         try{
40             SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd");
41             sbirthday=sdf.format(rs.getDate("sbirthday"));
42         }catch(Exception e)
43         {
44             e.printStackTrace();
45         }
46         sclass=rs.getString("class");
47         rs.close();
48     }
49     else
50     {
51         out.print("未查询到数据");
52     }
53     pst.close();
54     conn.close();
55 }catch(Exception e)
56 {
57     e.printStackTrace();
58     }
59 }
60 else
61 {
62     out.print("请正确访问");
63     }
64 %>
65 修改学生信息<br>
66 <form action="savet_student" method="post">
67 学号<input type="text" name="sno" readonly="readonly" value="<%=sno %>"><br><br>
68 姓名<input type="text" name="sname" value="<%=sname %>"><br><br>
69 性别<input type="text" name="ssex" value="<%=ssex %>"><br><br>
70 生日<input type="text" name="sbirthday" value="<%=sbirthday %>"><br><br>
71 班级<input type="text" name="sclass" value="<%=sclass %>"><br><br>
72 <input type="hidden" name="isupdate" value="1">
73 <input type="submit" value="保存">
74 </form>
75 </body>
76 </html>

 三)创建添加数据页面:savet_student.java

 1 package com.haiqi.web;
 2 
 3 import java.io.IOException;
 4 import java.sql.*;
 5 import java.text.SimpleDateFormat;
 6 
 7 import javax.servlet.ServletException;
 8 import javax.servlet.http.HttpServlet;
 9 import javax.servlet.http.HttpServletRequest;
10 import javax.servlet.http.HttpServletResponse;
11 
12 public class savet_student extends HttpServlet {
13     private static final long serialVersionUID = 1L;
14 
15     public savet_student() {
16         super();
17         // TODO Auto-generated constructor stub
18     }
19 
20     protected void doGet(HttpServletRequest request, HttpServletResponse response)
21             throws ServletException, IOException {
22         // 处理保存数据的请求
23 
24         // 1)接收参数
25         String sno = request.getParameter("sno");
26         String sname = request.getParameter("sname");
27         String ssex = request.getParameter("ssex");
28         String sbirthday = request.getParameter("sbirthday");
29         String sclass = request.getParameter("sclass");
30         //是否更新
31         String isupdate=request.getParameter("isupdate");
32         // 2)验证
33 
34         if (sno != null && sno.trim().length() != 0 && sname != null && sname.trim().length() != 0)
35 
36         {
37             try {
38                 Class.forName("oracle.jdbc.driver.OracleDriver");
39                 String strUrl = "jdbc:oracle:thin:@localhost:1521:ORCL";
40 
41                 Connection conn = DriverManager.getConnection(strUrl, "test", "test");
42 
43                 //执行插入或更新
44                 //插入
45                 PreparedStatement pst = conn.prepareStatement("insert into t_student(sname,ssex,sbirthday,class,sno)" + "values(?,?,?,?,?)");
46                 //
47                 if(isupdate!=null&&isupdate.equals("1"))
48                 {
49                     //更新
50                     pst = conn.prepareStatement("update student set sname=?,"
51                             + "ssex=?,sbirthday=?,class=? where "+"sno=?");
52                 }
53             
54                     
55                 //String转成Date
56                 //关于日期格式的类
57                 //可以进行日期转换
58                 SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd");
59                 java.util.Date bir=sdf.parse(sbirthday);
60                 //使用long型的时间构造sql.Date
61                 Date sqlbir=new Date(bir.getTime());
62                 pst.setString(5, sno);
63                 pst.setString(1, sname);
64                 pst.setString(2, ssex);
65                 pst.setDate(3, sqlbir);
66                 pst.setString(4, sclass);
67                 pst.executeUpdate();
68                 
69                 pst.close();
70                 
71                 conn.close();
72                 // 4)跳转页面
73                 response.setHeader("refresh", "3;URL=index.jsp");
74                 response.getWriter().write("数据保存成功");
75                 
76             }
77             catch (Exception e) {
78                 e.printStackTrace();
79             }
80         }
81 
82         else {
83             response.setHeader("reflush", "3;URL=index.jsp");
84             response.getWriter().write("请正确提交数据");
85         }
86 
87         //response.getWriter().append("Served at: ").append(request.getContextPath());
88     }
89 
90     protected void doPost(HttpServletRequest request, HttpServletResponse response)
91             throws ServletException, IOException {
92 
93         doGet(request, response);
94     }
95 
96 }

 四)创建删除数据页面servlet:Delectt_student.jsp

 1 package com.haiqi.web;
 2 
 3 import java.io.IOException;
 4 import java.sql.Connection;
 5 import java.sql.Date;
 6 import java.sql.DriverManager;
 7 import java.sql.PreparedStatement;
 8 import java.text.SimpleDateFormat;
 9 
10 import javax.servlet.ServletException;
11 import javax.servlet.http.HttpServlet;
12 import javax.servlet.http.HttpServletRequest;
13 import javax.servlet.http.HttpServletResponse;
14 
15 /**
16  * Servlet implementation class Deletet_student
17  */
18 public class Deletet_student extends HttpServlet {
19     private static final long serialVersionUID = 1L;
20        
21     /**
22      * @see HttpServlet#HttpServlet()
23      */
24     public Deletet_student() {
25         super();
26         // TODO Auto-generated constructor stub
27     }
28 
29     /**
30      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
31      */
32     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
33         String sno = request.getParameter("sno");
34         if (sno != null && sno.trim().length() != 0 )
35 
36         {
37             try {
38                 Class.forName("oracle.jdbc.driver.OracleDriver");
39                 String strUrl = "jdbc:oracle:thin:@localhost:1521:ORCL";
40 
41                 Connection conn = DriverManager.getConnection(strUrl, "test", "test");
42 
43                 // 2)、得到连接
44                 // 3)保存
45                 // 读取
46                 //删除
47                 PreparedStatement pst = conn.prepareStatement("delete t_student where sno=?");
48                 //String转成Date
49                 //关于日期格式的类
50                 //可以进行日期转换
51                 SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd");
52                 
53                 //使用long型的时间构造sql.Date
54                 
55                 pst.setString(1, sno);
56                 
57                 pst.executeUpdate();
58 
59                 pst.close();
60                 conn.close();
61                 // 4)跳转页面
62                 response.setHeader("refresh", "3;URL=index.jsp");
63                 response.getWriter().write("删除成功");
64                 
65             }
66             catch (Exception e) {
67                 e.printStackTrace();
68             }
69         }
70         else {
71             response.setHeader("reflush", "3;URL=index.jsp");
72             response.getWriter().write("请正确提交数据");
73         }
74 
75         }
76         //response.getWriter().append("Served at: ").append(request.getContextPath());
77     
78 
79     /**
80      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
81      */
82     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
83         // TODO Auto-generated method stub
84         doGet(request, response);
85     }
86 
87 }

 五)转码页面Filter:myfilter.java

 1 package com.haiqi.web;
 2 
 3 import java.io.IOException;
 4 import javax.servlet.Filter;
 5 import javax.servlet.FilterChain;
 6 import javax.servlet.FilterConfig;
 7 import javax.servlet.ServletException;
 8 import javax.servlet.ServletRequest;
 9 import javax.servlet.ServletResponse;
10 
11 
12 public class myfilter implements Filter {
13 
14     public myfilter() {
15         // TODO Auto-generated constructor stub
16     }
17 
18     
19     public void destroy() {
20         // TODO Auto-generated method stub
21     }
22 
23     
24     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
25         request.setCharacterEncoding("UTF-8");
26         response.setContentType("text/html");
27         response.setCharacterEncoding("UTF-8");
28         chain.doFilter(request, response);
29     }
30 
31     
32     public void init(FilterConfig fConfig) throws ServletException {
33         // TODO Auto-generated method stub
34     }
35 
36 }
原文地址:https://www.cnblogs.com/yg6405816/p/5646260.html