Java Web 总结

Java Servlet 总结

Servlet 简介

Servlet 是什么?

运行在Web服务器上的应用程序,作为浏览器和服务器之间的中间层。
与CGI功能类似,优点在于

*性能更好
*在Web服务器的地址空间中运行,不会为每个客户端请求创建一个新的进程
*平台独立,可用Java类库

Servlet 架构

Servlet 任务

  • 读取客户端发送的显式数据。(http表单等)
  • 读取隐式数据, 比如cookies
  • 处理数据产生结果
  • 发送显式 隐式数据

Servlet 生命周期

  • 通过init() 初始化
  • service() 处理用户请求

收到请求检查方法类型,调用对应的方法。

  • destroy() 终止
  • 垃圾回收器回收

注意desroy() 销毁之后并不会立即被垃圾回收。

Servlet 编写过滤器

Servlet过滤器可以动态地拦截请求和响应,可以在拦截客户端和服务器端之间交互的信息。通过urlpattern来指定拦截的服务。过滤器中我们可以根据 doFilte() 方法中的 request 对象获取表单参数信息,例如我们可以获取到请求的用户名和密码进行逻辑处理,也可以通过 response 对用户做出回应。比如如果验证用户名不正确,禁止用户访问 web 资源,并且向浏览器输出提示,告诉用户用户名或者密码不正确等等。

Servlet 异常

Servlet Session

Servlet 工作原理解析

从Servlet 容器说起

Servlet 和 Servlet 容器密不分可,通过接口进行连接。在Tomcat的容器等级中,Context 容器直接管理Servet 在 容器中的包装类wrapper,一个Context 对应一个web app。

Servlet 容器的启动过程

将Servlet包装后作为自容器添加到Context 中,其他的web.xml 属性解析到Context 容器中,
初始化 Servlet 调用其init 方法,

Servlet 体系结构

enter image description here

Tomcat 创建的 response 和 request 都是轻量级对象易于回收,接下去当交给一个用户线程去处理这个请求时又创建 Request 和 Response 对象。这两个对象一直穿越整个 Servlet 容器直到要传给 Servlet,传给 Servlet 的是 Request 和 Response 的门面类 RequestFacade 和 RequestFacade,这里使用门面模式与前面一样都是基于同样的目的——封装容器中的数据。

enter image description here

Servlet 如何工作

当用户从浏览器发起一个请求,通过tomcat 的 Mapper 找到对应的 Wrapper, 通过Filter 调用对应的service()。

Session/Cookie 的区别

Session 是服务器端保存的一个数据结构,用来跟踪用户的状态。
Cookie 是客户端保存用户信息的机制,也是实现Session的一种方式,服务器端将Session保存后给一个Session ID 让客户端存在cookie 里面。

Servlet 能够提供的信息

  • 初始化调用init的时候设置的ServletConfig
  • 通过RequestFacade 获取请求中的HTTP信息。

Cookie 和 Session 的作用都是为了保持前后端的交互状态。

JAVA JSP 总结

JSP 技术是以 Java 语言作为脚本语言的,JSP 网页为整个服务器端的 Java 库单元提供了一个接口来服务于HTTP的应用程序。

JSP 简介

什么是 JSP

使用jsp标签 在HTML 中插入java 代码,主要负责MVC 中的View层。

JSP 处理

服务器识别出队jsp 的请求,将请求传递给JSP引擎
载入jsp 文件 ,然后转化为Servlet
将Servlet 编译成可执行类
Web服务器的组件调用Servlet引擎,载入并且执行对应的Servlet类。
返回动态产生的HTML

JSP 生命周期

  • 编译阶段 产生Servlet类
  • 初始化阶段 创建实例 调用初始化方法
  • 执行阶段 调用Servlet的服务方法
  • 销毁阶段

JSP 编译

如果没有被编译过,那么解析->转化->编译

原文地址:https://www.cnblogs.com/joeylee97/p/8427714.html