亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

JSP使用JDBC完成動態驗證及采用MVC完成數據查詢的方法

2020-07-27 21:31:06
字體:
來源:轉載
供稿:網友

本文實例講述了JSP使用JDBC完成動態驗證及采用MVC完成數據查詢的方法。分享給大家供大家參考。具體如下:

一、目標:

① 掌握JDBC鏈接數據庫的基本過程;
② 掌握使用JDBC進行數據查詢。

二、主要內容:

① 在上一次的實例基礎上,通過連接數據庫完成用戶登錄功能,介紹JDBC的基本用法;
② 通過顯示所有用戶信息進一步介紹JDBC的用法和查詢結果的處理。

1、JDBC概念

Java Database Connectivity的縮寫,用于連接Java應用程序與各種關系數據庫的標準接口。對于編程人員來說,連接任何數據庫都是相同的。

2、要使用JDBC開發應用需要哪些準備工作?

安裝數據庫,包括數據庫表的創建;
根據數據庫的類型,得到數據庫的JDBC驅動程序,不同的數據庫管理系統需要不同的JDBC驅動程序,并且不同版本的數據庫管理系統需要的驅動程序有可能不同的;這里使用Oracle數據庫,驅動程序需要放在WEB-INF/lib下面。
數據庫的相關信息:數據庫的IP地址,服務的端口號,數據庫的名字,連接數據庫的用戶名和密碼。

3、 舉例:使用數據庫對用戶登錄信息進行驗證。

需要修改User.java中驗證用戶信息的方法。

1)在類的前面增加了一個import語句:

復制代碼 代碼如下:
import java.sql.*;

2)增加的后的check方法如下:

public boolean check(){/*   if(username==null || userpass==null)     return false;   if(username.equals("zhangsan") && userpass.equals("lisi"))   {     return true;   }else{     return false;   }*/   Connection con = null;   Statement stmt = null;   ResultSet rs = null;   boolean b = true;   try{     // 指出連接數據庫所需要的驅動程序     Class.forName("oracle.jdbc.driver.OracleDriver");    // 建立與數據庫之間的連接// myserver修改為數據庫服務器IP,mydb為數據庫名    con = DriverManager.getConnection("jdbc:oracle:thin:@myserver:1521:mydb","scott","tiger");    // 編寫查詢數據庫信息的SQL語句    String sql="select * from usertable where username='"+username+"' and userpass='"+userpass+"'";    System.err.println(sql);    // 創建語句對象,用于執行SQL語句    stmt = con.createStatement();    // 執行SQL語句得到結果集    rs = stmt.executeQuery(sql);       // 判斷rs中是否有數據    if(rs.next())     b = true;    else     b = false;   }catch(Exception e){     System.out.println(e.getMessage());   }   finally{    // 關閉相關對象    if(rs!=null) try{ rs.close(); }catch(Exception ee){}    if(stmt!=null) try{ stmt.close(); }catch(Exception ee){}    if(con!=null) try{ con.close(); }catch(Exception ee){}   }   return b;}

4、運行測試

可以使用數據庫中的用戶名和口令進行登錄。

5、向頁面傳遞查詢結果

很多時候,客戶端需要從服務器端得到數據并顯示,因為數據的查詢是由JavaBean完成的,對JavaBean的調用是通過Servlet完成的,Servlet中可以得到查詢的結果,但是顯示信息是由JSP頁面完成的,如何把Servlet中查詢的信息傳遞給JSP頁面呢?

前面介紹過可以通過request、session和application傳遞信息,因為可以讓Servlet和JSP處于相同的請求,所以3個對象都可以使用。但是因為session和application的保存時間比較長,容易造成服務器資源的浪費,所以通常采用request存儲。

下面通過查詢并顯示所有信息的功能來介紹具體用法。需要完成的工作如下:

① 在User.java中添加查詢所有用戶信息的方法;
② 編寫查詢所有用戶信息的控制器;
③ 編寫顯示信息的JSP頁面。

6、 在User.java中添加方法

查詢所有用戶信息的方法如下:

public ArrayList getAllUser(){   Connection con = null;   Statement stmt = null;   ResultSet rs = null;   ArrayList users = new ArrayList();   try{    // 指出連接數據庫所需要的驅動程序    Class.forName("oracle.jdbc.driver.OracleDriver");    // 建立與數據庫之間的連接    con = DriverManager.getConnection("jdbc:oracle:thin:@myserver:1521:mydb","scott","tiger");    // 編寫查詢數據庫信息的SQL語句    String sql="select * from usertable";    // 創建語句對象,用于執行SQL語句    stmt = con.createStatement();    // 執行SQL語句得到結果集    rs = stmt.executeQuery(sql);       // 遍歷結果集    while(rs.next())    {      String username = rs.getString(1);      String userpass = rs.getString(2);      // java.util.Date birthday = rs.getDate(3);      // int age = rs.getInt(4);      User user = new User();      user.setUsername(username);      user.setUserpass(userpass);      users.add(user);    }   }catch(Exception e){     System.out.println(e.getMessage());   }   finally{    // 關閉相關對象    if(rs!=null) try{ rs.close(); }catch(Exception ee){}    if(stmt!=null) try{ stmt.close(); }catch(Exception ee){}    if(con!=null) try{ con.close(); }catch(Exception ee){}   }      return users;}

需要在類的前面引入java.util包,代碼如下:

復制代碼 代碼如下:
import java.util.*;

7、 編寫控制器

代碼如下:

package servlet;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;import javabean.*;import java.util.*;public class GetAllUser extends HttpServlet{  public void doGet(HttpServletRequest request,HttpServletResponse response)  throws IOException,ServletException  {   // 第一步:獲取用戶的輸入信息,這里不需要   // 第二步:調用JavaBean   User user = new User();   ArrayList users=null;   users = user.getAllUser();   // 第三步:傳值   request.setAttribute("users",users);   // 第四步:選擇一個界面對用戶進行響應   String forward="userlist.jsp";   RequestDispatcher rd = request.getRequestDispatcher(forward);   rd.forward(request,response);  }  public void doPost(HttpServletRequest request,HttpServletResponse response)  throws IOException,ServletException  {   doGet(request,response);  }}

這里假設使用userlist.jsp對用戶進行響應。

8、 配置控制器

在Web.xml中添加如下代碼:

  <servlet>   <servlet-name>getAllUser</servlet-name>   <servlet-class>servlet.GetAllUser</servlet-class>  </servlet>  <servlet-mapping>   <servlet-name>getAllUser</servlet-name>   <url-pattern>/getAllUser</url-pattern>  </servlet-mapping>

9、 編寫userlist.jsp響應

<%@ page contentType="text/html;charset=gb2312"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><c:forEach var="user" items="${users}">  用戶名:${user.username} 口令:${user.userpass} <br></c:forEach>

這里的c:forEach標簽用于循環處理,items指出循環遍歷的集合,var聲明循環變量,表示集合中的一個元素。循環體中通過表達式語言顯示用戶信息。

10、運行測試

http://127.0.0.1:8080/ch7/getAllUser

希望本文所述對大家的JSP程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97视频com| 久久99热精品这里久久精品| 这里精品视频免费| 精品性高朝久久久久久久| 精品国产31久久久久久| 欧美极品少妇xxxxⅹ裸体艺术| 社区色欧美激情 | 91sao在线观看国产| 91精品久久久久久久| 成人免费黄色网| 久久夜色精品国产亚洲aⅴ| 欧美中在线观看| 国产精品日日做人人爱| 亚洲国产一区自拍| 日韩在线视频免费观看高清中文| 欧美在线视频观看免费网站| 国产成人精品亚洲精品| 国产婷婷成人久久av免费高清| 欧美精品免费播放| 国产香蕉一区二区三区在线视频| 久久91亚洲精品中文字幕奶水| 伊人久久综合97精品| 久久久精品久久久| 九色成人免费视频| 成人性教育视频在线观看| 国产欧美亚洲精品| 欧美亚洲激情在线| 国产成人精品一区二区在线| 国产有码一区二区| 日韩美女在线看| 日韩精品一区二区视频| 自拍偷拍亚洲欧美| 国产成人精品在线视频| 国产精品xxx视频| 7m精品福利视频导航| 欧美激情一区二区三区成人| 日韩亚洲国产中文字幕| 国产精品久久久999| 欧美精品手机在线| 国产精品久久久久久久久久久新郎| 亚洲一区二区免费在线| 原创国产精品91| 国产日韩欧美中文在线播放| 精品国产91久久久久久老师| 久久手机精品视频| 成人黄色免费在线观看| 欧美午夜影院在线视频| 日韩视频在线观看免费| 亚洲a级在线观看| 91精品视频观看| 色777狠狠综合秋免鲁丝| 91色在线观看| 国产成人精品亚洲精品| 亚洲跨种族黑人xxx| 亚洲经典中文字幕| 91亚洲永久免费精品| 亚洲精品一区二区三区婷婷月| 秋霞午夜一区二区| 国产欧美 在线欧美| 综合久久五月天| 国产精品va在线| 亚洲欧美另类国产| 青草青草久热精品视频在线观看| 久久久免费高清电视剧观看| 亚洲精品久久久久中文字幕二区| 欧美成人激情视频| 一本色道久久综合狠狠躁篇怎么玩| 亚洲欧美日韩久久久久久| 亚洲女人被黑人巨大进入al| 日本精品视频在线| 欧美午夜片欧美片在线观看| 日韩www在线| 亚洲剧情一区二区| 日韩成人在线视频观看| www.久久久久| 亚洲最新中文字幕| 欧美亚洲日本黄色| 大桥未久av一区二区三区| 热re99久久精品国产66热| 国产精品综合久久久| 亚洲在线视频福利| 久久精品国产成人精品| 久久久久久久一| 日韩高清不卡av| 久久香蕉频线观| 欧美激情奇米色| 国产精品免费看久久久香蕉| 亚洲奶大毛多的老太婆| 理论片在线不卡免费观看| 日韩精品高清在线观看| 国产精品久久久久久久久男| 国产精品丝袜久久久久久不卡| 一区二区三区亚洲| 欧美日韩激情视频| 懂色av影视一区二区三区| 日韩禁在线播放| 国产999精品| 亚洲人免费视频| 亚洲一区亚洲二区亚洲三区| 日韩av综合中文字幕| 2023亚洲男人天堂| 欧美成人在线免费| xvideos国产精品| 日韩中文字幕视频在线观看| 91系列在线播放| 尤物99国产成人精品视频| 久久久久久久久久久av| 国产精品高潮在线| 日产日韩在线亚洲欧美| 国产极品精品在线观看| 欧美成人在线影院| 国产精品美女呻吟| 久久精品电影一区二区| 国产精品av在线| 欧美激情久久久| 欧洲午夜精品久久久| 在线精品国产欧美| 欧美一级淫片播放口| 亚洲国产中文字幕在线观看| 国产69久久精品成人| 亚洲欧美中文日韩在线v日本| 一区二区三区视频观看| 国产精品国产三级国产aⅴ浪潮| 精品亚洲一区二区三区四区五区| 成人有码在线视频| 在线电影欧美日韩一区二区私密| 欧美电影《睫毛膏》| 91精品国产91久久久| 国产综合视频在线观看| 欧美精品18videos性欧美| 日韩经典第一页| 欧美在线视频观看| 国产精品一区二区久久精品| 亚洲人成欧美中文字幕| 国产自产女人91一区在线观看| 国产精品亚洲第一区| 国产精品精品视频一区二区三区| 亚洲福利视频久久| 日韩精品中文在线观看| 久久精品视频中文字幕| 国产中文欧美精品| 伊人伊人伊人久久| 91网在线免费观看| 96精品视频在线| yw.139尤物在线精品视频| 亚洲女在线观看| 97久久超碰福利国产精品…| 91高潮精品免费porn| 欧美电影免费观看| 欧美精品在线免费观看| 成人黄色免费看| 国产精品免费一区豆花| 在线观看日韩欧美| 国产成人涩涩涩视频在线观看| 蜜臀久久99精品久久久久久宅男| 日韩欧美黄色动漫| 狠狠久久五月精品中文字幕| 国产精品精品久久久久久| 欧美日韩美女在线| 欧美最猛性xxxx| 国产精品第3页| 久久人人爽亚洲精品天堂| 久久深夜福利免费观看| 国产成人精品一区二区在线|