日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

[JSP暑假实训] 四.MyEclipse+Servlet+JSP实现火车票网站查询、修改、删除操作

發(fā)布時間:2024/6/1 javascript 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [JSP暑假实训] 四.MyEclipse+Servlet+JSP实现火车票网站查询、修改、删除操作 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本系列文章是作者暑假給學(xué)生進(jìn)行實訓(xùn)分享的筆記,主要介紹MyEclipse環(huán)境下JSP網(wǎng)站開發(fā),包括JAVA基礎(chǔ)、網(wǎng)頁布局、數(shù)據(jù)庫基礎(chǔ)、Servlet、前端后臺數(shù)據(jù)庫交互、DAO等知識。
前一篇文章講解了通過Servlet獲取所提交的數(shù)據(jù),這篇文章將詳細(xì)講解MyEclipse+Servlet+JSP實現(xiàn)火車票管理系統(tǒng)的查詢頁面、模糊查詢、修改車票信息、刪除車票等操作。基礎(chǔ)性文章,希望對讀者有所幫助 ,尤其是我的學(xué)生。

參考前文:
Java+MyEclipse+Tomcat (一)配置過程及jsp網(wǎng)站開發(fā)入門
Java+MyEclipse+Tomcat (二)配置Servlet及簡單實現(xiàn)表單提交
Java+MyEclipse+Tomcat (三)配置MySQL及查詢數(shù)據(jù)顯示在JSP網(wǎng)頁中
Java+MyEclipse+Tomcat (四)Servlet提交表單和數(shù)據(jù)庫操作
Java+MyEclipse+Tomcat (五)DAO和Java Bean實現(xiàn)數(shù)據(jù)庫和界面分開操作
Java+MyEclipse+Tomcat (六)詳解Servlet和DAO數(shù)據(jù)庫增刪改查操作

前文:
[JSP暑假實訓(xùn)] 一.MyEclipse安裝及JAVA基礎(chǔ)知識
[JSP暑假實訓(xùn)] 二.JSP網(wǎng)站創(chuàng)建及Servlet實現(xiàn)注冊表單提交、計算器運算
[JSP暑假實訓(xùn)] 三.MySQL數(shù)據(jù)庫基本操作及Servlet網(wǎng)站連接顯示數(shù)據(jù)庫信息

下載地址:https://download.csdn.net/download/eastmount/11293780

文章目錄

  • 一.查詢操作
  • 二.刪除操作
  • 三.查看詳情
  • 四.修改操作
  • 五.總結(jié)


一.查詢操作

1.新建Web工程,命名為“test0706_hcp”。

2.在工程中新建“imgs”文件夾,并放入圖片及連接MySQL的jar包。

3.創(chuàng)建數(shù)據(jù)庫hcp,新建表info,SQL語句如下所示:

-- ---------------------------- -- Table structure for `info` -- ---------------------------- DROP TABLE IF EXISTS `info`; CREATE TABLE `info` (`id` int(11) NOT NULL AUTO_INCREMENT,`start` varchar(40) DEFAULT NULL,`end` varchar(40) DEFAULT NULL,`name` varchar(40) DEFAULT NULL,`starttime` datetime DEFAULT NULL,`price` float DEFAULT NULL,`other` varchar(100) DEFAULT NULL,PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;-- ---------------------------- -- Records of info -- ---------------------------- INSERT INTO `info` VALUES ('1', 'guiyang', 'kunming', 'T61', '2019-06-29 12:00:00', '56', null); INSERT INTO `info` VALUES ('2', 'guiyang', 'kaili', 'T88', '2019-06-29 12:00:00', '26', null); INSERT INTO `info` VALUES ('3', '貴陽', '西安', 'T98', '2019-07-04 12:00:00', '126', null); INSERT INTO `info` VALUES ('4', '貴陽', '武漢', 'T34', '2019-07-04 12:00:00', '86', null); INSERT INTO `info` VALUES ('5', '貴定', '西安', 'T51', '2019-07-04 12:00:00', '134', null); INSERT INTO `info` VALUES ('6', '昆明', '武漢', 'T21', '2019-06-29 12:00:00', '123', null);

4.修改index.jsp網(wǎng)頁布局,代碼如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><base href="<%=basePath%>"><title>火車票管理系統(tǒng)</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><div align="center"><img src="imgs/bg.jpg" height="200" width="80%" /><br /><hr width="90%" color="red" size="3" /><h2>火車票查詢</h2><form method="post" action="index.jsp">起始地: <input type="text" name="start" size="20" />發(fā)車時間:<input type="date" name="sj" size="20" /><input type="submit" name="sub" value="查詢"></form><br /><br /><table border="2" width="80%"><tr><td>序號</td><td>起始地</td><td>目的地</td><td>車次</td><td>時間</td><td>價格</td><td>備注</td></tr></table><br /><hr width="90%" color="red" size="3" />?2019 YXZ 使用訂票系統(tǒng)前必讀 意見反饋 貴ICP證0000號 <br />貴州財經(jīng)大學(xué)信息學(xué)院楊秀璋及16級軟工所有 貴財0000000000001號 </div></body> </html>

此時運行結(jié)果如下圖所示:

5.在 index.jsp 中添加連接數(shù)據(jù)庫的JDBC代碼,并進(jìn)行起始地模糊查詢、時間查詢。

完整代碼如下:

<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><base href="<%=basePath%>"><title>火車票管理系統(tǒng)</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><div align="center"><img src="imgs/bg.jpg" height="200" width="80%" /><br /><hr width="90%" color="red" size="3" /><h2>火車票查詢</h2><%//驅(qū)動的名稱String driverName = "com.mysql.jdbc.Driver";//數(shù)據(jù)庫用戶名密碼String userName = "root";String userPwd = "123456";//數(shù)據(jù)庫名字String dbName = "hcp";//表名String tableName = "info";//拼接字符串鏈接數(shù)據(jù)庫String url = "jdbc:mysql://localhost:3306/" + dbName + "?user="+ userName + "&password=" +userPwd +"&useUnicode=true&characterEncoding=UTF-8";//鏈接數(shù)據(jù)庫Class.forName("com.mysql.jdbc.Driver").newInstance();//設(shè)置編碼方式request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");//獲取查詢的值String start = request.getParameter("start");System.out.println(start);String sj = request.getParameter("sj");System.out.println(sj);//SQL查詢ResultSet re;Connection con = DriverManager.getConnection(url);Statement statement = con.createStatement();String sql;//起始地為空判斷if(start==null||start=="") {if(sj==null||sj=="") { //查詢所有結(jié)果sql = "select * from " + tableName;System.out.println(sql);re = statement.executeQuery(sql);} else { //按時間查詢sql = "select * from " + tableName + " where date(starttime)='" + sj+ "';";System.out.println(sql);re = statement.executeQuery(sql);}}else {if(sj==null||sj=="") { //按起始點模糊查詢sql = "select * from " + tableName + " where start like '%" + start + "%';";System.out.println(sql);re = statement.executeQuery(sql);} else { //兩個字段查詢sql = "select * from " + tableName + " where start like '%" + start + "%' and date(starttime)='" + sj+ "';";System.out.println(sql);re = statement.executeQuery(sql);}}%><table border="2" width="80%"><tr><td>序號</td><td>起始地</td><td>目的地</td><td>車次</td><td>時間</td><td>價格</td><td>備注</td></tr><%while(re.next()) {%><tr><td><% out.print(re.getString(1)); %></td><td><% out.print(re.getString(2)); %></td><td><% out.print(re.getString(3)); %></td><td><% out.print(re.getString(4)); %></td><td><% out.print(re.getString(5)); %></td><td><% out.print(re.getString(6)); %></td><td><% out.print(re.getString(7)); %></td></tr><%} //end while//關(guān)閉連接re.close(); statement.close(); con.close(); %></table><br /><hr width="90%" color="red" size="3" />?2019 YXZ 使用訂票系統(tǒng)前必讀 意見反饋 貴ICP證0000號 <br />貴州財經(jīng)大學(xué)信息學(xué)院楊秀璋及16級軟工所有 貴財0000000000001號 </div></body> </html>

初始化顯示結(jié)果如下所示:
select * from info;

模糊查詢結(jié)果:
select * from info where start like ‘%貴%’;

時間查詢:
select * from info where date(starttime)=‘2019-06-29’;

多字段查詢:
select * from info where start like ‘%貴陽%’ and date(starttime)=‘2019-07-04’;

寫到這里,查詢功能基本實現(xiàn),接下來補(bǔ)充常見的錯誤:
(1)中文編碼錯誤是最常見的錯誤,需要全部設(shè)置為“UTF-8”,包括數(shù)據(jù)庫、JSP、JAVA等。

(2)這里使用的傳遞參數(shù)為“post”方法,同時部分學(xué)生會出現(xiàn)SQL語句正常顯示,但無反饋結(jié)果,此時設(shè)置url需要增加編碼,如下:

String url = "jdbc:mysql://localhost:3306/" + dbName + "?user="+ userName + "&password=" +userPwd +"&useUnicode=true&characterEncoding=UTF-8";

(3)JAVA在調(diào)用SQL語句時,注意字符串拼接,建議同學(xué)們用 System.out.print 輸出SQL語句,再觀察其是否錯誤。尤其是from和where前后的空格、單引號等,其拼接代碼如下:

sql = "select * from " + tableName + " where start like '%" + start + "%' and date(starttime)='" + sj+ "';";

(4)while循環(huán)輸出結(jié)果時,注意 { 和 } 之間的內(nèi)容,它們把table布局嵌入其間。

<%while(re.next()) { %><tr><td><% out.print(re.getString(1)); %></td><td><% out.print(re.getString(2)); %></td><td><% out.print(re.getString(3)); %></td><td><% out.print(re.getString(4)); %></td><td><% out.print(re.getString(5)); %></td><td><% out.print(re.getString(6)); %></td><td><% out.print(re.getString(7)); %></td></tr> <%} //end while//關(guān)閉連接re.close(); statement.close(); con.close(); %>

二.刪除操作

1.繼續(xù)修改 index.jsp 主頁內(nèi)容,如下所示:

<table border="2" width="80%"><tr align="center"><td>序號</td><td>起始地</td><td>目的地</td><td>車次</td><td>時間</td><td>價格</td><td>備注</td><td>詳情</td><td>刪除</td><td>更新</td></tr><%while(re.next()) { %><tr align="center"><td><% out.print(re.getString(1)); %></td><td><% out.print(re.getString(2)); %></td><td><% out.print(re.getString(3)); %></td><td><% out.print(re.getString(4)); %></td><td><% out.print(re.getString(5)); %></td><td><% out.print(re.getString(6)); %></td><td><% out.print(re.getString(7)); %></td><td><a href="Show.jsp?id=<% out.print(re.getString(1)); %>">詳情</a></td><td><a href="DeleteServlet?id=<% out.print(re.getString(1)); %>">刪除</a></td><td><a href="Update.jsp?id=<% out.print(re.getString(1)); %>">更新</a></td></tr><%} //end while//關(guān)閉連接re.close(); statement.close(); con.close(); %></table>

此時顯示界面如下所示,注意 < a href=“DeleteServlet?id=<% out.print(re.getString(1)); %>”>刪除</ a> 表示跳轉(zhuǎn)到DeleteServlet頁面,id是傳遞的參數(shù),對應(yīng)數(shù)據(jù)庫火車票表的主鍵ID(序號)。

2.創(chuàng)建DeleteServlet類,如下所示。

3.接著在 DeleteServlet.java 中撰寫代碼,導(dǎo)入 java.sql. * 擴(kuò)展包,并將連接數(shù)據(jù)庫的代碼復(fù)制到 doGet()函數(shù)中。它會提示如下所示錯誤,數(shù)據(jù)庫相關(guān)操作需要放置在try/catch異常捕獲中,雙擊它就能自動加載try-catch。

完整代碼如下所示,主要是doGet()函數(shù):

package servlet;import java.sql.*;import java.io.IOException; import java.io.PrintWriter;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;public class DeleteServlet extends HttpServlet {public DeleteServlet() {super();}public void destroy() {super.destroy(); // Just puts "destroy" string in log// Put your code here}public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//獲取URL傳遞參數(shù)int id = Integer.valueOf(request.getParameter("id"));//驅(qū)動的名稱String driverName = "com.mysql.jdbc.Driver";//數(shù)據(jù)庫用戶名密碼String userName = "root";String userPwd = "123456";//數(shù)據(jù)庫名字String dbName = "hcp";//表名String tableName = "info";//拼接字符串鏈接數(shù)據(jù)庫String url = "jdbc:mysql://localhost:3306/" + dbName + "?user="+ userName + "&password=" +userPwd +"&useUnicode=true&characterEncoding=UTF-8";//鏈接數(shù)據(jù)庫try {Class.forName("com.mysql.jdbc.Driver").newInstance();//設(shè)置編碼方式request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");//SQL查詢ResultSet re;Connection con = DriverManager.getConnection(url);Statement statement = con.createStatement();String sql = "delete from " + tableName + " where id='" + id + "'";System.out.println(sql);//執(zhí)行SQL語句statement.execute(sql);} catch (InstantiationException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalAccessException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}response.setContentType("text/html");PrintWriter out = response.getWriter();out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");out.println("<HTML>");out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");out.println(" <BODY>");out.println("<h2><a href='index.jsp'>返回</a></h2>");out.println(" </BODY>");out.println("</HTML>");out.flush();out.close();}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");PrintWriter out = response.getWriter();out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");out.println("<HTML>");out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");out.println(" <BODY>");out.print(" This is ");out.print(this.getClass());out.println(", using the POST method");out.println(" </BODY>");out.println("</HTML>");out.flush();out.close();}public void init() throws ServletException {// Put your code here} }

此時運行代碼,點擊“刪除”操作,可能會報錯誤如下所示:

這是因為跳轉(zhuǎn)路徑的問題,有兩種處理方法:
< td >< a href=“DeleteServlet?id=<% out.print(re.getString(1)); %>”>刪除</ a></ td >

方法一:修改 web.xml 文件中的URL訪問路徑,即除去 “servlet/” 字段。

方法二:創(chuàng)建Servlet類時,設(shè)置它的URL訪問路徑,如下圖所示。

4.運行代碼,成果實現(xiàn)刪除功能。


三.查看詳情

新建 Show.jsp 頁面,編輯代碼如下所示:

<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><base href="<%=basePath%>"><title>My JSP 'Show.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><div align="center"><img src="imgs/bg.jpg" height="200" width="80%" /><br /><hr width="90%" color="red" size="3" /><h2>火車票信息更新</h2><%//驅(qū)動的名稱String driverName = "com.mysql.jdbc.Driver";//數(shù)據(jù)庫用戶名密碼String userName = "root";String userPwd = "123456";//數(shù)據(jù)庫名字String dbName = "hcp";//表名String tableName = "info";//拼接字符串鏈接數(shù)據(jù)庫String url = "jdbc:mysql://localhost:3306/" + dbName + "?user="+ userName + "&password=" +userPwd +"&useUnicode=true&characterEncoding=UTF-8";//鏈接數(shù)據(jù)庫Class.forName("com.mysql.jdbc.Driver").newInstance();//設(shè)置編碼方式request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");//獲取查詢的值String start = request.getParameter("start");System.out.println(start);String sj = request.getParameter("sj");System.out.println(sj);//SQL查詢ResultSet re;Connection con = DriverManager.getConnection(url);Statement statement = con.createStatement();int id = Integer.valueOf(request.getParameter("id"));String sql = "select * from " + tableName + " where id=" + id;System.out.println(sql);re = statement.executeQuery(sql); while(re.next()) {%><form action="index.jsp" method="get"><table border="0" width="30%"><tr align="left"><td>車次</td><td><input type="text" name="upcc" readonly="readonly" value="<% out.print(re.getString(2)); %>"></td></tr><tr align="left"><td>起始點</td><td><input type="text" name="upstart" readonly="readonly"value="<% out.print(re.getString(3)); %>"></td></tr><tr align="left"><td>目的地</td><td><input type="text" name="upend" readonly="readonly" value="<% out.print(re.getString(4)); %>"></td></tr><tr align="left"><td>時間</td><td><input type="text" name="uptime" readonly="readonly"value="<% out.print(re.getString(5)); %>"></td></tr><tr align="left"><td>價格</td><td><input type="text" name="upprice" readonly="readonly"value="<% out.print(re.getString(6)); %>"></td></tr><tr align="left"><td>備注</td><td><input type="text" name="upother" readonly="readonly"value="<% out.print(re.getString(7)); %>"></td></tr><tr align="center"><td colspan="2"><input type="submit" name="upsub" value="返回"></td></tr><%}%></table></form><hr width="90%" color="red" size="3" />?2019 YXZ 使用訂票系統(tǒng)前必讀 意見反饋 京ICP證030173號 <br />貴州財經(jīng)大學(xué)信息學(xué)院YXZ所有 京公網(wǎng)安備11000002000001號 </div></body> </html>

運行結(jié)果如下圖所示,均為只讀。點擊“返回”又繼續(xù)返回主頁,需要注意的是URL包含id值,即:
http://desktop-2ptb11k:8080/test0706_hcp/Show.jsp?id=1

PS:比如新聞詳情頁面,通常都會用這種方式,顯示的結(jié)果直接用文本內(nèi)容即可,而不像這里的input控件。


四.修改操作

1創(chuàng)建一個Update.jsp文件,然后添加如下代碼,其中表單為:
< form action=“UpdateServlet” method=“get” >。

完整代碼如下:

<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><base href="<%=basePath%>"><title>My JSP 'Update.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><div align="center"><img src="imgs/bg.jpg" height="200" width="80%" /><br /><hr width="90%" color="red" size="3" /><h2>火車票信息更新</h2><%//驅(qū)動的名稱String driverName = "com.mysql.jdbc.Driver";//數(shù)據(jù)庫用戶名密碼String userName = "root";String userPwd = "123456";//數(shù)據(jù)庫名字String dbName = "hcp";//表名String tableName = "info";//拼接字符串鏈接數(shù)據(jù)庫String url = "jdbc:mysql://localhost:3306/" + dbName + "?user="+ userName + "&password=" +userPwd +"&useUnicode=true&characterEncoding=UTF-8";//鏈接數(shù)據(jù)庫Class.forName("com.mysql.jdbc.Driver").newInstance();//設(shè)置編碼方式request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");//獲取查詢的值String start = request.getParameter("start");System.out.println(start);String sj = request.getParameter("sj");System.out.println(sj);//SQL查詢ResultSet re;Connection con = DriverManager.getConnection(url);Statement statement = con.createStatement();int id = Integer.valueOf(request.getParameter("id"));String sql = "select * from " + tableName + " where id=" + id;System.out.println(sql);re = statement.executeQuery(sql); while(re.next()) {%><form action="UpdateServlet" method="get"><table border="0" width="30%"><tr align="left"><td>車次</td><td><input type="text" name="upcc" value="<% out.print(re.getString(2)); %>"></td></tr><tr align="left"><td>起始點</td><td><input type="text" name="upstart" value="<% out.print(re.getString(3)); %>"></td></tr><tr align="left"><td>目的地</td><td><input type="text" name="upend" value="<% out.print(re.getString(4)); %>"></td></tr><tr align="left"><td>時間</td><td><input type="text" name="uptime" value="<% out.print(re.getString(5)); %>"></td></tr><tr align="left"><td>價格</td><td><input type="text" name="upprice" value="<% out.print(re.getString(6)); %>"></td></tr><tr align="left"><td>備注</td><td><input type="text" name="upother" value="<% out.print(re.getString(7)); %>"></td></tr><tr align="left"><td colspan="2"><input type="hidden" name="id" value="<% out.print(re.getString(1)); %>"></td></tr><tr align="center"><td><input type="submit" name="upsub" value="提交"></td><td><input type="reset" name="upreset" value="撤銷"></td></tr><%}%></table></form> <hr width="90%" color="red" size="3" />?2019 YXZ 使用訂票系統(tǒng)前必讀 意見反饋 京ICP證030173號 <br />貴州財經(jīng)大學(xué)信息學(xué)院YXZ所有 京公網(wǎng)安備11000002000001號 </div></body> </html>

注意:隱藏了一個input控件作為id值獲取,UpdateServlet中SQL語句需要通過它更新數(shù)據(jù)。

2.此時運行結(jié)果如下圖所示,其內(nèi)容是可以替換的。

比如修改信息如下所示,包括時間、票價、備注,點擊“提交”按鈕。

其運行結(jié)果如下所示,這是因為Servlet還沒有創(chuàng)建。

3.創(chuàng)建UpdateServlet類,并添加相關(guān)代碼,需要注意訪問路徑設(shè)置如下。

package servlet;import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; 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 UpdateServlet extends HttpServlet {public UpdateServlet() {super();}public void destroy() {super.destroy(); // Just puts "destroy" string in log// Put your code here}public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//設(shè)置編碼方式request.setCharacterEncoding("UTF-8");response.setCharacterEncoding("UTF-8");//驅(qū)動的名稱String driverName = "com.mysql.jdbc.Driver";//數(shù)據(jù)庫用戶名密碼String userName = "root";String userPwd = "123456";//數(shù)據(jù)庫名字String dbName = "hcp";//表名String tableName = "info";//拼接字符串鏈接數(shù)據(jù)庫String url = "jdbc:mysql://localhost:3306/" + dbName + "?user="+ userName + "&password=" +userPwd +"&useUnicode=true&characterEncoding=UTF-8";//鏈接數(shù)據(jù)庫try {Class.forName("com.mysql.jdbc.Driver").newInstance();//獲取URL傳遞參數(shù) 中文亂碼??????????轉(zhuǎn)換int id = Integer.valueOf(request.getParameter("id"));String upcc = new String(request.getParameter("upcc").getBytes("ISO-8859-1"), "UTF-8"); //車次String upstart = new String(request.getParameter("upstart").getBytes("ISO-8859-1"), "UTF-8"); //起始點String upend = new String(request.getParameter("upend").getBytes("ISO-8859-1"), "UTF-8"); //目的地String uptime = new String(request.getParameter("uptime").getBytes("ISO-8859-1"), "UTF-8"); //時間String upprice = new String(request.getParameter("upprice").getBytes("ISO-8859-1"), "UTF-8"); //價格String upother = new String(request.getParameter("upother").getBytes("ISO-8859-1"), "UTF-8"); //備注System.out.println(upother);//SQL查詢Connection con = DriverManager.getConnection(url);Statement statement = con.createStatement();String sql = "update " + tableName + " set start='" + upstart + "' , end='" + upend + "' , name='" + upcc + "' , starttime='" + uptime + "' , price='" + upprice+ "' , other='" + upother + "' where id=" + id + ";";System.out.println(sql);//執(zhí)行SQL語句statement.execute(sql);//關(guān)閉連接 statement.close(); con.close();} catch (InstantiationException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalAccessException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}//重定向到//response.sendRedirect("index.jsp");PrintWriter out = response.getWriter();out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");out.println("<HTML>");out.println(" <HEAD><TITLE>A Servlet</TITLE>");out.println("<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />");out.println("<HEAD>");out.println(" <BODY>");out.println ("<script language=javascript>alert('更新成功!!!');window.location='index.jsp'</script>");out.println(" </BODY>");out.println("</HTML>");out.flush();out.close(); }public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");PrintWriter out = response.getWriter();out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");out.println("<HTML>");out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");out.println(" <BODY>");out.print(" This is ");out.print(this.getClass());out.println(", using the POST method");out.println(" </BODY>");out.println("</HTML>");out.flush();out.close();}public void init() throws ServletException {// Put your code here} }

此時的文件結(jié)果如下圖所示:

update info set start=‘武漢’ , end=‘T34’ , name=‘貴陽’ , starttime=‘2019-07-06 12:00:00.0’ ,
price=‘188’ , other=‘這是一張很棒的火車票。’ where id=4;

輸出結(jié)果如下圖所示:

注意:GET方法可能存在中文編碼錯誤,輸出“???”,修改方法主要是request調(diào)用setCharacterEncoding(“UTF-8”)方法設(shè)置為UTF-8。同時,下面獲取的值也轉(zhuǎn)碼成UTF-8。


五.總結(jié)

目前雖然實現(xiàn)了網(wǎng)站的功能,但其代碼非常雜亂,JSP中嵌套這JAVA,JAVA中又嵌套著HTML,而我想實現(xiàn)的功能是:JSP就賦值布局,顯示界面;Java就負(fù)責(zé)連接數(shù)據(jù)庫、數(shù)據(jù)庫增刪改查,處理結(jié)果再返回給JSP中顯示,而不是相互嵌套的。換句話說:JSP中點擊“提交”按鈕,TextBox中傳遞出發(fā)地,Java中接著請求,數(shù)據(jù)庫查詢,得到的結(jié)果再返回給JSP中顯示。

那怎么實現(xiàn)呢?
接下來我們將介紹DAO和Java Bean對JDBC進(jìn)行分層、模塊化的最有效兩個方法。DAO(數(shù)據(jù)庫操作對象,Database Access Object)是JDBC下常用模式,DAO出現(xiàn)之前,操作數(shù)據(jù)庫的代碼與業(yè)務(wù)代碼都出現(xiàn)在Servlet或者JSP中,不利用業(yè)務(wù)代碼的分離。DAO出現(xiàn)后,所有與數(shù)據(jù)庫相關(guān)的操作全被拿到了DAO層實現(xiàn),Servlet或JSP只操作Java Bean或者DAP層,而DAO層值操作數(shù)據(jù)庫。

周末的深夜,呆在辦公室準(zhǔn)備明天的JAVA網(wǎng)站開發(fā)實訓(xùn),不同的是,這次有學(xué)生陪伴。各行各業(yè)都很辛苦,996和5+2讓我們更珍惜生活,學(xué)生也更應(yīng)該抓住編程的時光。看到學(xué)生開始學(xué)會分享博客、分享知識,真的很高興,又拉了一些人“入坑”,傳道授業(yè)解惑,為之而努力。
夜色已深,月光打在身上,勾勒出你看書時最美的側(cè)臉,吹滅讀書燈,一身都是月,任是尋常動人,想你了。接著在辦公室寫代碼了,fighting

(By:Eastmount 2019-07-06 夜9點 http://blog.csdn.net/eastmount/)

總結(jié)

以上是生活随笔為你收集整理的[JSP暑假实训] 四.MyEclipse+Servlet+JSP实现火车票网站查询、修改、删除操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 人人干av | 国产国语videosex另类 | 色久综合 | 少女情窦初开的第4集在线观看 | 国产午夜免费福利 | 大波大乳videos巨大 | 无码视频一区二区三区 | 欧美久久激情 | 日韩人妻无码精品久久久不卡 | 青青草五月天 | 亚洲精品成人 | 四季av一区二区三区免费观看 | 亚洲精品无码不卡在线播he | 亚洲社区在线 | 公肉吊粗大爽色翁浪妇视频 | 国产一二区在线观看 | 美女福利视频在线 | 欧美三级午夜理伦三级小说 | 被警察猛c猛男男男 | 尤物自拍| 九九天堂网 | 好吊视频在线观看 | 精品国产一区二区三区噜噜噜 | 午夜爱爱影院 | 国内自拍视频网站 | 成人网视频| 国产视频一二区 | 水蜜桃亚洲精品 | 欧美日韩国产亚洲沙发 | 91黄色小网站 | 高h视频在线免费观看 | 人人妻人人爽欧美成人一区 | 精品无码一区二区三区 | 夜夜春很很躁夜夜躁 | 午夜av免费| 懂色一区二区二区av免费观看 | 亚洲国产97在线精品一区 | 精品国产av色一区二区深夜久久 | 精品一区二区三区免费毛片 | 在线免费观看你懂的 | 亚洲黄色小说视频 | 精品久久久久久无码国产 | 精东影业一区二区三区 | aaa一区二区 | 日本精品视频网站 | 在线日韩三级 | 亚洲国产中文字幕 | 男人桶女人桶爽30分钟 | 久久精品国产99精品国产亚洲性色 | 一区二区亚洲 | 欧美精品一区二区蜜臀亚洲 | 91丝袜呻吟高潮美腿白嫩 | 久久视频一区 | 久久久久国产 | 波多野结衣欧美 | 最新日韩视频 | 狠狠老司机 | 中文字幕观看视频 | 毛片视频大全 | 精品无码人妻一区二区三区 | 最近高清中文在线字幕在线观看 | 亚洲 小说 欧美 激情 另类 | 69sex久久精品国产麻豆 | 成人av无码一区二区三区 | 一区福利视频 | 国产精品毛片久久久久久 | 亚洲一区二区视频在线播放 | 国产一区视频免费观看 | 非洲一级黄色片 | 欧美xxxx888| 一本加勒比北条麻妃 | 亚洲中文字幕在线观看 | 巨乳美女动漫 | 秋霞三区 | 男人干女人视频 | 日本xxxx裸体xxxx | 秋霞午夜伦理 | 亚洲精品久久久久久 | 色臀| 国产精品嫩草69影院 | 国产一区二区在线免费观看 | 五月天精品视频 | 亚洲天堂国产精品 | 国产一二三区在线视频 | 韩日在线视频 | 中文字幕乱码无码人妻系列蜜桃 | 亚洲色图激情 | 4438色| 福利一区在线观看 | 国产精品久久亚洲 | 特级西西444www高清大视频 | 日韩欧美亚洲国产精品字幕久久久 | 国产高潮av | 前任攻略在线观看免费完整版 | 黄色片在哪里看 | 永久免费毛片 | 怡红院成人影院 | 国产欧美日韩综合精品一区二区三区 | 国产成人一区二区三区免费看 |