最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談servlet與jsp的關(guān)系

 更新時(shí)間:2017年02月23日 09:10:21   作者:52Hz  
本文主要介紹了servlet與jsp的相關(guān)知識(shí),并總結(jié)出servlet與jsp之間的關(guān)系,具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧

servlet是用java語(yǔ)言編寫(xiě)的,是一個(gè)java類(lèi)。主要功能是用來(lái)接受、處理客戶端的請(qǐng)求,并把處理結(jié)果返回到客戶端顯示。Jsp是servlet發(fā)展后期的產(chǎn)物。在沒(méi)有jsp之前,servlet利用輸出流動(dòng)態(tài)生成整個(gè)HTML頁(yè)面,輸出內(nèi)容包括每一個(gè)HTML標(biāo)簽和每個(gè)在HTML頁(yè)面中出現(xiàn)的內(nèi)容。HTML文件包含大量標(biāo)簽和大量靜態(tài)文本及格式等,以及所有的表現(xiàn)邏輯,包括布局、色彩及圖像等。這些內(nèi)容都必須耦合在java代碼中,這樣就導(dǎo)致servlet開(kāi)發(fā)效率低下,令人不勝其煩。jsp出現(xiàn)后彌補(bǔ)了不足,因?yàn)閖sp文件是通過(guò)在標(biāo)準(zhǔn)的HTML頁(yè)面中插入java代碼形成的。其靜態(tài)的部分無(wú)需java程序控制,只有那些需要從數(shù)據(jù)庫(kù)讀取并根據(jù)程序動(dòng)態(tài)生成信息時(shí),才使用java腳本控制。所以jsp技術(shù)出現(xiàn)后,主要用jsp文件來(lái)動(dòng)態(tài)生成HTML文件,然后返回客戶端顯示?,F(xiàn)在的servlet,當(dāng)需要將整個(gè)頁(yè)面作為結(jié)果返回時(shí),不再由其自己去處理,而是調(diào)用jsp文件。

下面開(kāi)發(fā)部署一個(gè)簡(jiǎn)單的servlet程序來(lái)展示:

1.創(chuàng)建處理請(qǐng)求的servlet文件:

package com.servlet.study;
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 HelloWorldServlet extends HttpServlet {
  @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    super.doGet(req, resp);
  }
  @Override
  protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    resp.setContentType("text/html;charset=UTF-8");
    req.setCharacterEncoding("UTF-8");
    String userName = req.getParameter("username");
    String passWord = req.getParameter("password");
    PrintWriter out = resp.getWriter();
    out.print("<html>");
    out.print("<head>");
    out.print("<title>Helloworld</title>");
    out.print("</head>");
    out.print("<body>");
    out.print("<hr>");
    out.println("The username is "+userName);
    out.println("The password is "+passWord);
    out.print("</body>");
    out.print("</html>");
  }
}

2.創(chuàng)建HTML文件:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用戶登錄頁(yè)面</title>
</head>
<body>
<h1 align="center">登錄系統(tǒng)</h1><hr>
<form action="helloworld_servlet" method = "post">//表單的action其實(shí)指明了servlet的url                
  <table>
    <tr>
      <td>用戶名</td>
      <td><input type="text" name="username"></td>
    </tr>
    <tr>
      <td>密碼</td>
      <td><input type="password" name="password"></td>
    </tr>
    <tr>
      <td><input type="reset" value="重填"></td>
      <td><input type="submit" value="提交"></td>
    </tr>
  </table>
</form>
</body>
</html>

3.在web.xml中配置servlet:

<servlet>
    <servlet-name>HelloWorldServlet</servlet-name>
    <servlet-class>com.servlet.study.HelloWorldServlet</servlet-class>//實(shí)現(xiàn)類(lèi)4</servlet>
  <servlet-mapping>//映射
    <servlet-name>HelloWorldServlet</servlet-name>
    <url-pattern>/helloworld_servlet</url-pattern>//“/”是必須的
  </servlet-mapping>

 注:]servlet類(lèi)必須繼承HttpServlet類(lèi),而且得重寫(xiě)doGet、doPost方法,并創(chuàng)建out對(duì)象。doGet方法是HttpServlet類(lèi)中處理get請(qǐng)求的方法,doPost處理post請(qǐng)求。在表單中聲明method,并在servlet類(lèi)中編寫(xiě)相對(duì)應(yīng)方法即可,本例特為post請(qǐng)求。

以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!

相關(guān)文章

  • Flutter實(shí)現(xiàn)容器組件、圖片組件 的代碼

    Flutter實(shí)現(xiàn)容器組件、圖片組件 的代碼

    容器組件(Container)可以理解為在Android中的RelativeLayout或LinearLayout等,在其中你可以放置你想布局的元素控件,從而形成最終你想要的頁(yè)面布局。這篇文章主要介紹了Flutter實(shí)現(xiàn)容器組件、圖片組件 的代碼,需要的朋友可以參考下
    2019-07-07
  • slf4j使用log4j的配置參數(shù)方式

    slf4j使用log4j的配置參數(shù)方式

    這篇文章主要介紹了slf4j使用log4j的配置參數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • JeecgBoot框架升級(jí)至Spring?Boot3的實(shí)戰(zhàn)步驟

    JeecgBoot框架升級(jí)至Spring?Boot3的實(shí)戰(zhàn)步驟

    本文主要介紹了JeecgBoot框架升級(jí)至Spring?Boot3的實(shí)戰(zhàn)步驟,從?2.7.10升級(jí)到3.1.5有以下幾個(gè)點(diǎn)需要注意,下面就來(lái)詳細(xì)的介紹一下,感興趣的可以了解一下
    2024-04-04
  • JavaEE中volatile、wait和notify詳解

    JavaEE中volatile、wait和notify詳解

    這篇文章主要給大家介紹了關(guān)于JavaEE中volatile、wait和notify的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-02-02
  • nexus私服啟動(dòng)不了問(wèn)題及解決

    nexus私服啟動(dòng)不了問(wèn)題及解決

    這篇文章主要介紹了nexus私服啟動(dòng)不了問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 詳解SpringBoot結(jié)合swagger2快速生成簡(jiǎn)單的接口文檔

    詳解SpringBoot結(jié)合swagger2快速生成簡(jiǎn)單的接口文檔

    這篇文章主要介紹了詳解SpringBoot結(jié)合swagger2快速生成簡(jiǎn)單的接口文檔,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-05-05
  • MAC下如何設(shè)置JDK環(huán)境變量

    MAC下如何設(shè)置JDK環(huán)境變量

    這篇文章主要介紹了MAC下如何設(shè)置JDK環(huán)境變量問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Java程序?qū)崿F(xiàn)導(dǎo)出Excel的方法(支持IE低版本)

    Java程序?qū)崿F(xiàn)導(dǎo)出Excel的方法(支持IE低版本)

    下面小編就為大家?guī)?lái)一篇Java程序?qū)崿F(xiàn)導(dǎo)出Excel的方法(支持IE低版本)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-07
  • @Scheduled fixedDelayString 加載properties配置方式

    @Scheduled fixedDelayString 加載properties配置方式

    這篇文章主要介紹了@Scheduled fixedDelayString 加載properties配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java中while循環(huán)的使用方法舉例詳解

    Java中while循環(huán)的使用方法舉例詳解

    在Java編程語(yǔ)言中,while循環(huán)是基礎(chǔ)控制結(jié)構(gòu)之一,用于重復(fù)執(zhí)行代碼塊直至滿足特定條件,掌握其使用是編程的基礎(chǔ),文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-09-09

最新評(píng)論

涟源市| 和顺县| 潮安县| 鄯善县| 连平县| 开原市| 合肥市| 浦江县| 武义县| 宁城县| 镶黄旗| 介休市| 岳普湖县| 宁河县| 平利县| 武鸣县| 垦利县| 大足县| 鄂州市| 南城县| 金川县| 蓝山县| 霍林郭勒市| 文水县| 木里| 金昌市| 福州市| 民丰县| 灵璧县| 乌苏市| 玉山县| 偏关县| 镇安县| 宁安市| 平果县| 延吉市| 连南| 全州县| 新疆| 长乐市| 拉萨市|