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

首頁 > 編程 > JSP > 正文

JSP+JavaBean+Servlet工作原理實例講解

2024-09-05 00:20:34
字體:
來源:轉載
供稿:網友

  jsp+javabean兩層結構的開發應該是比較熟悉的,也比較好理解。

  但是有一點必須要清楚就是用戶通過瀏覽器來發送網頁的請求,此請求到達服務器后在服務器端查找對應的網頁,如果是首次請求(第二次就不用解釋執行了),對于jsp來說要生成servlet,然后通過servlet引擎來執行servlet,把調用javabean的結果嵌入到頁面中返回給用戶的瀏覽器。

  jsp+javabean+servlet三層結構的實質是多了一個controller:servlet來分發客戶端瀏覽器的請求。如果把起控制器作用的servlet的作用理解為對客戶端的請求進行預處理對理解servlet將有很大的幫助。通過web.xml配置文件可以找到用戶請求和特定的servlet的對應關系,每個servlet都有一個特定的servlet對象與之對應,所以說處理用戶請求的就是一個繼承自httpservlet的servlet對象。

<!-- jspc servlet mappings start -->
  <servlet>
    <servlet-name>ms1</servlet-name>
    <servlet-class>news.firstaction</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>ms2</servlet-name>
    <servlet-class>news.detailaction</servlet-class>
  </servlet>
<!-- jspc servlet mappings end -->
  <servlet-mapping>
    <servlet-name>ms1</servlet-name>
    <url-pattern>/newsmain</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>ms2</servlet-name>
    <url-pattern>/newsdetail</url-pattern>
  </servlet-mapping>

  如上面所示的摘自web.xml的一段配置servlet,第一部分主要用來配置servlet與具體的servlet對象關聯,第二部分主要用來配置請求由哪個servlet處理,servlet名字的關聯,處理請求就與具體servlet處理對象關聯起來,比如說,客戶端瀏覽器發來/newsmain的請求,它由ms1 servlet進行處理,通過ms1就能找到相對應的serlet對象news.firstaction,即/newsmain->ms1->news.firstaction,這也就是配置文件的意義所在。到現在懂得了用戶/newsmain請求會被news.firstaction類的對象進行處理,所以說,要看懂程序就要看懂firstaction的作用是什么就行了。比如說下面是firstaction的一個實現。

public final class firstaction extends httpservlet {
protected void service(httpservletrequest req, httpservletresponse resp)
  throws servletexception, ioexception {
 db db = new db();
 httpsession session = req.getsession();
 try {
  session.setattribute(constants.news_list_key, news
   .searchnewstitle(db));
 } catch (exception e) {
  e.printstacktrace();
 }
 db.close();
 string target = "/p43_news/newsmain.jsp";
 resp.sendredirect(target);
}
}

  通過這個實現可以看到,當服務器收到客戶端請求執行news.searchnewstitle(db)的操作,然后把返回值通過session.setattribute放到session里,然后通過resp.sendredirect(target)間接轉移到newsmain.jsp,這樣在newsmain.jsp里通過session.getattribute函數就可以得到在存儲在session里的對應值。

  回過頭來就容易看出jsp+javabean兩層結構和jsp+javabean+servlet三層結構的不同了,兩層結構必須把預處理放在jsp中進行,比如說news.searchnewstitle(db),三層結構先把預處理在servlet里進行了,然后相當于把這個處理結果通過session返回給jsp,讓jsp更關注于界面的顯示。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桂东县| 翁牛特旗| 横山县| 罗源县| 息烽县| 禄丰县| 安新县| 遂溪县| 大姚县| 牡丹江市| 织金县| 左权县| 通化市| 固阳县| 晋城| 文安县| 黔南| 于田县| 沙湾县| 陆河县| 大余县| 建瓯市| 漾濞| 邵武市| 水城县| 呼伦贝尔市| 丘北县| 抚顺县| 千阳县| 古交市| 福安市| 垫江县| 澜沧| 绥德县| 石渠县| 梅州市| 满洲里市| 竹北市| 桂阳县| 新源县| 庆云县|