html调用servlet(JDBC在Servlet中的使用)(2)
5.修改数据
5.1编写查询条件页面
修改单条数据的时候,首先是查询出单个数据的详细信息,然后根据实际需要部分修改或者全部修改。修改之后,数据会提交到数据库,数据库中保存更新以后的数据。
查询出单条数据的查询条件页面代码如下:
QueryToUpdate.html
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title>QueryToUpdate.html</title>
- <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
- <meta http-equiv="description" content="this is my page">
- <meta http-equiv="content-type" content="text/html; charset=UTF-8">
- <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
- </head>
- <body>
- <form name="f1" id="f1" action="/jdbc_servlet/servlet/QueryToUpdateServlet" method="post">
- <table border="0">
- <tr>
- <td>请输入要修改的部门编号:</td><tr></tr>
- <td><input type="text" name="id" ></td>
- </tr>
- <tr>
- <td colspan="2" align="left"><input type="submit" value="提交"></td>
- </tr>
- </table>
- </form>
- </body>
- </html>
5.2 编写显示部门详细信息的Servlet
输入要修改的部门编号以后,进入根据部门编号查询部门信息的Servlet,把部门详细信息显示到页面中,一些不可以修改的字段可以设置成只读,这样就不会把这些数据修改了,该Servlet的代码如下:
QueryToUpdateServlet.java
- package com.cn.update;
- import java.io.IOException;
- import java.io.PrintWriter;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- public class QueryToUpdateServlet extends HttpServlet {
- /**
- * Destruction of the servlet. <br>
- */
- public void destroy() {
- super.destroy(); // Just puts "destroy" string in log
- // Put your code here
- }
- /**
- * The doGet method of the servlet. <br>
- *
- * This method is called when a form has its tag value method equals to get.
- *
- * @param request the request send by the client to the server
- * @param response the response send by the server to the client
- * @throws ServletException if an error occurred
- * @throws IOException if an error occurred
- */
- public void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- response.setContentType("text/html;charset=gb2312");
- request.setCharacterEncoding("gb2312");
- PrintWriter out = response.getWriter();
- String id = request.getParameter("id");
- Connection con = null;
- PreparedStatement pstmt = null;
- ResultSet rs = null;
- try {
- Class.forName("com.mysql.jdbc.Driver");
- System.out.println("创建驱动成功!");
- con = DriverManager.getConnection("jdbc:mysql://localhost:3306/bank", "root", "1234");
- System.out.println("数据库连接成功!");
- String sql = "SELECT * FROM dept WHERE id=?";
- pstmt = con.prepareStatement(sql);
- pstmt.setString(1, id);
- rs = pstmt.executeQuery();
- } catch (ClassNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- //显示单个部门的信息
- out.println("<html>"
- + "<head><title>显示单个部门信息</title></head>"
- + "<body>");
- out.println("<h1>显示单个部门信息</h1><br><br>");
- out.print("<form action='/jdbc_servlet/servlet/UpdateDeptServlet' method='post'>");
- try {
- while(rs.next()){
- out.println("部门编号:");
- out.print("<br>");
- //在文本框中显示部门编号,设置成只读
- out.println("<input type='text' name='id' readonly='true' value=");
- out.println(rs.getString(1).toString());
- out.print(">");
- out.print("<br>");
- out.println("部门名称:");
- out.print("<br>");
- //在文本框中显示部门名称
- out.println("<input type='text' name='d_name' value=");
- out.println(rs.getString(2).toString());
- out.print(">");
- out.print("<br>");
- out.println("部门地址:");
- out.print("<br>");
- //在文本框中显示部门地址
- out.println("<input type='text' name='address' value=");
- out.println(rs.getString(3).toString());
- out.print(">");
- out.print("<br>");
- out.println("部门人数:");
- out.print("<br>");
- //在文本框中显示部门人数
- out.println("<input type='text' name='empnumber' value=");
- out.println(rs.getString(4).toString());
- out.print(">");
- out.print("<br>");
- //提交按钮
- out.print("<input type='submit' value='Submit'>");
- out.print("</form>");
- }
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- out.flush();
- out.close();
- }
- /**
- * The doPost method of the servlet. <br>
- *
- * This method is called when a form has its tag value method equals to post.
- *
- * @param request the request send by the client to the server
- * @param response the response send by the server to the client
- * @throws ServletException if an error occurred
- * @throws IOException if an error occurred
- */
- public void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- response.setContentType("text/html;charset=gb2312");
- request.setCharacterEncoding("gb2312");
- PrintWriter out = response.getWriter();
- this.doGet(request, response);
- out.flush();
- out.close();
- }
- /**
- * Initialization of the servlet. <br>
- *
- * @throws ServletException if an error occurs
- */
- public void init() throws ServletException {
- // Put your code here
- }
- }
5.3编写处理修改操作的Servlet
在UpdateDeptServlet中,修改数据以后,显示出数据库表中的全部信息。UpdateDeptServlet的代码如下:
UpdateDeptServlet.java
- package com.cn.update;
- import java.io.IOException;
- import java.io.PrintWriter;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- public class UpdateDeptServlet extends HttpServlet {
- /**
- * The doGet method of the servlet. <br>
- *
- * This method is called when a form has its tag value method equals to get.
- *
- * @param request the request send by the client to the server
- * @param response the response send by the server to the client
- * @throws ServletException if an error occurred
- * @throws IOException if an error occurred
- */
- public void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- response.setContentType("text/html");
- PrintWriter out = response.getWriter();
- this.doPost(request, response);
- out.flush();
- out.close();
- }
- /**
- * The doPost method of the servlet. <br>
- *
- * This method is called when a form has its tag value method equals to post.
- *
- * @param request the request send by the client to the server
- * @param response the response send by the server to the client
- * @throws ServletException if an error occurred
- * @throws IOException if an error occurred
- */
- public void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- response.setContentType("text/html;charset=gb2312");
- request.setCharacterEncoding("gb2312");
- PrintWriter out = response.getWriter();
- Connection con = null;
- PreparedStatement ps = null;
- ResultSet rs = null;
- Statement sta = null;
- String id = request.getParameter("id");
- String address = request.getParameter("address");
- int empnumber = Integer.parseInt(request.getParameter("empnumber"));
- String d_name = request.getParameter("d_name");
- try {
- Class.forName("com.mysql.jdbc.Driver");
- System.out.println("创建驱动成功!");
- con = DriverManager.getConnection("jdbc:mysql://localhost:3306/bank", "root", "1234");
- System.out.println("数据库连接成功!");
- String sql = "UPDATE dept SET id=?,address=?,empnumber=?,d_name=? WHERE id=?";
- ps = con.prepareStatement(sql);
- //下面设置修改的数据值
- ps.setString(1, id);
- ps.setString(2, address);
- ps.setInt(3, empnumber);
- ps.setString(4, d_name);
- ps.setString(5, id);
- ps.executeUpdate();
- System.out.println("修改成功!");
- /*
- * 添加成功后,显示全部信息
- */
- sta = con.createStatement();
- rs = sta.executeQuery("SELECT * FROM dept");
- //在页面中显示表中的所有信息
- out.println(
- "<html>"+
- "<head><title>部门表信息</title></head>"+
- "<body>");
- out.println("<h1>部门表信息:</h1><br><br>");
- //循环遍历输出查询结果
- while(rs.next()){
- out.print("部门编号:");
- out.print(rs.getString(1)+"\t");
- out.print("部门名称:");
- out.print(rs.getString(2)+"\t");
- out.print("部门地址:");
- out.print(rs.getString(3)+"\t");
- out.print("部门人数:");
- out.print(rs.getString(4)+"\t");
- out.println("<br>");
- }
- out.print("</body></html>");
- out.close();
- } catch (ClassNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- out.flush();
- out.close();
- }
- /**
- * Initialization of the servlet. <br>
- *
- * @throws ServletException if an error occurs
- */
- public void init() throws ServletException {
- // Put your code here
- }
- }
6. 删除数据
删除数据时,要指定删除的条件,否则会把表中的所有数据删除。删除以后,被删除的数据在表中就不存在了。下面的例子是根据部门编号删除数据的例子。首先在页面中输入要删除的部门编号,输入要删除的部门编号的页面代码入下:
delete.html
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title>delete.html</title>
- <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
- <meta http-equiv="description" content="this is my page">
- <meta http-equiv="content-type" content="text/html; charset=gb2312">
- <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
- </head>
- <body>
- <form name="f1" id="f1" action="/jdbc_servlet/servlet/DeleteByIdServlet" method="post">
- <table border="0">
- <tr>
- <td>请输入要删除的部门编号:</td><tr></tr>
- <td><input type="text" name="id" ></td>
- </tr>
- <tr>
- <td colspan="2" align="left"><input type="submit" value="删除"></td>
- </tr>
- </table>
- </form>
- </body>
- </html>
当输入删除条件后,单击【删除】按钮,会进入form表单指定的DeleteByIdServlet中,这是一个servlet,用来处理删除操作。DeleteByIdServlet中的代码如下:
DeleteByIdServlet.java
- package com.cn.delete;
- import java.io.IOException;
- import java.io.PrintWriter;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- public class DeleteByIdServlet extends HttpServlet {
- /**
- * The doGet method of the servlet. <br>
- *
- * This method is called when a form has its tag value method equals to get.
- *
- * @param request the request send by the client to the server
- * @param response the response send by the server to the client
- * @throws ServletException if an error occurred
- * @throws IOException if an error occurred
- */
- public void doGet(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- response.setContentType("text/html");
- PrintWriter out = response.getWriter();
- this.doPost(request, response);
- out.flush();
- out.close();
- }
- /**
- * The doPost method of the servlet. <br>
- *
- * This method is called when a form has its tag value method equals to post.
- *
- * @param request the request send by the client to the server
- * @param response the response send by the server to the client
- * @throws ServletException if an error occurred
- * @throws IOException if an error occurred
- */
- public void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- response.setContentType("text/html;charset=gb2312");
- request.setCharacterEncoding("gb2312");
- PrintWriter out = response.getWriter();
- String id = request.getParameter("id");
- Connection con = null;
- // ResultSet rs = null;
- PreparedStatement ps = null;
- try {
- Class.forName("com.mysql.jdbc.Driver");
- System.out.println("创建驱动成功!");
- con = DriverManager.getConnection("jdbc:mysql://localhost:3306/bank", "root", "1234");
- System.out.println("数据库连接成功!");
- String sql = "DELETE FROM dept WHERE id=?";
- ps = con.prepareStatement(sql);
- ps.setString(1, id);
- ps.executeUpdate();
- System.out.println("删除成功!");
- //显示结果信息
- out.println("<html><head><title>"
- +"删除部门表数据</title></head>"+"<body>");
- out.println("<h1>删除部门表数据成功!</h1>");
- out.print("</body></html>");
- } catch (ClassNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- out.flush();
- out.close();
- }
- /**
- * Initialization of the servlet. <br>
- *
- * @throws ServletException if an error occurs
- */
- public void init() throws ServletException {
- // Put your code here
- }
- }
在DeleteByIdServlet中,获得页面传递过来的部门编号,然后根据部门编号删除该编号对应的数据,删除成功则在页面中提示删除成功。
html调用servlet(JDBC在Servlet中的使用)(2)的更多相关文章
- html调用servlet(JDBC在Servlet中的使用)(1)
1.页面的数据表单 在使用Servlet处理用户请求之前,先准备一个页面,该页面用来提供数据表单.数据表单就是HTML中的<form>...</form>部分,当用户单击Sub ...
- Java Servlet(三):Servlet中ServletConfig对象和ServletContext对象
本文将记录ServletConfig/ServletContext中提供了哪些方法,及方法的用法. ServletConfig是一个抽象接口,它是由Servlet容器使用,在一个servlet对象初始 ...
- 登录小项目 js+servlet+jdbc+mvc
项目名称: 沪上阿姨 实现需求: 实现用户登录 实现用户退出 实现用户注册 功能分析: 用户登录: 根据用户名和密码查询用户信息.查询则登录成功,查不到则登录失败. 用户退出: 销毁session 用 ...
- JDBC和servlet设计思路、DAO模式思路、MVC思路粗略总结
#JDBC和Servlet联合起来使用的项目思路: 说明:建库,最好一开始设置utf8字符集 step1: 在数据库中建表 如 create table t_user{ ...... } step ...
- Jsp+Servlet+JDBC的使用复习
最近对JDBC进行了复习,对事物的理解,连接池的使用等部分都有一个复习,所以使用Servlet+JDBC完成了一个小Demo,在这里对这种底层的操作进行总结.框架的使用的确方便了我们的开发,但是底层的 ...
- java web开发基础实例(javabean+jsp+servlet+jdbc)
JavaBean:用于传递数据,拥有与数据相关的逻辑处理 JSP:从Model接收数据并生成HTML Servlet:接收HTTP请求并控制Model和View jdbc:用于配置环境 一.[建立数据 ...
- 使用JSP+Servlet+Jdbc+Echatrs实现对豆瓣电影Top250的展示
使用JSP+Servlet+Jdbc+Echatrs实现对豆瓣电影Top250的展示 写在前面: 有的小伙伴,会吐槽啦,你这个标题有点长的啊.哈哈 ,好像是的!不过,这个也是本次案例中使用到的关键技术 ...
- 使用servlet+jdbc+MD5实现用户加密登录
/** * 分析流程: * 1.前端页面提交登录请求 * 2.被web.xml拦截,进入到LoginServlet(有两种方式:方式一,在web.xml文件中配置servlet拦截器;方式二,不用在w ...
- Servlet从本地文件中读取图片,并显示在页面中
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpSer ...
- MVC-1(javabean+jsp+servlet+jdbc)
这是一篇最初版本的mvc设计模式的demo.路要一步一步走,弄明白这其中的逻辑,对后面掌握ssh,ssm等框架大有裨益. 计算机系的同学们也要为毕设做准备了,希望可以帮你们迈出自己做毕设的第一步(微笑 ...
随机推荐
- LoadRunner FAQ2
LR中参数的定义和赋值 1.参数的赋值和取值 lr_save_string("hello world","param"); lr_eval_string(&qu ...
- log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
一.异常描述: log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLo ...
- hdoj1171 Big Event in HDU(01背包 || 多重背包)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1171 题意 老师有一个属性:价值(value).在学院里的老师共有n种价值,每一种价值value对应着 ...
- [漏洞复现]CVE-2010-2883 Adobe Reader 打开pdf电脑即刻中招
1.漏洞概述: CVE-2010-2883漏洞原理:“Adobe Reader在处理CoolType字体文件的sing表时,存在栈溢出漏洞,当打开特制的恶意PDF文件时,可允许任意代码远程执行.” 影 ...
- Block的基本用法
NSString* (^myBlock)(NSString*, int); myBlock = ^(NSString *name, int age){ return [NSString stringW ...
- win 10 文件夹 背景 没效果
韩梦飞沙 yue31313 韩亚飞 han_meng_fei_sha 313134555@qq.com
- Git 历险记
Git历险记(一) 作为分布式版本控制系统的重要代表--Git已经为越来越多的人所认识,它相对于我们熟悉的CVS.SVN甚至同时分布式控制系统的Mercurial,有哪些优势和不足呢.这次InfoQ中 ...
- bzoj 3669 lct维护最小生成树
大概题意:给一个无向图,有a,b两种边权,找一条从1到n的路径,使得max(a[i])+max(b[i])最小a[i],b[i]表示该路径上的边的对应权. 如果用类似最短路的DP来做,显然每个点的状态 ...
- Codeforces Round #354 (Div. 2) B. Pyramid of Glasses 模拟
B. Pyramid of Glasses 题目连接: http://www.codeforces.com/contest/676/problem/B Description Mary has jus ...
- Codeforces Round #287 (Div. 2) A. Amr and Music 水题
A. Amr and Music time limit per test 1 second memory limit per test 256 megabytes input standard inp ...