日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

servlet原理+流程图+简单实现案例(javaweb)

發(fā)布時(shí)間:2023/12/14 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 servlet原理+流程图+简单实现案例(javaweb) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

servlet原理+流程圖+簡(jiǎn)單實(shí)現(xiàn)案例(javaweb)

1.servlet原理(轉(zhuǎn)載)

容器負(fù)責(zé)根據(jù)請(qǐng)求的信息找到對(duì)應(yīng)的Servlet,傳遞Request和Response參數(shù),調(diào)用Servlet的service方法,完成請(qǐng)求的響應(yīng)。

Servlet 的運(yùn)行模式是一個(gè)典型的“握手型的交互式”運(yùn)行模式。所謂“握手型的交互式”就是兩個(gè)模塊為了交換數(shù)據(jù)通常都會(huì)準(zhǔn)備一個(gè)交易場(chǎng)景,這個(gè)場(chǎng)景一直跟隨個(gè)這個(gè)交易過(guò)程直到這個(gè)交易完成為止。這個(gè)交易場(chǎng)景的初始化是根據(jù)這次交易對(duì)象指定的參數(shù)來(lái)定制的,這些指定參數(shù)通常就會(huì)是一個(gè)配置類(lèi)。所以對(duì)號(hào)入座,交易場(chǎng)景就由 ServletContext 來(lái)描述,而定制的參數(shù)集合就由 ServletConfig 來(lái)描述。而 ServletRequest 和 ServletResponse 就是要交互的具體對(duì)象了,它們通常都是作為運(yùn)輸工具來(lái)傳遞交互結(jié)果。

當(dāng)用戶(hù)從瀏覽器向服務(wù)器發(fā)起一個(gè)請(qǐng)求,通常會(huì)包含如下信息:http://hostname: port /contextpath/servletpath,hostname 和 port 是用來(lái)與服務(wù)器建立 TCP 連接,而后面的 URL 才是用來(lái)選擇服務(wù)器中那個(gè)子容器服務(wù)用戶(hù)的請(qǐng)求。映射工作有專(zhuān)門(mén)一個(gè)類(lèi)來(lái)完成的,這個(gè)就是 org.apache.tomcat.util.http.mapper,這個(gè)類(lèi)保存了 Tomcat 的 Container 容器中的所有子容器的信息,當(dāng) org.apache.catalina.connector. Request 類(lèi)在進(jìn)入 Container 容器之前,mapper 將會(huì)根據(jù)這次請(qǐng)求的 hostnane 和 contextpath 將 host 和 context 容器設(shè)置到 Request 的 mappingData 屬性中。所以當(dāng) Request 進(jìn)入 Container 容器之前,它要訪問(wèn)那個(gè)子容器這時(shí)就已經(jīng)確定了。
2.流程圖

3.簡(jiǎn)單實(shí)現(xiàn)案例

servlet實(shí)現(xiàn)類(lèi)

public class HelloServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("doGet...");PrintWriter writer = resp.getWriter();writer.print("Hello Servlet!");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {super.doPost(req, resp);} }

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

index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>Title</title> </head> <body> <form action="/hello">賬號(hào): <input type="text" name="zhanghao"><input type="submit"> </form> </body> </html>

pom.xml

<?xml version="1.0" encoding="UTF-8"?> <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/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.tang</groupId><artifactId>javaweb-02-maven</artifactId><packaging>pom</packaging><version>1.0-SNAPSHOT</version><modules><module>javaweb-servlet02</module></modules><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target></properties><dependencies><dependency><groupId>jakarta.servlet.jsp</groupId><artifactId>jakarta.servlet.jsp-api</artifactId><version>3.0.0</version> <!-- <scope>provided</scope>--></dependency><dependency><groupId>jakarta.servlet</groupId><artifactId>jakarta.servlet-api</artifactId><version>5.0.0</version> <!-- <scope>provided</scope>--></dependency></dependencies> </project>

結(jié)果

總結(jié)

以上是生活随笔為你收集整理的servlet原理+流程图+简单实现案例(javaweb)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。