servlet原理+流程图+简单实现案例(javaweb)
servlet原理+流程图+简单实现案例(javaweb)
1.servlet原理(转载)
容器负责根据请求的信息找到对应的Servlet,传递Request和Response参数,调用Servlet的service方法,完成请求的响应。
Servlet 的运行模式是一个典型的“握手型的交互式”运行模式。所谓“握手型的交互式”就是两个模块为了交换数据通常都会准备一个交易场景,这个场景一直跟随个这个交易过程直到这个交易完成为止。这个交易场景的初始化是根据这次交易对象指定的参数来定制的,这些指定参数通常就会是一个配置类。所以对号入座,交易场景就由 ServletContext 来描述,而定制的参数集合就由 ServletConfig 来描述。而 ServletRequest 和 ServletResponse 就是要交互的具体对象了,它们通常都是作为运输工具来传递交互结果。
当用户从浏览器向服务器发起一个请求,通常会包含如下信息:http://hostname: port /contextpath/servletpath,hostname 和 port 是用来与服务器建立 TCP 连接,而后面的 URL 才是用来选择服务器中那个子容器服务用户的请求。映射工作有专门一个类来完成的,这个就是 org.apache.tomcat.util.http.mapper,这个类保存了 Tomcat 的 Container 容器中的所有子容器的信息,当 org.apache.catalina.connector. Request 类在进入 Container 容器之前,mapper 将会根据这次请求的 hostnane 和 contextpath 将 host 和 context 容器设置到 Request 的 mappingData 属性中。所以当 Request 进入 Container 容器之前,它要访问那个子容器这时就已经确定了。
2.流程图
3.简单实现案例
servlet实现类
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">账号: <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>
结果
servlet原理+流程图+简单实现案例(javaweb)相关推荐
- JavaWeb中的Servlet原理是什么?(存库,建议收藏)
Servlet原理 Servlet是由web服务器调用,web服务器在收到浏览器请求之后,经过一系列传输,最后web服务器读取响应信息,将其读取的信息传送到浏览器 Mapping问题: 一个Servl ...
- EMD算法之Hilbert-Huang Transform原理详解和案例分析
目录 Hilbert-Huang Transform 希尔伯特-黄变换 Section I 人物简介 Section II Hilbert-Huang的应用领域 Section III Hilbert ...
- SpringMVC简单小案例
SpringMVC简单小案例 导入spring-webmvc下的所有包 采用Maven导入 <dependency><groupId>org.springframework&l ...
- solr简单搜索案例
solr简单搜索案例 使用Solr实现电商网站中商品信息搜索功能,可以根据关键字搜索商品信息,根据商品分类.价格过滤搜索结果,也可以根据价格进行排序,实现分页. 架构分为: 1. solr服务器 2. ...
- VGA成像原理与简单实现
VGA成像原理与简单实现 前言 一.VGA成像原理 二.VGA成像时序详解 三.VGA成像设计 四.VGA控制器Verilog设计实现 五.TB文件展示 六.仿真结果分析 前言 本篇文章简单记录VGA ...
- 【2021软件创新实验室暑假集训】SpringMVC框架(设计原理、简单使用、源码探究)
系列文章目录 20级 Java篇 [2021软件创新实验室暑假集训]计算机的起源与大致原理 [2021软件创新实验室暑假集训]Java基础(一) [2021软件创新实验室暑假集训]Java基础(二) ...
- 简单实用的JavaWeb微投票系统
简单实用的JavaWeb微投票系统 目的 帮她完成JavaWeb课程设计,也做为练手的小项目: 功能 1.可以实现在个人登陆,在线投票,票数统计的功能: 2.规定每个投票者每天只能投一票,并要求登录成 ...
- Android:安卓学习笔记之OkHttp原理的简单理解和使用
Android OkHttp使用原理的简单理解和使用 OkHttp 0.前言 1.请求与响应流程 1.1 请求的封装 1.2 请求的发送 1.3 请求的调度 1.4 请求的处理 2.拦截器 2.1 R ...
- servlet过滤器的简单使用
为什么要用过滤器或者拦截器? 简单来讲,当一个账户需要进入某个系统调用某个接口时,我们需要对其进行相应验证,否则一旦接口暴露,可能会造成系统崩溃.这个时候我们就需要用拦截器对调用接口一方进行身份验证. ...
- python装饰器实例-Python装饰器原理与简单用法实例分析
本文实例讲述了Python装饰器原理与简单用法.分享给大家供大家参考,具体如下: 今天整理装饰器,内嵌的装饰器.让装饰器带参数等多种形式,非常复杂,让人头疼不已.但是突然间发现了装饰器的奥秘,原来如此 ...
最新文章
- Hadoop学习笔记(1) ——菜鸟入门
- Excel中将一个表格的数据关联到另一个表格
- 开源图像检索工具:CaliphEmir使用方法
- Dataset之CIFAR-10:CIFAR-10数据集简介、下载、使用方法之详细攻略
- var和dynamic的区别及如何正确使用dynamic?
- SAP Spartacus 服务器端渲染单步调试步骤之二:在服务器端执行应用程序 Angular 代码
- Python中FileIO
- linux使用oracal11g详细过程,很给力的linux下Oracle11g的安装过程及图解.doc
- 阿里专家:怎么样消除程序员的中年危机?
- 近视矫正手术:准分子激光,飞秒,全飞秒
- CentOS导入CA证书
- python空气质量提醒代码_【python】全国空气质量分析系统
- ISO工具集合,好用推荐,喜欢就下载使用
- 自定义邮箱和手机号码的校验规则
- HMI-48-【多媒体】Title界面实现 3
- 六大原则之迪米特法则
- 今日头条推荐算法原理全文详解之一
- 312、519、122三大崩盘实战复盘
- 污水中去除重金属的工艺解析—离子交换树脂
- Improving Knowledge-aware Recommendation with Multi-levelInteractive Contrastive Learning
热门文章
- 【伸手党福利】开发人员重装系统顺序
- 【MATLAB】QPSK调制与解调在MATLAB平台上的实现
- jmeter教程https://max.book118.com/html/2019/0108/6145005114002000.shtm
- Chrome浏览器历史版本下载
- AppCompatDialog背景透明
- sqluldr2的介绍
- 基于Hadoop的hbase安装
- 正点原子STM32 ISP电路分析
- 服务器 启动多个nginx_Nginx工作原理和优化总结
- 工具 | Procexp工具使用及案例说明