實(shí)現(xiàn)Servlet程序的三種方法(小結(jié))
實(shí)現(xiàn)Servlet程序的三種方法
1.手動(dòng)實(shí)現(xiàn)Servlet程序
1.編寫一個(gè)類去實(shí)現(xiàn)Servlet接口
2.實(shí)現(xiàn)service方法,處理請(qǐng)求并響應(yīng)數(shù)據(jù)

示例代碼:
//HelloServlet.java
package servlet;
import javax.servlet.*;
import java.io.IOException;
public class HelloServlet implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
// service方法專門來(lái)處理請(qǐng)求和響應(yīng)
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("Hello,Servlet! 被訪問(wèn)了");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
3.到web.xml配置Servlet程序的訪問(wèn)地址

<!--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">
<!-- servlet標(biāo)簽給Tomcat配置Servlet程序-->
<servlet>
<!-- servlet-name標(biāo)簽給Serclet程序起一個(gè)別名-->
<servlet-name>HelloServlet</servlet-name>
<!-- servlet-class標(biāo)簽給Serclet程序起一個(gè)全類名-->
<servlet-class>servlet.HelloServlet</servlet-class>
</servlet>
<!-- servlet-mapping標(biāo)簽給Servlet程序配置訪問(wèn)地址-->
<servlet-mapping>
<!-- servlet-name標(biāo)簽告訴服務(wù)器我當(dāng)前配置的地址給那個(gè)Servlet程序使用-->
<servlet-name>HelloServlet</servlet-name>
<!-- url-pattern標(biāo)簽配置訪問(wèn)地址-->
<!-- /:斜杠表示在服務(wù)器解析的時(shí)候,表示地址為Http://ip:port/工程路徑-->
<!-- /hello:表示地址為Http://ip:port/工程路徑/hello-->
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
2.通過(guò)HttpServlet實(shí)現(xiàn)Servlet程序
在一般項(xiàng)目開(kāi)發(fā)中一般很少使用Servlet接口來(lái)實(shí)現(xiàn)Servlet程序,一般都是使用繼承HttpServlet類的方式去實(shí)現(xiàn)Serlvet程序
步驟:
1.編寫一個(gè)類去繼承HttpServlet類

2.根據(jù)需要重寫doGet和doPost方法

3.去web.xml去配置訪問(wèn)地址

4.最后運(yùn)行測(cè)試就可以接收到值了

示例代碼:
//HttpServlet.java
package servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
//繼承HttpServlet
public class HttpServlet02 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("doGet方法");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("doPost方法");
}
}
```css
```bash
```handlebars
```sql
```javascript
//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">
<!-- servlet標(biāo)簽給Tomcat配置Servlet程序-->
<servlet>
<!-- servlet-name標(biāo)簽給Serclet程序起一個(gè)別名-->
<servlet-name>HelloServlet</servlet-name>
<!-- servlet-class標(biāo)簽給Serclet程序起一個(gè)全類名-->
<servlet-class>servlet.HelloServlet</servlet-class>
</servlet>
<!-- servlet-mapping標(biāo)簽給Servlet程序配置訪問(wèn)地址-->
<servlet-mapping>
<!-- servlet-name標(biāo)簽告訴服務(wù)器我當(dāng)前配置的地址給那個(gè)Servlet程序使用-->
<servlet-name>HelloServlet</servlet-name>
<!-- url-pattern標(biāo)簽配置訪問(wèn)地址-->
<!-- /:斜杠表示在服務(wù)器解析的時(shí)候,表示地址為Http://ip:port/工程路徑-->
<!-- /hello:表示地址為Http://ip:port/工程路徑/hello-->
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<servlet>
<!-- servlet-name標(biāo)簽給Serclet程序起一個(gè)別名-->
<servlet-name>HelloServlet02</servlet-name>
<!-- servlet-class標(biāo)簽給Serclet程序起一個(gè)全類名-->
<servlet-class>servlet.HttpServlet02</servlet-class>
</servlet>
<servlet-mapping>
<!-- servlet-name標(biāo)簽告訴服務(wù)器我當(dāng)前配置的地址給那個(gè)Servlet程序使用-->
<servlet-name>HelloServlet02</servlet-name>
<!-- url-pattern標(biāo)簽配置訪問(wèn)地址-->
<!-- /:斜杠表示在服務(wù)器解析的時(shí)候,表示地址為Http://ip:port/工程路徑-->
<!-- /hello:表示地址為Http://ip:port/工程路徑/hello-->
<url-pattern>/hello02</url-pattern>
</servlet-mapping>
</web-app>
3.通過(guò)IDEA自動(dòng)生成Servlt程序
1.通過(guò)IDEA新建一個(gè)Servlet


2.之后再新生成的java文件中我們自己按需要配置就好了

3.老樣子,依舊是在web.xml中配置好

4.寫個(gè)按鈕來(lái)檢測(cè)配置結(jié)果


示例代碼:
//HelloServlet.java
package servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class HelloServlet03 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("通過(guò)IDEA自動(dòng)/doGet方法");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("通過(guò)IDEA自動(dòng)/doGet方法");
}
}
//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">
<!-- servlet標(biāo)簽給Tomcat配置Servlet程序-->
<servlet>
<!-- servlet-name標(biāo)簽給Serclet程序起一個(gè)別名-->
<servlet-name>HelloServlet</servlet-name>
<!-- servlet-class標(biāo)簽給Serclet程序起一個(gè)全類名-->
<servlet-class>servlet.HelloServlet</servlet-class>
</servlet>
<!-- servlet-mapping標(biāo)簽給Servlet程序配置訪問(wèn)地址-->
<servlet-mapping>
<!-- servlet-name標(biāo)簽告訴服務(wù)器我當(dāng)前配置的地址給那個(gè)Servlet程序使用-->
<servlet-name>HelloServlet</servlet-name>
<!-- url-pattern標(biāo)簽配置訪問(wèn)地址-->
<!-- /:斜杠表示在服務(wù)器解析的時(shí)候,表示地址為Http://ip:port/工程路徑-->
<!-- /hello:表示地址為Http://ip:port/工程路徑/hello-->
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<servlet>
<!-- servlet-name標(biāo)簽給Serclet程序起一個(gè)別名-->
<servlet-name>HelloServlet02</servlet-name>
<!-- servlet-class標(biāo)簽給Serclet程序起一個(gè)全類名-->
<servlet-class>servlet.HttpServlet02</servlet-class>
</servlet>
<servlet-mapping>
<!-- servlet-name標(biāo)簽告訴服務(wù)器我當(dāng)前配置的地址給那個(gè)Servlet程序使用-->
<servlet-name>HelloServlet02</servlet-name>
<!-- url-pattern標(biāo)簽配置訪問(wèn)地址-->
<!-- /:斜杠表示在服務(wù)器解析的時(shí)候,表示地址為Http://ip:port/工程路徑-->
<!-- /hello:表示地址為Http://ip:port/工程路徑/hello-->
<url-pattern>/hello02</url-pattern>
</servlet-mapping>
<servlet>
<!-- servlet-name標(biāo)簽給Serclet程序起一個(gè)別名-->
<servlet-name>HelloServlet03</servlet-name>
<!-- servlet-class標(biāo)簽給Serclet程序起一個(gè)全類名-->
<servlet-class>servlet.HelloServlet03</servlet-class>
</servlet>
<servlet-mapping>
<!-- servlet-name標(biāo)簽告訴服務(wù)器我當(dāng)前配置的地址給那個(gè)Servlet程序使用-->
<servlet-name>HelloServlet03</servlet-name>
<!-- url-pattern標(biāo)簽配置訪問(wèn)地址-->
<!-- /:斜杠表示在服務(wù)器解析的時(shí)候,表示地址為Http://ip:port/工程路徑-->
<!-- /hello:表示地址為Http://ip:port/工程路徑/hello-->
<url-pattern>/hello03</url-pattern>
</servlet-mapping>
</web-app>
以上就是實(shí)現(xiàn)Servlet程序的三種方法,大家根據(jù)自己的需求去選擇,不一定都要掌握,到此這篇關(guān)于實(shí)現(xiàn)Servlet程序的三種方法(小結(jié))的文章就介紹到這了,更多相關(guān)實(shí)現(xiàn)Servlet程序內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java設(shè)計(jì)模式以虹貓藍(lán)兔的故事講解代理模式
代理模式是Java常見(jiàn)的設(shè)計(jì)模式之一。所謂代理模式是指客戶端并不直接調(diào)用實(shí)際的對(duì)象,而是通過(guò)調(diào)用代理,來(lái)間接的調(diào)用實(shí)際的對(duì)象2022-04-04
Springboot?maven項(xiàng)目配置文件覆蓋問(wèn)題的處理
這篇文章主要介紹了Springboot?maven項(xiàng)目配置文件覆蓋問(wèn)題的處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
SpringSecurity實(shí)現(xiàn)訪問(wèn)控制url匹配
本文主要介紹了SpringSecurity實(shí)現(xiàn)訪問(wèn)控制url匹配,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08
java kafka寫入數(shù)據(jù)到HDFS問(wèn)題
這篇文章主要介紹了java kafka寫入數(shù)據(jù)到HDFS問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
Java大數(shù)據(jù)開(kāi)發(fā)Hadoop?MapReduce
MapReduce的思想核心是“分而治之”,適用于大量復(fù)雜的任務(wù)處理場(chǎng)景(大規(guī)模數(shù)據(jù)處理場(chǎng)景)Map負(fù)責(zé)“分”,即把復(fù)雜的任務(wù)分解為若干個(gè)“簡(jiǎn)單的任務(wù)”來(lái)并行處理??梢赃M(jìn)行拆分的前提是這些小任務(wù)可以并行計(jì)算,彼此間幾乎沒(méi)有依賴關(guān)系2023-03-03
Java getParameter()獲取數(shù)據(jù)為空的問(wèn)題
這篇文章主要介紹了Java getParameter()獲取數(shù)據(jù)為空的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
java 轉(zhuǎn)發(fā)和重定向區(qū)別及實(shí)例代碼
這篇文章主要介紹了java 轉(zhuǎn)發(fā)和重定向區(qū)別及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2016-11-11

