91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaWeb 中Hello Servlet如何使用

發布時間:2021-07-19 11:10:21 來源:億速云 閱讀:188 作者:Leah 欄目:開發技術

JavaWeb 中Hello Servlet如何使用,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

Servlet 概述

  • serlvet sun公司 開發動態web 的一門技術。

  • Servlet(Server Applet)是Java Servlet的簡稱,稱為小服務程序或服務連接器,用Java編寫的服務器端程序,具有獨立于平臺和協議的特性,主要功能在于交互式地瀏覽和生成數據,生成動態Web內容。

  • 廣義的Servlet是指任何實現了這個Servlet接口的類,。Servlet運行于支持Java的應用服務器中。從原理上講,Servlet可以響應任何類型的請求,但絕大多數情況下Servlet只用來擴展基于HTTP協議的Web服務器。

  • sun公司在api 中提供了一個接口 如果我們想要開發一個servlet程序 我們只需要做到兩點

1、寫一個普通類實現servlet 這個接口

2、把寫好的servlet 放進服務器。

sun公司給出了兩個默認的實現類 HttpServlet 和 GenericServlet

Hello Servlet

工程結構

JavaWeb 中Hello Servlet如何使用

1、創建一個maven 項目 添加web框架(將web.xml 換成最新的4.0 后面有完整配置文件) 配置tomcat
2、導入依賴
dependencies>
    <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.1</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.0</version>
    </dependency>
  </dependencies>
3、編寫一個Servlet程序 編寫一個普通類實現HttpServlet接口
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
 * @author crush
 *  idea 提示快捷鍵  alt + enter
 *  重寫快捷鍵 是 ctrl + o
 */
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        PrintWriter writer = resp.getWriter();
        writer.print("hello Servlet");
        System.out.println("");
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}
4、編寫Servlet 的映射

為什么需要映射?我們是不是需要通過瀏覽器去訪問,而瀏覽器需要連接web服務器,需要在web 服務器注冊我們寫的servlet,還需要給它一個瀏覽器能夠訪問的路徑。

<?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">
    <servlet>
        <servlet-name>hello</servlet-name>
        <servlet-class>com.crush.servlet.HelloServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>hello</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
</web-app>

測試:

JavaWeb 中Hello Servlet如何使用

Servlet的運行過程

Servlet程序是由Web服務器調用的,Web服務器收到客戶端的Servlet訪問請求后:

  • ①Web服務器首先檢查是否已經裝載并創建了該Servlet的實例對象。如果是,則直接執行第④步,否則,執行第②步;

  • ②裝載并創建該Servlet的一個實例對象;

  • ③調用Servlet實例對象的init()方法;

  • ④創建一個用于封裝HTTP請求消息的HttpServletRequest對象和一個代表HTTP響應消息的HttpServletResponse對象,然后調用Servlet的service()方法并將請求和響應對象作為參數傳遞進去;

  • ⑤Web應用程序被停止或重新啟動之前,Servlet引擎將卸載Servlet,并在卸載之前調用Servlet的destroy()方法。

JavaWeb 中Hello Servlet如何使用

5、Mapping 問題:

1、一個Servlet 可以指定一個映射路徑

<servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>com.crush.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello</url-pattern>
</servlet-mapping>

2、一個Servlet 可以指定多個映射路徑

<servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>com.crush.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello2</url-pattern>
</servlet-mapping>

3、一個Servlet 可以指定通用映射路徑

<servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>com.crush.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello.*</url-pattern>
</servlet-mapping>

4、默認請求路徑

<servlet>
    <servlet-name>helloServlet</servlet-name>
    <servlet-class>com.crush.servlet.HelloServletDays</servlet-class>
</servlet>    
<servlet-mapping>
    <servlet-name>helloServlet</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

5、可以指定一些前綴或者后綴

<servlet>
    <servlet-name>helloServlet</servlet-name>
    <servlet-class>com.crush.servlet.HelloServletDays</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>helloServlet</servlet-name>
    <url-pattern>*.crush</url-pattern>
</servlet-mapping>
6、優先級問題

指定固定的映射路徑優先級最高,如果找不到就會走默認的處理請求。

模擬指定error 頁面

1、寫一個ErrorServlet 類

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
 * @Author: crush
 * @Date: 2021-05-07 23:03
 * version 1.0
 */
public class ErrorServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        PrintWriter writer = resp.getWriter();
        writer.print("404");
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

2、配置映射路徑

<servlet>
    <servlet-name>error</servlet-name>
    <servlet-class>com.crush.servlet.ErrorServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>error</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

測試:訪問不存在的路徑 會直接到訪問我們自己寫的ErrorServlet 訪問其他的具體的路徑仍然不變

JavaWeb 中Hello Servlet如何使用

關于JavaWeb 中Hello Servlet如何使用問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

英吉沙县| 荔波县| 汶川县| 临汾市| 运城市| 碌曲县| 铁岭市| 喀什市| 汶川县| 任丘市| 静宁县| 英德市| 瑞金市| 云龙县| 通化市| 明光市| 岳池县| 渭南市| 朝阳市| 如东县| 会昌县| 余干县| 青浦区| 黄山市| 土默特左旗| 山东省| 扎赉特旗| 怀安县| 多伦县| 清流县| 芜湖县| 铜山县| 延长县| 安乡县| 元朗区| 平南县| 牙克石市| 韩城市| 扎鲁特旗| 大渡口区| 启东市|