国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

servlet介紹和如何在idea中寫一個(gè)servlet程序

這篇具有很好參考價(jià)值的文章主要介紹了servlet介紹和如何在idea中寫一個(gè)servlet程序。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1. Servlet

1.1 Servlet簡介

Servlet(Server Applet)是Java Servlet的簡稱,稱為小服務(wù)程序或服務(wù)連接器,用Java編寫的服務(wù)器端程序,具有獨(dú)立于平臺(tái)和協(xié)議的特性,主要功能在于交互式地瀏覽和生成數(shù)據(jù),生成動(dòng)態(tài)Web內(nèi)容。

  • 把實(shí)現(xiàn)了Sun公司開發(fā)的Servlet接口的java程序叫做Servlet

1.2 第一個(gè)Servlet程序

  1. 構(gòu)建一個(gè)普通的Maven項(xiàng)目(可以刪除src目錄,方便都會(huì)創(chuàng)建子項(xiàng)目)(具體如何構(gòu)建看我上一篇文章)

  2. Maven添加jsp,servlet依賴--

    • 去官網(wǎng) Maven Repository: Search/Browse/Explore (mvnrepository.com)搜索Java Servlet API找到對(duì)應(yīng)版本復(fù)制Maven依賴代碼如:

      <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
      <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>javax.servlet-api</artifactId>
          <version>4.0.1</version>
          <scope>provided</scope>
      </dependency>
      
      • 復(fù)制到maven項(xiàng)目中pom.xml的依賴模塊中如:

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>
        

        刷新項(xiàng)目導(dǎo)入依賴

    • 同理到官網(wǎng)找到j(luò)sp的依賴JavaServer Pages(TM) API導(dǎo)入

  3. 創(chuàng)建一個(gè)子模塊(Maven的web項(xiàng)目)

    • 父項(xiàng)目中(pom.xml):

      <modules>
          <module>SonMaven</module>
      </modules>
      
      • 子項(xiàng)目中(pom.xml):

        <parent>
            <artifactId>javaweb</artifactId>
            <groupId>org.example</groupId>
            <version>1.0-SNAPSHOT</version>
        </parent>
        
        • 子項(xiàng)目可以直接使用父項(xiàng)目的jar包,就是java的exntend
  4. 給子項(xiàng)目中的webapp/WEN-INF/web.xml換成最新的,否則以后可能某些東西無法創(chuàng)建

? 可以參考如:

```xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0"
         metadata-complete="true">
 
</web-app>
```
  1. 最好在main中創(chuàng)建一個(gè)java 一個(gè)resources文件夾符合maven規(guī)范以后有用

servlet介紹和如何在idea中寫一個(gè)servlet程序

  1. java文件夾中創(chuàng)建servlet文件

    • 創(chuàng)建一個(gè)普通java類

    • 實(shí)現(xiàn)servlet接口,我們一般直接通過繼承HttpServlet實(shí)現(xiàn)

    • servlet接口的另外一個(gè)實(shí)現(xiàn)類是GenericServlet,實(shí)際上是GenericServlet實(shí)現(xiàn)了Servlet,而HttpServlet繼承GenericServlet

    • servlet接口有一些方法,GenericServlet相對(duì)幾乎沒變,而HttpServle則多了許多方法其中doGet和doPost方法比較重要

      void init(ServletConfig var1) throws ServletException;
      
      ServletConfig getServletConfig();
      
      void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;
      
      String getServletInfo();
      
      void destroy();
      
    • 重寫HttpServlet的doGet和doPost方法(當(dāng)然其他方法也可以但是目前用不到)

      public class MyFirstServlet  extends HttpServlet {
      //    由于get和post這是請(qǐng)求實(shí)現(xiàn)的不同方式,可以相互調(diào)用邏輯都一樣
          @Override
          protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      //        自己寫的
              PrintWriter writer = resp.getWriter();//響應(yīng)流
              writer.print("Hello,Serlvlet");
          }
      
      
          @Override
          protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
              super.doPost(req, resp);
          }
      }
      
  2. 編寫Servlet的映射

    為什么需要映射:我們寫的是Java程序但是需要通過瀏覽器訪問,而瀏覽器需要連接web服務(wù)器,使用需要再web服務(wù)中注冊(cè)我們寫的Servlet,還需要一個(gè)瀏覽器訪問路徑

    配置到web.xml中,如:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
             version="4.0"
             metadata-complete="true">
    <!--注冊(cè)servlet-->
        <servlet>
            <servlet-name>hello</servlet-name>
    <!--        剛才寫的serverlet位置相對(duì)于java文件夾-->
            <servlet-class>MyFirstServlet</servlet-class>
        </servlet>
    <!--    servlet的請(qǐng)求路徑-->
        <servlet-mapping>
            <servlet-name>hello</servlet-name>
    <!--        瀏覽器查看的url-->
            <url-pattern>/hello</url-pattern>
        </servlet-mapping>
    </web-app>
    
  3. 配置Tomcat

    之前寫過,不再贅述,只是強(qiáng)調(diào)一個(gè)出現(xiàn)的問題:tomcat部署時(shí)沒有自己需要部署的項(xiàng)目:

    中deployment點(diǎn)擊加號(hào)沒有出現(xiàn)artifact

    Tomcat是一個(gè)開源的Java Servlet容器,用于運(yùn)行JavaWeb應(yīng)用程序。在部署應(yīng)用程序之前,需要在Tomcat中進(jìn)行相關(guān)的配置。 部署應(yīng)用程序的最常見方式是將應(yīng)用程序打成.war包。

? 通過這篇文章解決大概之后刷新maven后,成功出現(xiàn)

servlet介紹和如何在idea中寫一個(gè)servlet程序

  1. 運(yùn)行測試:

    這個(gè)頁面出自index.jsp是主項(xiàng)目默認(rèn)頁面,如果沒有servlet覆蓋主路徑,默認(rèn)主路徑顯示這個(gè)。我們后面細(xì)說

    servlet介紹和如何在idea中寫一個(gè)servlet程序

? 這是我們?cè)趙eb.xml 中配置的瀏覽器訪問路徑

servlet介紹和如何在idea中寫一個(gè)servlet程序

1.3 Servlet原理

  • Servlet是由web服務(wù)器調(diào)用,當(dāng)Web服務(wù)器接收到一個(gè)瀏覽器的請(qǐng)求時(shí),它會(huì)先判斷請(qǐng)求內(nèi)容——如果是靜態(tài)網(wǎng)頁數(shù)據(jù),Web服務(wù)器將會(huì)自行處理,然后產(chǎn)生響應(yīng)信息;如果牽涉到動(dòng)態(tài)數(shù)據(jù),Web服務(wù)器會(huì)將請(qǐng)求轉(zhuǎn)交給Servlet容器。此時(shí)Servlet容器會(huì)找到對(duì)應(yīng)的處理該請(qǐng)求的Servlet實(shí)例來處理,結(jié)果會(huì)送回Web服務(wù)器,再由Web服務(wù)器傳回用戶端。

    針對(duì)同一個(gè)Servlet,Servlet容器會(huì)在第一次收到http請(qǐng)求時(shí)建立一個(gè)Servlet實(shí)例,然后啟動(dòng)一個(gè)線程。第二次收到http請(qǐng)求時(shí),Servlet容器無須建立相同的Servlet實(shí)例,而是啟動(dòng)第二個(gè)線程來服務(wù)客戶端請(qǐng)求。所以多線程方式不但可以提高Web應(yīng)用程序的執(zhí)行效率,也可以降低Web服務(wù)器的系統(tǒng)負(fù)擔(dān)。

    參考時(shí)序圖:servlet介紹和如何在idea中寫一個(gè)servlet程序

  1. Web Client 向Servlet容器(Tomcat)發(fā)出Http請(qǐng)求;

  2. Servlet容器接收Web Client的請(qǐng)求;

  3. Servlet容器創(chuàng)建一個(gè)HttpRequest對(duì)象,將Web Client請(qǐng)求的信息封裝到這個(gè)對(duì)象中;

  4. Servlet容器創(chuàng)建一個(gè)HttpResponse對(duì)象;

  5. Servlet容器調(diào)用HttpServlet對(duì)象的service方法,

  6. HttpRequest對(duì)象與HttpResponse對(duì)象作為參數(shù)傳給 HttpServlet對(duì)象;

  7. HttpServlet調(diào)用HttpRequest對(duì)象的有關(guān)方法,獲取Http請(qǐng)求信息;

  8. HttpServlet調(diào)用HttpResponse對(duì)象的有關(guān)方法,生成響應(yīng)數(shù)據(jù);

  9. Servlet容器把HttpServlet的響應(yīng)結(jié)果傳給Web Client;

    上述來自該文章
    鏈接:https://www.jianshu.com/p/7dcd2c689729

1.4 Mapping問題

一個(gè)servlet可以指定一個(gè)、多個(gè)、通用的路徑:

<servlet-mapping>
        <servlet-name>hello</servlet-name>
        //這是一個(gè)路徑,多個(gè)就是多粘貼幾個(gè)<servlet-mapping>每個(gè)給的路徑不同
        <url-pattern>/hello</url-pattern>
    	//通用:  /hello/后面使用的所有路徑都到這個(gè)servlet
    	//<url-pattern>/hello/*</url-pattern>
        //后面這個(gè)的意思是以.aaa結(jié)尾的都可以
    	//<url-pattern>*.aaa</url-pattern>
    </servlet-mapping>

另外當(dāng)出現(xiàn)兩個(gè)servlet路徑重疊的情況,路徑范圍小的優(yōu)先級(jí)高文章來源地址http://www.zghlxwxcb.cn/news/detail-481895.html

到了這里,關(guān)于servlet介紹和如何在idea中寫一個(gè)servlet程序的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 第一個(gè)Servlet程序

    第一個(gè)Servlet程序

    Servlet 是一種實(shí)現(xiàn)動(dòng)態(tài)頁面的技術(shù). 是一組 Tomcat 提供給程序猿的 API, 幫助程序猿簡單高效的開發(fā)一個(gè) web app. 大家需要注意,網(wǎng)頁可以分為兩類: 1.靜態(tài)頁面:網(wǎng)頁內(nèi)容始終固定的頁面 2.動(dòng)態(tài)頁面:用戶不同/時(shí)間不同/輸入?yún)?shù)不同時(shí)頁面的內(nèi)容會(huì)發(fā)生變化 Servlet主要進(jìn)行的工

    2023年04月17日
    瀏覽(23)
  • 第一個(gè) Servlet 程序

    第一個(gè) Servlet 程序

    使用 IDEA 創(chuàng)建一個(gè) Maven 項(xiàng)目. Name:javaservlet2 Location:選擇要存放的路徑 Language:Java Build system:Maven 點(diǎn)擊Create按鈕 依賴包來源: ????dependencies ????????!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -- ????????dependency ????????????groupIdjavax.servlet/groupId ????

    2024年02月01日
    瀏覽(20)
  • 解決 IDEA出現(xiàn) java: 程序包javax.servlet不存在 問題

    解決 IDEA出現(xiàn) java: 程序包javax.servlet不存在 問題

    ? ? ? ? 1.點(diǎn)擊File → Project Strcture 2.轉(zhuǎn)到如下頁面:第一步:點(diǎn)擊Libraries,第二步:點(diǎn)擊+ ? 3.出現(xiàn)New Project Library,點(diǎn)擊Java ? 4.彈出如下頁面:在Tomcat解壓文件夾下選擇lib文件找到servlet-api.jar,點(diǎn)擊ok ? 5.應(yīng)用該包,如圖所示,點(diǎn)擊Apply即可 ?完成以上步驟Tomcat就可以運(yùn)行啦

    2024年02月04日
    瀏覽(18)
  • 創(chuàng)建第一個(gè)Servlet程序“hello world“(創(chuàng)建流程+頁面出錯(cuò)情況)

    創(chuàng)建第一個(gè)Servlet程序“hello world“(創(chuàng)建流程+頁面出錯(cuò)情況)

    目錄 ?? 1. 動(dòng)態(tài)頁面之Servlet ?? 2. 寫第一個(gè)Servlet的程序:\\\"hello world!\\\" ?? 2.1 創(chuàng)建項(xiàng)目 ?? 2.2 引入Servlet依賴 ?? 2.3 創(chuàng)建目錄結(jié)構(gòu) ?? 2.4 編寫代碼? ?? 2.5 打包程序 ?? 2.6 部署程序 ?? 2.7 驗(yàn)證程序 ??3. 創(chuàng)建Servlet流程簡化 ??4. 工作原理流程分析 ??5. 訪問頁面出錯(cuò) HTTP服務(wù)器

    2023年04月11日
    瀏覽(49)
  • 關(guān)于IDEA在寫文件上傳時(shí),找不到j(luò)avax.servlet.http.HttpServletRequest如何解決

    關(guān)于IDEA在寫文件上傳時(shí),找不到j(luò)avax.servlet.http.HttpServletRequest如何解決

    ? ? ? ? 當(dāng)我們?cè)谑褂肐DEA是,發(fā)現(xiàn)需要使用javax.servlet包下類時(shí),IDEA無法識(shí)別類或是方法,會(huì)在控制臺(tái)提示,無法找到j(luò)avax.servlet.http.HttpServletRequest。此時(shí)我們需要按照一下的步驟進(jìn)行導(dǎo)包即可。 1、選中項(xiàng)目所在的Module或工程名,右鍵單擊Open Module Settings或者單擊File——Pro

    2024年02月15日
    瀏覽(25)
  • 【JavaEE】Tomcat的安裝和使用、創(chuàng)建Mevan項(xiàng)目使用Servlet寫一個(gè)程序

    【JavaEE】Tomcat的安裝和使用、創(chuàng)建Mevan項(xiàng)目使用Servlet寫一個(gè)程序

    目錄 前言 一、Tomcat的下載和安裝 二、寫一個(gè)簡單的Servlet項(xiàng)目 1、創(chuàng)建一個(gè)Maven項(xiàng)目 2、引入依賴? 3、創(chuàng)建目錄? ?4、編寫Servlet代碼。 5、打包程序 6、將程序部署到Tomcat上 7、驗(yàn)證程序運(yùn)行結(jié)果 ?三、在IDEA上安裝Smart Tomcat插件 四、Servlet中的一些常見錯(cuò)誤 我我們制作一個(gè)網(wǎng)站

    2024年02月17日
    瀏覽(22)
  • 一個(gè)簡單的前后端交互——登錄注冊(cè)頁面(升級(jí)版)idea代碼篇(2:Maven:Javaweb項(xiàng)目)使用MyBatis:Mapper,servlet+Tomcat

    一個(gè)簡單的前后端交互——登錄注冊(cè)頁面(升級(jí)版)idea代碼篇(2:Maven:Javaweb項(xiàng)目)使用MyBatis:Mapper,servlet+Tomcat

    前言:本篇前后端交互實(shí)現(xiàn)代碼 。詳細(xì)項(xiàng)目搭建見上篇 先貼一張登錄界面和包結(jié)構(gòu): ? 1.Mapper 2.pojo 3.util 4.web 5.Login.html 6.CSS 我的企業(yè)版過期了,不能演示跳轉(zhuǎn)頁面了。但測過沒問題。

    2024年02月11日
    瀏覽(26)
  • 表白墻完善(數(shù)據(jù)庫,前端,后端Servlet),再談Cookie和Session。以及一個(gè)關(guān)于Cookie的練習(xí)小程序

    表白墻完善(數(shù)據(jù)庫,前端,后端Servlet),再談Cookie和Session。以及一個(gè)關(guān)于Cookie的練習(xí)小程序

    目錄 表白墻引入數(shù)據(jù)庫? 再談Cookie和session 得到Cookie ?編輯 設(shè)置Cooie 使用Cookie編寫一個(gè)登入的小界面 1.先引入數(shù)據(jù)庫的依賴(驅(qū)動(dòng)包),5.1.49 pom.xml中,在之前的兩個(gè)之前,再去添加一個(gè) 2.創(chuàng)建本地的數(shù)據(jù)庫 3.之前的代碼中有一段可以刪掉了 這個(gè)代碼需要?jiǎng)h除,因?yàn)槲覀円?/p>

    2024年02月08日
    瀏覽(31)
  • 解決在Intellij IDEA中無法創(chuàng)建Servlet類的問題/New中沒有Servlet類/創(chuàng)建不了Servlet類

    解決在Intellij IDEA中無法創(chuàng)建Servlet類的問題/New中沒有Servlet類/創(chuàng)建不了Servlet類

    ? ? ? ? 新手在學(xué)習(xí)Servlet相關(guān)知識(shí)的時(shí)候, 一些課程往往會(huì)告知新手去使用IDEA自帶的模板來創(chuàng)建Servlet, 這樣減少了注解等麻煩, 降低了工作量. ? ? ? ? 然而, 如下圖所示, 很多人發(fā)現(xiàn)在自己的new一欄不存在Servlet類(如下圖) ? ? ? ? 網(wǎng)上的解決辦法很多都是復(fù)制粘貼之流, 改

    2024年02月08日
    瀏覽(28)
  • IDEA中創(chuàng)建web項(xiàng)目(配置tomcat,tomcat啟動(dòng)報(bào)程序包javax.servlet.http不存在,tomcat控制臺(tái)亂碼問題)

    IDEA中創(chuàng)建web項(xiàng)目(配置tomcat,tomcat啟動(dòng)報(bào)程序包javax.servlet.http不存在,tomcat控制臺(tái)亂碼問題)

    在瀏覽器地址欄輸入: http://localhost:8080/webidea/ 單擊工具欄按鈕 1、 點(diǎn)擊Help = Edit custom VM Options,在最后面添加 “-Dfile.encoding=UTF-8” 2、點(diǎn)擊Run菜單的 Edit Configurations,在tomcat配置中的 VM option中添加 “-Dfile.encoding=UTF-8” 3、在第二步的Startup/Connection頁簽的Run和Debug添加一個(gè)key為

    2024年02月21日
    瀏覽(96)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包