国产探花免费观看_亚洲丰满少妇自慰呻吟_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更關注于界面的顯示。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 九龙坡区| 福海县| 东光县| 尼勒克县| 布尔津县| 和田县| 阿瓦提县| 阜新| 阿拉善左旗| 阜新市| 柘荣县| 新晃| 卫辉市| 略阳县| 封丘县| 南投市| 柳州市| 萨嘎县| 扎赉特旗| 岐山县| 甘泉县| 牡丹江市| 马尔康县| 法库县| 旌德县| 永春县| 建瓯市| 陆川县| 长沙市| 桃江县| 明溪县| 陇西县| 云南省| 郎溪县| 蒲江县| 通化市| 曲沃县| 芜湖市| 姜堰市| 五河县| 肃北|