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程序向 ...
随机推荐
- 【Chromium中文文档】多进程资源加载
多进程资源加载(需要更新) 转载请注明出处:https://ahangchen.gitbooks.io/chromium_doc_zh/content/zh//General_Architecture ...
- dllimport与dllexport作用与区别
我相信写WIN32程序的人,做过DLL,都会很清楚__declspec(dllexport)的作用,它就是为了省掉在DEF文件中手工定义导出哪些函数的一个方法.当然,如果你的DLL里全是C++的类的话 ...
- Linux中搭建SVN服务器
一 下载工具 1. subversion-1.6.17.tar.gz 2. subversion-deps-1.6.17.tar.gz 二 解压两个包: 1.在此之前,我已经创建了一个用户svnroo ...
- nodejs上传图片模块做法;
服务端代码: var express = require('express'); var swig = require('swig'); //1.引入multer模块 var multer = req ...
- 素数距离问题_ny_24.java
素数距离问题 时间限制: 3000 ms | 内存限制: 65535 KB 难度: 2 描述 现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度.如果左右有等距 ...
- 开源ceph管理平台inkscope部署手册
一.前情提要 关于inkscope就不做过多介绍了,就是ceph的一个开源管理控制平台,跟ceph官方的calamary以及intel的VSM差不多一类,只是各自侧重点不一样. 相对而言,因为inks ...
- html5 meta标签
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-sca ...
- NSURLSessionConfiguration的简单实用
NSURLSessionConfiguration 基于前面学习了NSURLSession的知识,这边文章就讲下NSURLSessionConfiguration相关应用,(这名字可真长). 简而言之 ...
- IOS基础:深入理解Objective-c中@class的含义
objective-c中,当一个类使用到另一个类时,并且在类的头文件中需要创建被引用的指针时, 如下面代码: A.h文件 #import "B.h" @interface A : ...
- Lua for Windows入门01
由于项目紧急,我都没来得及研究lua的基本知识就直接持枪上阵了.在实施编写的过程中,却次发现编程语言如此之美,第一次. 随着Lua+for+Windows+5.1.4-45版本的完全安装,最后跳出了一 ...