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

IDEA創(chuàng)建Servlet程序的兩種實(shí)現(xiàn)方法

 更新時(shí)間:2023年10月10日 11:18:07   作者:Rainbow_Qi  
Servlet是JavaWeb應(yīng)用程序中不可或缺的組件之一,本文主要介紹了IDEA創(chuàng)建Servlet程序的兩種實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的可以了解一下

1 Servlet 是什么?

Java Servlet 是運(yùn)行在 Web 服務(wù)器或應(yīng)用服務(wù)器上的程序,它是作為來自 Web 瀏覽器或其他 HTTP 客戶端的請求和 HTTP 服務(wù)器上的數(shù)據(jù)庫或應(yīng)用程序之間的中間層。

2 部署Tomcat并創(chuàng)建一個Servlet程序

2.1 創(chuàng)建一個普通的java程序

頁面左上角,點(diǎn)擊文件 -> 項(xiàng)目 -> 新建項(xiàng)目:

2.2 添加框架支持

為新建的名為Servlet_test的項(xiàng)目添加框架支持(Add Framework Support)

在Java EE下找到Web應(yīng)用程序(Web Application)并勾選。 

【Java EE是sun公司推出的企業(yè)級應(yīng)用程序】

狹義的 Java EE 是 Sun 公司為企業(yè)級應(yīng)用推出的標(biāo)準(zhǔn)平臺,用來開發(fā)B/S架構(gòu)軟件,可以說是一個框架,也可以說是一種規(guī)范。廣義的 Java EE 包含各種框架,其中最重要的就是 Spring 全家桶。Spring 誕生之初是為了改進(jìn) Java EE 開發(fā)的體驗(yàn),后來逐漸成為了 Java Web 開發(fā)的實(shí)際標(biāo)準(zhǔn)。

可以看到,在左側(cè)項(xiàng)目欄增加了一個web文件夾

2.3 配置項(xiàng)目

①在WEB-INF文件夾下創(chuàng)建兩個文件夾:lib和classes,并在lib文件夾下添加Servlet-api.jar

在創(chuàng)建好Servlet程序后,會調(diào)用servlet-api.jar這個包,servlet要用到HttpServletRequest和HttpServletResponse等對象,這些對象都是要靠這個jar包使用的。如果安裝了Tomcat,這個jar包一般在tomcat安裝目錄\lib 文件夾下面有,當(dāng)你把web項(xiàng)目部署到tomcat,會自動加載這個jar包來識別Serlvet一些對象。

這里我們在自己的電腦上找到安裝的Tomcat文件夾lib目錄下的servlet-api.jar,并復(fù)制粘貼在java項(xiàng)目中的lib目錄下:

2.4 重構(gòu)項(xiàng)目

在最上方欄目中點(diǎn)擊 文件 -> 項(xiàng)目結(jié)構(gòu)(Project Structure)

更改模塊(Modules)內(nèi)容如下:   

最后點(diǎn)擊確定。

2.5 創(chuàng)建并編寫一個Servlet程序 

我們在創(chuàng)建的Servlet_test項(xiàng)目 -> src文件夾 -> main文件夾 -> java目錄下,新建一個Servlet項(xiàng)目,并命名為FirstServlet:

下面, 編寫一個Servlet程序:

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(name = "FirstServlet", value = "/FirstServlet")
public class FirstServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.setContentType("text/html");
        PrintWriter out=response.getWriter();
        out.print("<html>");
        out.print("<body style=\"background-color:gray\">");
        out.print("<h2 style=\"background-color:red\">background color</h2>");
        out.print("<p style=\"background-color:yellow\">Hello World!</p>");
        out.print("</body>");
        out.print("</html>");
    }
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }
}

再在WEB-INF下的web.xml文件中添加映射:

在Sevlet程序中我們定義了一個FirstServlet類,那么在<servlet-class>中,我們的類名要和其保持一致。

<?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>
        <servlet-name>helloworldservlet</servlet-name>
        <servlet-class>FirstServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>helloworldservlet</servlet-name>
        <url-pattern>/fs</url-pattern>
    </servlet-mapping>
</web-app>

2.6 配置Tomcat服務(wù)器

點(diǎn)擊工件后,如下圖,添加了一個對應(yīng)的工件,部署完成,點(diǎn)擊確定。

【注意,這里下方的“應(yīng)用程序上下文”就是后續(xù)網(wǎng)頁訪問路徑:http://localhost:8080/Servlet_test_war_exploded,也可以更改為別的名字】

服務(wù)器部分可以根據(jù)自己的需要進(jìn)行修改,這里URL就是運(yùn)行程序后的網(wǎng)頁地址?!居绣e誤,稍后說明】

視頻教程推薦尚硅谷:115.尚硅谷_Tomcat-IDEA整合Tomcat服務(wù)器

2.7 運(yùn)行程序

最后我們來運(yùn)行一下這個Servlet程序,運(yùn)行結(jié)束,自動跳轉(zhuǎn)出一個網(wǎng)頁,但顯示的卻是如下界面:

顯然,這是有誤的,我們的Servlet程序中應(yīng)該會輸出一個Hello World!,并有簡單的css頁面美化的設(shè)計(jì),出現(xiàn)上述原因,我們可以回到2.6節(jié)最后一張圖那個Tomcat服務(wù)器配置,根據(jù)我們的web.xml配置文件,在URL地址后添加 /fs (這個fs名字可以是任意的),指定訪問的絕對地址。

【url-pattern這個配置項(xiàng),通過URL訪問到我們的servlet里,servlet會對http請求和相應(yīng)進(jìn)行處理】

至此,我們的第一個Servlet程序就完成了!

第二種創(chuàng)建方法

再補(bǔ)充一個更為簡單的方法:

新建項(xiàng)目,選擇Java Enterprise(Java EE),模塊選擇Web應(yīng)用程序,并添加Tomcat服務(wù)器,相關(guān)選項(xiàng)如下: 

點(diǎn)擊下一步,相關(guān)規(guī)范下自動勾選上了Servlet,然后點(diǎn)擊創(chuàng)建

創(chuàng)建成功:

到此這篇關(guān)于IDEA創(chuàng)建Servlet程序的兩種實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)IDEA創(chuàng)建Servlet程序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • IDEA中如何查找jar包之間的依賴關(guān)系并忽略依賴的某個包

    IDEA中如何查找jar包之間的依賴關(guān)系并忽略依賴的某個包

    這篇文章主要介紹了IDEA中如何查找jar包之間的依賴關(guān)系并忽略依賴的某個包?本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • springboot2 jackson實(shí)現(xiàn)動態(tài)返回類字段方式

    springboot2 jackson實(shí)現(xiàn)動態(tài)返回類字段方式

    這篇文章主要介紹了springboot2 jackson實(shí)現(xiàn)動態(tài)返回類字段方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Mybatis的parameterType造成線程阻塞問題分析

    Mybatis的parameterType造成線程阻塞問題分析

    這篇文章主要詳細(xì)分析了Mybatis的parameterType造成線程阻塞問題,文中有詳細(xì)的解決方法,及相關(guān)的代碼示例,具有一定的參考價(jià)值,感興趣的朋友可以借鑒閱讀
    2023-06-06
  • 解決SpringBoot項(xiàng)目讀取yml文件中值為中文時(shí),在視圖頁面顯示亂碼

    解決SpringBoot項(xiàng)目讀取yml文件中值為中文時(shí),在視圖頁面顯示亂碼

    這篇文章主要介紹了解決SpringBoot項(xiàng)目讀取yml文件中值為中文時(shí),在視圖頁面顯示亂碼的問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 淺談Hibernate n+1問題

    淺談Hibernate n+1問題

    這篇文章主要介紹了淺談Hibernate n+1問題,怎么解決n+1問題,文中也作了簡要分析,小編覺得還是挺不錯的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • 詳解如何通過Java實(shí)現(xiàn)壓縮PDF文檔

    詳解如何通過Java實(shí)現(xiàn)壓縮PDF文檔

    PDF文檔是我們?nèi)粘^k公中使用最頻繁的文檔格式。但因?yàn)榇蠖鄶?shù)PDF文檔都包含很多頁面圖像或大量圖片,這就導(dǎo)致PDF文檔過大,處理起來較為麻煩。本文將介紹如何通過Java應(yīng)用程序壓縮PDF文檔,需要的可以了解一下
    2022-12-12
  • java中類之間的數(shù)據(jù)傳遞方式

    java中類之間的數(shù)據(jù)傳遞方式

    這篇文章主要介紹了java中類之間的數(shù)據(jù)傳遞方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • java中“==“和equals()的區(qū)別詳解

    java中“==“和equals()的區(qū)別詳解

    這篇文章主要給大家介紹了關(guān)于java中“==“和equals()區(qū)別的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • java中jdk的下載和安裝全過程

    java中jdk的下載和安裝全過程

    這篇文章主要給大家介紹了關(guān)于java中jdk的下載和安裝的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 如何通過RabbitMq實(shí)現(xiàn)動態(tài)定時(shí)任務(wù)詳解

    如何通過RabbitMq實(shí)現(xiàn)動態(tài)定時(shí)任務(wù)詳解

    工作中經(jīng)常會有定時(shí)任務(wù)的需求,常見的做法可以使用Timer、Quartz、Hangfire等組件,這次想嘗試下新的思路,使用RabbitMQ死信隊(duì)列的機(jī)制來實(shí)現(xiàn)定時(shí)任務(wù),下面這篇文章主要給大家介紹了關(guān)于如何通過RabbitMq實(shí)現(xiàn)動態(tài)定時(shí)任務(wù)的相關(guān)資料,需要的朋友可以參考下
    2022-01-01

最新評論

万山特区| 黄龙县| 定边县| 泸西县| 南乐县| 浪卡子县| 江阴市| 沙洋县| 榆林市| 彭山县| 鸡泽县| 怀安县| 杂多县| 东乌| 中阳县| 常州市| 仲巴县| 海原县| 竹北市| 新竹县| 博罗县| 桐柏县| 曲阜市| 沂源县| 荔波县| 射阳县| 新竹县| 漯河市| 孟村| 赣州市| 金沙县| 雷州市| 长丰县| 长海县| 贺州市| 苍南县| 北辰区| 兰溪市| 三原县| 永丰县| 岳阳市|