IDEA創(chuàng)建Servlet程序的兩種實現(xiàn)方法
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程序
頁面左上角,點擊文件 -> 項目 -> 新建項目:

2.2 添加框架支持
為新建的名為Servlet_test的項目添加框架支持(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ā)的體驗,后來逐漸成為了 Java Web 開發(fā)的實際標(biāo)準(zhǔn)。

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

2.3 配置項目
①在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項目部署到tomcat,會自動加載這個jar包來識別Serlvet一些對象。
這里我們在自己的電腦上找到安裝的Tomcat文件夾lib目錄下的servlet-api.jar,并復(fù)制粘貼在java項目中的lib目錄下:




2.4 重構(gòu)項目
在最上方欄目中點擊 文件 -> 項目結(jié)構(gòu)(Project Structure)

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



最后點擊確定。
2.5 創(chuàng)建并編寫一個Servlet程序
我們在創(chuàng)建的Servlet_test項目 -> src文件夾 -> main文件夾 -> java目錄下,新建一個Servlet項目,并命名為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ù)器


點擊工件后,如下圖,添加了一個對應(yīng)的工件,部署完成,點擊確定。
【注意,這里下方的“應(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è)計,出現(xiàn)上述原因,我們可以回到2.6節(jié)最后一張圖那個Tomcat服務(wù)器配置,根據(jù)我們的web.xml配置文件,在URL地址后添加 /fs (這個fs名字可以是任意的),指定訪問的絕對地址。
【url-pattern這個配置項,通過URL訪問到我們的servlet里,servlet會對http請求和相應(yīng)進(jìn)行處理】


至此,我們的第一個Servlet程序就完成了!
第二種創(chuàng)建方法
再補(bǔ)充一個更為簡單的方法:
新建項目,選擇Java Enterprise(Java EE),模塊選擇Web應(yīng)用程序,并添加Tomcat服務(wù)器,相關(guān)選項如下:

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

創(chuàng)建成功:

到此這篇關(guān)于IDEA創(chuàng)建Servlet程序的兩種實現(xiàn)方法的文章就介紹到這了,更多相關(guān)IDEA創(chuàng)建Servlet程序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
IDEA中如何查找jar包之間的依賴關(guān)系并忽略依賴的某個包
這篇文章主要介紹了IDEA中如何查找jar包之間的依賴關(guān)系并忽略依賴的某個包?本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08
springboot2 jackson實現(xiàn)動態(tài)返回類字段方式
這篇文章主要介紹了springboot2 jackson實現(xiàn)動態(tài)返回類字段方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08
Mybatis的parameterType造成線程阻塞問題分析
這篇文章主要詳細(xì)分析了Mybatis的parameterType造成線程阻塞問題,文中有詳細(xì)的解決方法,及相關(guān)的代碼示例,具有一定的參考價值,感興趣的朋友可以借鑒閱讀2023-06-06
解決SpringBoot項目讀取yml文件中值為中文時,在視圖頁面顯示亂碼
這篇文章主要介紹了解決SpringBoot項目讀取yml文件中值為中文時,在視圖頁面顯示亂碼的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08
如何通過RabbitMq實現(xiàn)動態(tài)定時任務(wù)詳解
工作中經(jīng)常會有定時任務(wù)的需求,常見的做法可以使用Timer、Quartz、Hangfire等組件,這次想嘗試下新的思路,使用RabbitMQ死信隊列的機(jī)制來實現(xiàn)定時任務(wù),下面這篇文章主要給大家介紹了關(guān)于如何通過RabbitMq實現(xiàn)動態(tài)定時任務(wù)的相關(guān)資料,需要的朋友可以參考下2022-01-01

