国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

利用Servlet開發企業級三層Web應用(二) 實現中間層

2019-11-18 14:59:09
字體:
來源:轉載
供稿:網友
利用Servlet開發企業級三層Web應用(二)

黃微、申剛玉

  3.實現中間層

  下面以BookServlet為例,說明如何實現中間層的Servlet。

  (1)初始化Servlet

   public class BookServlet extends HttpServlet {

   PRotected Connection dbConnection;

   protected PrepareStatement readQuery;

   protected PrepareStatement writeQuery;

   protected String dbName=″jdbc:odbc:BookDatabase″;

   protected String bookName;

   protected String bookISBN;

   public void init(ServletConfig config) throws ServletExecption

   {

   try {

  Class.forName(″sun.jdbc.odbc.JdbcOdbcDriver″);

   dbConnection=DriverManager.getConnection(dbName,″″,″″);

   }

   catch(Exception e)

   {

   System.out.println(″Can not initialize database″);

   }

  }

  Servlet的init()函數在Servlet被初次激活時進行調用,對于BookServlet,在init()中我們創建其與圖書數據庫的連接(當然應該已經在ODBC中定義BookDatabase),這里使用的是java JDBC API中的Connection對象。

  (2)實現service()操作

  當客戶端向Servlet進行請求時,Servlet的service()函數被調用,在service()中我們應該實現中間層的所有功能。

  public void service(HttpServletRequest request,HttpServletResponse reponse)

   throws ServletException,IOException

  {

   bookName=request.getParameter(″BookName″);

   bookISBN=request.getParameter(″BookISBN″);

   if (bookName==null && bookISBN==null)

   doQueryBook(request,reponse);

   else doNewBook(request,reponse);

  }

  首先,我們通過參數HttpServletRequest取得客戶端的輸入參數,這些參數是用戶在Html頁面中的編輯框中輸入的,然后我們根據用戶的需要進行庫查詢或庫更新的操作。

  ◆查詢數據庫信息并向瀏覽器返回結果頁面

  查詢數據庫信息首先應該根據查詢條件,構建一個SQL語句(本例僅簡單地返回所有記錄),然后設置PrepaerStatement對象,通過運行其executeQuery()向后臺數據庫服務器請求結果。取得查詢結果后,Servlet通過HTTPServletResponse生成一個結果HTML頁面返回給瀏覽器。

  public void doQueryBook(HttpServletRequest request,HttpServletResponse reponse)

  {

   try {

   readQuery=dbConnection.prepareStatement(

  ″SELECT?FROM BOOKTABLE″);

   String htmlHead=″〈html〉〈head〉〈title〉查詢結果〈/title〉〈/head〉″;

   String htmlBody=″〈body〉″+;

   ResultSet readResult=readQuery.executeQuery();

   while(readSet.next())

   {

   String Name=readResult.getString(″BookName″);

   String ISBN=readResult.getString(″ISBN″);

   htmlBody+=Name+″ ″+ISBN+″″;

   }

   htmlBody+=″〈/body〉″+〈/html〉″

   PrintWriter output=new PrinterWrite(response.getOutputStream());

   response.setContentType(″text/html″);

   output.println(htmlHead+htmlBody+htmlTail);

   }

   catch(Exception e)

   { … … … }

  }

  ◆將數據寫入數據庫

  將數據寫入數據庫的過程與查詢類似,也是先構建一個SQL語句,對于本例來說,其寫入的SQL語句為:

  String writeSql=″INSERT INTO BookTable (BookName,ISBN) Values(″+bookName+″,″+bookISBN+″)″;

  然后調用PrepareStatement::executeUpdate();

  4.利用Servlet實現中間層的進一步討論

  通過上面的圖書治理的例子,可以看出利用Servlet技術實現中間層是十分方便的,其操作過程類似于CGI編寫的



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安达市| 健康| 嵊泗县| 连云港市| 新乡县| 自贡市| 于田县| 龙井市| 剑川县| 图木舒克市| 阳高县| 莲花县| 凌源市| 台东县| 宁南县| 将乐县| 互助| 奉新县| 丰都县| 昌黎县| 全州县| 广东省| 辛集市| 溧阳市| 兴国县| 上杭县| 民勤县| 武定县| 博客| 尚志市| 北辰区| 宜君县| 宝坻区| 凤翔县| 永善县| 右玉县| 福安市| 峡江县| 秭归县| 彩票| 芜湖县|