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 Cookie
Servlet 工作原理解析
从Servlet 容器说起
Servlet 和 Servlet 容器密不分可,通过接口进行连接。在Tomcat的容器等级中,Context 容器直接管理Servet 在 容器中的包装类wrapper,一个Context 对应一个web app。
Servlet 容器的启动过程
将Servlet包装后作为自容器添加到Context 中,其他的web.xml 属性解析到Context 容器中,
初始化 Servlet 调用其init 方法,
Servlet 体系结构

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

Servlet 如何工作
当用户从浏览器发起一个请求,通过tomcat 的 Mapper 找到对应的 Wrapper, 通过Filter 调用对应的service()。
Session/Cookie 的区别
Session 是服务器端保存的一个数据结构,用来跟踪用户的状态。
Cookie 是客户端保存用户信息的机制,也是实现Session的一种方式,服务器端将Session保存后给一个Session ID 让客户端存在cookie 里面。
Session 和 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 编译
如果没有被编译过,那么解析->转化->编译
Java Web 总结的更多相关文章
- 高效 Java Web 开发框架 JessMA v3.5.1
JessMA 是功能完备的高性能 Full-Stack Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 Hibernate.MyBatis 与 J ...
- 高效 Java Web 开发框架 JessMA v3.4.1
JessMA 是功能完备的高性能 Full-Stack Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 Hibernate.MyBatis 与 J ...
- java web 之客户关系管理系统
这个周末真的是觉得自己学会了一个比较高大上的本领,为什么这么觉得呢?那是因为星期六的时候觉得自己可以看看源码能做出来,可是让我头疼的是花费了一上午的时间还是没有弄出来,还好上天给了我机会,要是没有老师 ...
- Java Web中的中文编码
Java Web开发中经常会遇到中文编码问题,那么为什么需要编码呢?因为人类需要表示的符号太多,无法用1个字节来表示,而计算机中存储信息最小单元为1个字节.所以必须指定char与byte之间的编码规则 ...
- java web后台开发SSM框架(Spring+SpringMVC+MyBaitis)搭建与优化
一.ssm框架搭建 1.1创建项目 新建项目后规划好各层的包. 1.2导入包 搭建SSM框架所需包百度云链接:http://pan.baidu.com/s/1cvKjL0 1.3整合spring与my ...
- JAVA WEB项目中各种路径的获取
JAVA WEB项目中各种路径的获取 标签: java webpath文件路径 2014-02-14 15:04 1746人阅读 评论(0) 收藏 举报 分类: JAVA开发(41) 1.可以在s ...
- JAVA WEB WITH IDEA
本文主要介绍使用IDEA开发环境,创建JAVA WEB 工程,并介绍war包的制作过程. 1 创建MAVEN工程
- java WEB开发入门
WEB开发入门 1 进入web JAVASE:标准- standard JAVA桌面程序 GUI SOCKET JAVAEE:企业-浏览器控制 web 2 软件结构 C/S :client ...
- Jenkins 2.16.3默认没有Launch agent via Java Web Start,如何配置使用
问题:Jenkins 2.16.3默认没有Launch agent via Java Web Start,如下图所示,而这种启动方式在Windows上是最方便的. 如何设置才能让出来呢? 打开&quo ...
- 5款强大的Java Web开发工具
1.WebBuilder这是一款开源的可视化Web应用开发和运行平台.基于浏览器的集成开发环境,采用可视化的设计模式,支持控件的拖拽操作,能轻松完成前后台应用开发:高效.稳定和可扩展的特点,适合复杂企 ...
随机推荐
- 用C#操作word替换字符,用spire
这两天想写个小程序,是用C#操作word文档的.许多人都对微软本身的解决方案COM组件十分不看好,比如需要本机安装office等等,总之吐槽很多,直接放弃. 搜到一个国产的npoi库,据说操作简单功能 ...
- AJPFX实列判断一个字符串是不是对称字符串
import java.util.Scanner; /** * 判断一个字符串是否是对称字符串 */ public class StringDemo { public static vo ...
- spark on yarn模式下内存资源管理(笔记1)
问题:1. spark中yarn集群资源管理器,container资源容器与集群各节点node,spark应用(application),spark作业(job),阶段(stage),任务(task) ...
- Java语法基础-static关键字
static关键字说明 “static方法就是没有this的方法.在static方法内部不能调用非静态方法,反过来是可以的.而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法.这 ...
- PostgreSQL执行机制的初步学习
作为开源数据库的新手,近日有兴对比了Pg和MySQL的查询计划. 通过Pg源码目录下的src\backend\executor\README文件,加上一些简单调试,就能对Pg的执行机制产生一个初步印象 ...
- 迅为工业级arm开发板i.MX6DL开发板软件硬件全开源
i.MX6是基于ARM Cortex™-A9架构的高扩展性多核系列应用处理器,促进了如高稳定性工业平板电脑.差异化智能本.前装车载中控系统和超高清电子书阅读器等新一代应用的发展.强劲的3D图形加速引擎 ...
- 使用Intellij IDEA的Bookmarks
用idea的时候,无意中发现了了一个小功能,叫做BookMark Ctrl+F11按出来的然后去查阅了一下文档,主要功能也就是可以清晰的看到自己标的书签附近的代码,比如我们在第11行按一下F11插入一 ...
- ztree 样式修改 white-space: nowrap; 后 下划线要是跟上的话 宽度 width 要 auto 就自动更新了
width:auto; border-bottom:1px solid #ccc; height:30px; display: inline-block;white-space: nowrap;
- xxtea 文件加密与解密
加密 cocos luacompile -s src -d dst_dir -e -b xxxxx -k xxxxx --disable-compile 解密 cocos luacompile -s ...
- 10CSS高级滤镜
CSS高级滤镜 滤镜特效的应用 filter:滤镜属性(参数1,参数2,……) filter是滤镜属性选择符. 透明度——alpha opacity代表透明度等级,参数值从0到100,从完全透明 ...