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应用开发和运行平台.基于浏览器的集成开发环境,采用可视化的设计模式,支持控件的拖拽操作,能轻松完成前后台应用开发:高效.稳定和可扩展的特点,适合复杂企 ...
随机推荐
- ABP Zero最新版源码
获取专业版源码 官网 学习版源码
- java之java.lang.UnsupportedClassVersionError:com/mysql/jdbc/Driver : Unsupported major.minor version 52.0
问题解释:jdk版本和mysql驱动版本不兼容,比如:jdk1.7与mysql-connector-java-5.xxx兼容,但与mysql-connector-java-6.xxx及以上不兼容
- H.264学习笔记3——帧间预测
帧间预测主要包括运动估计(运动搜索方法.运动估计准则.亚像素插值和运动矢量估计)和运动补偿. 对于H.264,是对16x16的亮度块和8x8的色度块进行帧间预测编码. A.树状结构分块 H.264的宏 ...
- Farseer.net轻量级ORM开源框架 V1.3版本升级消息
SHA-1: abca3b99801648fa23c7f4934de6c128f042cf47 * 提交新版本:V1.31.重构:FS.Mapping命名空间移到 FS.Core.Map中2.重构:对 ...
- 洛谷 P1569 [USACO11FEB]属牛的抗议Generic Cow Prote…
题目描述 Farmer John's N (1 <= N <= 100,000) cows are lined up in a row and numbered 1..N. The cow ...
- matlab化简符号表达式
化简符号表达式计算机毕竟还是挺笨的, 经过一系列的符号计算后, 得到的结果可能只有它自己才能看懂, Matlab提供大量函数以用于符号表达式的化简. collect(f): 函数用途是合并多项式中相同 ...
- python远程控制电脑
python拥有大量的第三方库,且语法简单.今天老杨就用python实现远程控制电脑 所谓,谋定而后动,在实现任何一个需求之前,我们需要先分析,捋清楚一个思路,远程控制电脑,无非就是接收远程的命令 ...
- Goldengate完成Mysql到Mysql的数据同步
文档参考地址:http://blog.csdn.net/u010587433/article/details/49305019 需求: 使用Goldengate完成Mysql到Mysql的数据同步,源 ...
- 签名mobileconfig 重签ipa
.mobileconfig文件的签名 生成Apache专用的三个证书 双击[2331135_zgp.ink_chain.crt]可以看到它是个根证书,在mac上,双击它,导入到证书中心,然后再导出为p ...
- CSS hover 改变另外一个元素状态
Part.1 问题 我们写页面时也不少遇到这个问题,在没有使用任何预处理语言前提下,当hover 一个元素的时候怎么改变其它的元素? 这里我把它分为两种情况(除自身以外) hover时 1: 改变本身 ...