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同样由于可以被并发访问,要注意读取和写入配合时的线程安全问题
转载于:https://www.cnblogs.com/wully/p/3305076.html
java web分享ppt大纲 -- servlet包相关推荐
- java web分享ppt大纲 -- servlet容器简介
今天在公司分享了java web的ppt,把ppt大纲放在这里,希望可以帮助需要的人 servlet容器简介 定义 狭义上的,servlet容器为java Web应用提供运行时环境,负责管理servl ...
- Web页面或app等前端页面之Java Web的JSP、Servlet、Cookie、Session等技术小结
Java Web学习,掌握JSP.Servlet.Cookie.Session等内容,使用JSTL进行数据展示完成实际应用. 2.3.1 XML基础 XML的用途.语法规则.语义约束.如何解析XML, ...
- javaweb课堂练习继承与重写怎么做_深入学习Java Web(一):深入了解Servlet
本文转自与博客园一杯凉茶的博客. Servlet是一种古老的Java Web技术,在开发中除了祖传的项目,已经很少见到它的身影,但是作为Java Web的重要组成部分,Servlet还是值得深入学习的 ...
- 初学Java Web(3)——第一个Servlet
这学期 Java Web 课程的第一节课就简短复习了一下 Java 的一些基础知识,所以觉得 Java 的基础知识还是很重要的,但当我想要去写一篇 Java 回顾的文章的时候发现很难,因为坑实在太多了 ...
- Idea创建简单Java Web项目并部署Servlet
1.打开Idea,创建JAVA Web项目 在WEB-INF目录下创建classes和lib文件夹 配置编译输出路径为刚才新建的classes文件夹 配置依赖jar包加载路径 添加tomcat ser ...
- jsp项目在idea需要导入什么依赖_idea中的java web项目(添加jar包介绍)和java maven web项目目录结构...
java web项目 web项目下web根目录名称是可以更改的 idea中新建java web项目,默认src为Sources Root,当然也可以手动改,在Sources Root下右键只能新建Pa ...
- Java Web 学习笔记3 Servlet生命周期
https://www.bilibili.com/video/av31486135/?spm_id_from=333.788.videocard.0 环境:Eclipse 2019-06 (4.12. ...
- Java web(简单的servlet计算器)网页计算器
代码分为两部分,经测试可用. 代码如下: 1.index.jsp <%@ page language="java" contentType="text/html&q ...
- java web 分享功能实现_微信开发(一)基于Wx-java的微信分享功能
最近在做微信服务号开发,简单总结一下,便于自己学习积累和分享给大家: 环境介绍: Spring+ Spring MVC +Mybatis 开发语言: JAVA 微信公众平台的开发中,微信只公布了一个基 ...
- java web 导入数据库_关于JAVA、 JAVA Web项目导入数据库驱动包的问题
导入jdbc驱动程序包其实有很多种方法,但是不同的导包方式有不同的含义, 1.给Tomcat导包(表示服务器可能要用到数据库,例如数据源),如果是MyEclipse集成Tomcat,显然是要用&quo ...
最新文章
- OpenCv java 颜色空间(9)
- windows10下使用wget命令(安装失败,请大家提意见)
- matlab中rat=1函数,matlab中的format rat是什么意思
- SAP HUM嵌套HU研习之HU03显示内层HU数据
- ASP.NET CORE RAZOR :向 Razor 页面添加验证
- 《高性能JavaScript》第六章 快速响应的用户界面
- 剑指offer--整数中1出现的次数
- python默认安装地址_python多版本下设置python3为默认的方法
- linux java环境变量设置
- oracle 结果集已耗尽_java.sql.SQLException: 结果集已耗尽
- 字符流的抽象类 java
- Java面试题:高并发环境下,jdk7 HashMap可能出现的致命问题。注意:是在jdk7与及以下版本
- [Ajax] 如何使用Ajax传递多个复选框的值
- 最小树——迪杰斯特拉算法
- 2019互联网月饼哪家强?阿里走情怀;百度最土豪;浪潮最高冷;抖音最创意 .........
- EllSeg训练实验记录代码解析技巧tips
- 软考数据库考试有题库吗_软考数据库系统工程师考试心得
- MFC调试工具——之BoundsChecker用法
- 回顾经典: AlexNet, CaffeNet — Winner of ILSVRC 2012
- 历史 微信开发者工具_微信开发者工具历史记录