java web分享ppt大纲 -- servlet包
概述
- servlet相关代码所在包:
javax.servlet
javax.servlet.http
- 常用的功能模块
Servlet,filter,listener
- 常用的相关类:
servletContext
servletConfig
HttpServletRequest
HttpServletResponse
HttpSession
Cookie
servlet
- 定义
Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。 它担当客户请求与服务器响应的中间层。
- servlet生命周期
初始化阶段 init():
在servlet创建时调用的方法,在整个生命周期仅调用一次,那么servlet什么时候创建那?通常是两种情况:
1 在web.xml里面设置了 <load-on-startup>,则在servlet容器启动时创建,并根据该属性值决定创建的顺序,越小越先创建
2 如果没有设置,则是在用户第一次对该servlet发出请求时调用
在容器启动时创建的功能,通常可以被一些框架所利用,做路由控制和其他的全局操控,例如springmvc及jersey等框架
响应客户请求阶段 service(),
在客户请求时调用,可以通过多线程处理多个客户的并发请求,通常我们直接或者间接通过这个方法进行web业务逻辑的处理和输出
对doGet,doPost的处理其实多数也是内部调用service的结果
终止阶段 destory()
在servlet销毁时调用的方法,例如关闭servlet容器时。在整个生命周期仅调用一次
filter
- 定义
能够对目标资源的请求和响应进行截取

一个web请求通常会经过一系列filter处理最后交由特定的servlet处理,当然filter自身也可以决定他是否向下把请求传递下去,如果不往下传,他也完全可以充当servlet的角色,例如我们常用的框架struts2.0或者是阿里的webx框架均是从filter实现的,并没有走到servlet中去
- 生命周期:
初始化阶段 init(FilterConfig)
初始化filter,整个生命周期只初始化一次
过滤客户的请求阶段 dofilter
对客户的请求进行过滤,可以通过多线程处理多个客户的过滤操作,相关的过滤逻辑写在doFilter中
终止阶段 destory
在filter销毁时调用的方法,例如关闭servlet容器时。在整个生命周期仅调用一次
应用模式:(在filter-mapping中配置 dispatcher)
Request,forward, include,error
默认为request,则为用户实际发起的请求
forward,为服务器内部跳转的请求
include为 jsp中include包含的请求
error为客户请求出现异常时的处理
- 如何在filter中使用spring注入的bean
方法一:org.springframework.web.filter.DelegatingFilterProxy
该方法为bean的一个代理,可以使用实际的bean来充当filter
方法二:使用原生api,获取ApplicationContext
WebApplicationContextUtils.getWebApplicationContext(servletContext);
listener:
- 定义
在web项目中,我们有时候会需要监听一些对象的状态,当状态变化时触发相关的操作,这个时候listener就充当了监听器的角色

- 分类:
简单可以分为事件监听器和生命周期监听器
凡是带有AttributeListener的监听器,都会在属性发生改变时触发,例如HttpSessionAttributeListener会在session的属性添加,修改,删除时触发
其他监听器,一般在该对象创建,销毁时触发,例如我们经常会用到的ServletContextListener监听器,他会在ServletContext创建和销毁时触发相应的方法,依托于此,spring这个框架得以在web项目中载入
常用的相关类:
- servletContext ,servletConfig
这两个可以用来存储servlet 的环境变量,区别是一个是整个项目所有servlet公有的环境变量,一个是单个servlet独占的环境变量。
表现在web.xml上,一个可以是web-app 级别设置的变量(通过init-param),一个是servlet级别下面设置的参数
在编程中应用时,要注意虽然对于每个属性的获取和修改(如果有)操作都是线程安全的,但是组合起来使用却不一定时线程安全的。
- HttpServletRequest 和 HttpServletResponse
这两个是用户请求和答复的封装类,通过这两个对象,描述用户的请求和回复。一些get,post参数的获取,session,cookie对象在用户请求的提取,都是通过这两个进行操控的
- HttpSession 和 Cookie
这两个分别操控web项目中用户的session 和 cookie,需要注意的是session同样由于可以被并发访问,要注意读取和写入配合时的线程安全问题
java web分享ppt大纲 -- servlet包的更多相关文章
- java web分享ppt大纲 -- servlet容器简介
今天在公司分享了java web的ppt,把ppt大纲放在这里,希望可以帮助需要的人 servlet容器简介 定义 狭义上的,servlet容器为java Web应用提供运行时环境,负责管理servl ...
- SpringMVC内容略多 有用 熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。
熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构 ...
- Java web每天学之Servlet工作原理详情解析
上篇文章中我们介绍了Servlet的实现方式以及Servlet的生命周期,我们这篇文章就来介绍一下常用对象. 点击回顾:<Java Web每天学之Servlet的工作原理解析>:<J ...
- Java Web每天学之Servlet的原理解析
Java Web每天学之Servlet的工作原理解析,上海尚学堂Java技术文章Java Web系列之二上一篇文章Java Web每天学之Servlet的工作原理解析是之一,欢迎点击阅读. Servl ...
- 【Java Web开发学习】Servlet、Filter、Listener
[Java Web开发学习]Servlet 转发:https://www.cnblogs.com/yangchongxing/p/9274739.html 1.Servlet package cn.y ...
- java web学习总结(五) -------------------servlet开发(一)
一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...
- java web学习总结(六) -------------------servlet开发(二)
一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些 ...
- java web 学习六(servlet开发2)
一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些 ...
- java web 学习五(servlet开发1)
一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...
随机推荐
- B2C 电商网站需要怎样的 ERP 系统
B2C 电商网站需要怎样的 ERP 系统 主要由如下一些系统组成:1.进销存系统,你的产品的采供销当然最好是由系统来实现:2.BI系统,BI包括所有的流量.订单.商品.库存.发货等所有数据节点,亦包含 ...
- openNebulafrontEnd ComputeNode 配置记录
1,OpenNebula nfs(file system shared) for image datastore;
- python第三天---collections类
collection系列 1.计数器(counter) Counter是对字典类型的补充,用于追踪值的出现次数. 我们从中挑选一些相对常用的方法来举例: 在上面的例子我们可以看出,counter方法返 ...
- 仅仅需手动添加一行代码就可以让Laravel4执行在SAE (v. 1.0.0)
Github:https://github.com/chariothy/laravel4-sae (已更新至v1.1.0) laravel4-sae (v. 1.0.0) 仅仅需手动添加一行代码就可以 ...
- Android布局绘制常见小问题
一些网上分享的整理 1.Android设置Selector不同状态下颜色及图片 Selector常用状态: android:state_selected 控件选中状态,可以为true或false an ...
- 软件开发常用Linux命令
解压缩 tar -zxvf xxx.tar.gz 文件显示及查找常用于分析log //显示file中包含aaa的行 cat <file>|grep aaa 查看cpu memory基本信息 ...
- ASP.NET MVC 音乐商店 - 目录
这一个系列的内容来自微软的音乐商店 Music Store, 这是项目在 Codeplex 上的地址:http://mvcmusicstore.codeplex.com/. 这个项目使用 ASP.NE ...
- 浅谈Spring(一)
一.Spring引言 Spring是一款轻量级框架,代码入侵量很小,并且还是众多优秀的设计模式的组合(工厂.代理.模板.策略). 特点: 1.方便解耦,简化开发 通过Spring提供的IoC容器,我们 ...
- 关于win7系统的Oracle安装时的[INS-30131]问题的解决方案
我是今天晚上安装的Oracle,结果在第二步遇到了这个问题,前后折腾了两个小时,百度了很多解决方案,终于解决了这个问题; 由于我的电脑系统还是win7的系统,其他的我没试过,不过也差不多都这么解决; ...
- Ubuntu Server 14.04在VMware安装的一些事儿
这几天一直在折腾Ubuntu Server 14.04,故记录下: 安装前的准备: 1.建议安装英文版,像15.04.16.04等安装中文版时存在bug,而且中文版字体显示也有问题. 2.Ubuntu ...