Java Servlet
文章目录
Tutorials
Servlet 简介
一种用于创建 web 应用的技术
- 用于创建动态 web Application
an API
- 包括多个接口和类
- 创建一个 Servlet 必须要实现 Servlet 的接口
- 用于扩展服务器 Server, 处理 Request 的功能
- Servlet 是一个 Web component, 用于部署到服务器来创建动态网页
Web Application
组成组件 Components
- Servlet
- JSP
- Filter
- HTML
- CSS
- JavaScript
Servlet VS CGI
https://www.javatpoint.com/servlet-tutorial
CGI
- 每一个 Request 创建一个进程
- client 数量多时,对 Request 响应生成 Response 的时间更长
- 使用 平台依赖语言,如:C, C++, perl
Servlet
使用线程
- Better performance: 使用线程不使用进程
- Portability: Java 语言
- Robust: Java
- Secure: Java
Web Terminology 术语
https://www.javatpoint.com/web-terminology
Servlet container
Website: static vs dynamic
Server: Web vs Application
Content Type
相关包
- javax.servlet
- javax.servlet.http
Servlet 用途
读取 client 发送 过来的数据
显式的数据
- html 表单
隐式的数据
- cookies
- 媒体文件
- 浏览器能识别的压缩文件
- 处理数据,生成结果
发送数据
显式数据
- 文本文件
html, xml
- 二进制文件
gif
- Excel
隐式数据
- 文档类型
- 设置 cookies
Tomcat: 支持 Servlet 的服务器
环境搭建
Servlet 生命周期
init()方法
- 初始化
service() 方法
- 已经固定,不要自己修改
通过重写 doGet() 和 doPost() 等等 实现功能
1 2 3 4public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException{ }1 2 3 4 5public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Servlet 代码 }
destroy() 方法
中止与关闭相关资源
- 数据库连接
- 后台线程
- cookie 和 点击计数器写入磁盘
- Java GC 回收 Servlet
运行架构
- Web Server 收到 Request
- Request 交给 Servlet Container
Servlet Container
- 第一次收到 Request 的情况下
调用 Servlet 的 init()方法,启动一个 Servlet
- 已经启动了 Servlet 和 第二次收到 Request
- 为这个 Request 创建一个 Thread, 进行处理
Servlet 部署
手动部署 .class 文件
Servlet 放置位置
- <Tomcat-installation-directory>/webapps/ROOT
<Tomcat-installation-directory>/webapps/ROOT/WEB-INF/classes
- 你的 Servlet 个人包 de 放置位置 com.myorg.MyServlet
设置配置文件
位置
- <Tomcat-installation-directory>/webapps/ROOT/WEB-INF/
修改其中的 web.xml 文件
1 2 3 4 5 6 7 8 9 10 11 12<web-app> <servlet> <servlet-name>HelloWorld</servlet-name> <servlet-class>HelloWorld</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <!-- 设置URL --> <url-pattern>/HelloWorld</url-pattern> </servlet-mapping> </web-app>启动
- <Tomcat-installation-directory>/bin/startup.sh
访问
使用 war 包
文章作者
上次更新 2022-03-07 (de34a70)