Servlet編程第一步之從零構(gòu)建Hello?World應(yīng)用詳細(xì)步驟+圖解
前言
什么是Servlet?
- Servlet 是一個(gè) Java程序,是在服務(wù)器上運(yùn)行以處理客戶端請(qǐng)求并做出響應(yīng)的程序
什么是maven?
簡(jiǎn)而言之,maven是通過(guò)一小段描述管理和構(gòu)建java項(xiàng)目的工具(通過(guò)pom.xml),我們通過(guò)maven項(xiàng)目可以快速導(dǎo)入項(xiàng)目需要的jar包,避免了手動(dòng)導(dǎo)入jar包帶來(lái)的不容易管理和依賴(lài)沖突問(wèn)題。這里不詳細(xì)贅述maven的使用
第一個(gè)Serlvet程序
- 手動(dòng)編寫(xiě)一個(gè)Servlet主要需要以下幾步:
- 創(chuàng)建一個(gè)servlet類(lèi),此類(lèi)繼承自HttpServlet
- 重寫(xiě)doGet和doPost方法中的一個(gè)
- 配置Servlet
第一步:創(chuàng)建一個(gè)maven項(xiàng)目
提前需要在idea中配置maven的相關(guān)配置
第二步:創(chuàng)建java目錄,導(dǎo)入Servlet依賴(lài)jar包
此時(shí)maven缺少存放源碼的java目錄(參考maven教程),
右鍵main->單擊NEW->單擊Directory-->創(chuàng)建java目錄
在pom.xml中配置Servlet依賴(lài)
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>maven_9_12</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>maven_9_12 Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!--Servlet3.1--> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> </dependencies> <build> <finalName>maven_9_12</finalName> </build> </project>
第三步:創(chuàng)建一個(gè)servlet類(lèi),此類(lèi)繼承自HttpServlet
重寫(xiě)doGet和doPost方法中的一個(gè)
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; public class ServletTest extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //設(shè)置響應(yīng)類(lèi)型和響應(yīng)字符集,防止中文亂碼 response.setContentType("text/html;charset=UTF-8"); //獲取響應(yīng)輸出流 PrintWriter out = response.getWriter(); //在頁(yè)面打印HTML標(biāo)簽(會(huì)解析成對(duì)應(yīng)的效果) out.println("<html>"); out.println("<head><title>Servlet</title></head>"); out.println("<body>"); out.println("你好,歡迎來(lái)到Servlet世界"); out.println("</body>"); out.println("</html>"); //使用完畢,關(guān)閉流資源 out.close(); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req,resp); //目的是為了保證前端傳入的get和post請(qǐng)求都能接收處理 } }
第四步:配置Servlet
- 在web.xml文件中配置Servlet
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Archetype Created Web Application</display-name> <servlet> <servlet-name>httpServletTest</servlet-name> <servlet-class>ServletTest</servlet-class> </servlet> <servlet-mapping> <servlet-name>httpServletTest</servlet-name> <url-pattern>/demo1</url-pattern> </servlet-mapping> </web-app>
第五步:配置maven的服務(wù)器插件支持
一個(gè)web項(xiàng)目想要運(yùn)行是需要服務(wù)器支持的,我們直接下載一個(gè)tomcat服務(wù)器進(jìn)行配置,是比較繁瑣的,可以通過(guò)maven插件 配置一個(gè)“虛擬的服務(wù)器”,供我們開(kāi)發(fā)使用
在pom.xml文件中將build標(biāo)簽中的內(nèi)容替換成下面的內(nèi)容
<build> <finalName>web</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.7</source> <target>1.7</target> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>9.3.14.v20161028</version> </plugin> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.1</version> <configuration> <port>8080</port> <path>/</path> <uriEncoding>UTF-8</uriEncoding> <server>tomcat7</server> </configuration> </plugin> </plugins> </build>
第六步:配置以服務(wù)器的形式啟動(dòng)
點(diǎn)擊右上角的錘子旁邊的小括號(hào),選擇Edit Configurations
點(diǎn)擊左上角的+號(hào),找到maven
將Run中改為jetty:run 或 tomcat7:run (具體看你在上面配置了哪些服務(wù)器)
兩種服務(wù)器,jetty更加輕量級(jí),推薦使用,當(dāng)然tomcat也有自己的優(yōu)點(diǎn),這里不贅述
第七步:點(diǎn)擊啟動(dòng)
點(diǎn)擊啟動(dòng),在瀏覽器中輸入localhost:8080查看效果
此時(shí)會(huì)跳轉(zhuǎn)到webapp中的默認(rèn)首頁(yè)index.jsp
第八步:訪問(wèn)Servlet
我們?cè)趙eb.xml中聲明了訪問(wèn)Servlet的URL為demo1,所以可以如下訪問(wèn)
- 啟動(dòng)服務(wù)器(tomcat或jetty)
- 在瀏覽器中輸入
總結(jié)
綜上所述,一個(gè)簡(jiǎn)單的基于web.xml配置文件的JavaWeb的Servlet程序就完成了,我們可以創(chuàng)建多個(gè)頁(yè)面,然后在web.xml中添加對(duì)應(yīng)的Servlet和Servlet映射即可。
到此這篇關(guān)于Servlet從零構(gòu)建Hello World應(yīng)用詳細(xì)步驟+圖解的文章就介紹到這了,更多相關(guān)Servlet構(gòu)建Hello World應(yīng)用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java 數(shù)據(jù)庫(kù)連接與增刪改查操作實(shí)例詳解
這篇文章主要介紹了java 數(shù)據(jù)庫(kù)連接與增刪改查操作,結(jié)合實(shí)例形式詳細(xì)分析了java使用jdbc進(jìn)行數(shù)據(jù)庫(kù)連接及增刪改查等相關(guān)操作實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下2019-11-11JVM入門(mén)之內(nèi)存結(jié)構(gòu)(堆、方法區(qū))
JVM 基本上是每家招聘公司都會(huì)問(wèn)到的問(wèn)題,它們會(huì)這么無(wú)聊問(wèn)這些不切實(shí)際的問(wèn)題嗎?很顯然不是。由 JVM 引發(fā)的故障問(wèn)題,無(wú)論在我們開(kāi)發(fā)過(guò)程中還是生產(chǎn)環(huán)境下都是非常常見(jiàn)的2021-06-06idea導(dǎo)入項(xiàng)目爆紅問(wèn)題記錄以及解決
這篇文章主要介紹了idea導(dǎo)入項(xiàng)目爆紅問(wèn)題記錄以及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07SpringBoot中Tomcat和SpringMVC整合源碼分析
Tomcat和SpringMVC都是通過(guò)這樣的方式進(jìn)行集成的,SpringBoot出現(xiàn)之前SpringMVC項(xiàng)目是直接部署在Tomcat服務(wù)器中的,這篇文章主要介紹了SpringBoot中Tomcat和SpringMVC整合源碼分析,需要的朋友可以參考下2022-07-07springBoot靜態(tài)資源加載不到,并且配置了也不生效問(wèn)題及解決
這篇文章總結(jié)了一個(gè)在Spring Boot 2.6.x版本中,由于路徑匹配策略改變導(dǎo)致靜態(tài)資源無(wú)法加載的問(wèn)題,并提供了解決方案:通過(guò)配置類(lèi)或在配置文件中設(shè)置路徑匹配策略為AntPathMatcher,或者直接降級(jí)Spring Boot版本2025-02-02簡(jiǎn)述IDEA集成Git在實(shí)際項(xiàng)目中的運(yùn)用
這篇文章主要介紹了IDEA集成Git在實(shí)際項(xiàng)目中的運(yùn)用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-07-07SpringBoot?mybatis-plus使用json字段實(shí)戰(zhàn)指南
在現(xiàn)代應(yīng)用開(kāi)發(fā)中經(jīng)常會(huì)使用JSON格式存儲(chǔ)和傳輸數(shù)據(jù),為了便捷地處理數(shù)據(jù)庫(kù)中的JSON字段,MyBatis-Plus提供了強(qiáng)大的JSON處理器,這篇文章主要給大家介紹了關(guān)于SpringBoot?mybatis-plus使用json字段的相關(guān)資料,需要的朋友可以參考下2024-01-01