Servlet过滤器和监听器
Servlet过滤器(Filter)
过滤器是用于过滤Servlet的请求和响应,过滤器是存在于请求和被请求资源之间的。
过滤器就像当于一个中间件,请求要经过过滤器,然后过滤器才去掉用Servlet,Servlet的响应也会被过滤器截获并作相应的处理。
Filter是一个接口,要写一个自己的Filter就只能实现Filter接口。
Filter也有自己的生命周期,他的生命周期和Servlet比较相似,也是会先调用init()方法,然后再调用核心的处理过滤的方法doFilter(),这个方法中可定义了过滤规则,然后是destory()方法销毁Filter对象。
dofilter(ServletRequest request,ServletResponse response,FilterChain chain)
这个是过滤的核心方法,FilterChain的方法doFilter(ServletRequest request, ServletResponse response)也就是用过滤后的请求调用资源的方法,如果不写这个方法,也就算不会去调用相应的资源。
Filter的配置
Filter的配置和Servlet相似。
<filter>
<filter-name>SessionFilter</filter-name>
<filter-class>alan.filter.SessionFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SessionFilter</filter-name>
<url-pattern>/protected/*</url-pattern>
<!--这里的url-pattern就是要过滤的Servlet的url-pattern-->
<dispatcher>request</dispatcher>
<dispatcher>forward</dispatcher>
<dispatcher>include</dispatcher>
<!--上面的三个是过滤的范围-->
</filter-mapping>
CharArrayWriter类,是一个将数据保存在字符数组中的输出流,我们可以使用它来构造一个PrintWriter对象,也就实现了向内存输出。CharArrayWriter类的toString()和toCharArray()方法就可以取得写入内存中的数据。
注意:CharArrayWriter类是一个不会真正输出的类,他的write()方法只会将内容写入字符数组,而且这个字符数组是会自动增长的。
Servlet监听器
以下是3个Listener接口。
ServletRequestListener
HttpSessionListener
ServletContextListener
这三个监听器接口,分别监听Servlet中3种比较中要的对象的创建和销毁。这三个接口中分别有监听该对象创建和销毁事件的方法,服务器本身就是事件源。
listener的配置
<listener>
<listener-class>alan.servlet.listener.AlanContextListener</listener-class>
<!--listener-class也就是实现Listener接口的类-->
</listener>
Servlet中的重要对象(只针对应用)
数量 生命周期 是否线程安全
ServletContext 1 全局的 不安全
只有在应用关闭时才销毁 需要加同步访问
HttpSession 和用户的 局部的 不安全
数量相同 只在有效时间内存在 需要加同步访问
ServletRequest 多个 局部的 线程安全
(HttpServletRequest) 只在servic()和doGet() doPost()中存在
分享到:
相关推荐
2. 在实验完成时需要向辅导教师报告,以记录实验成绩,实验成绩以百分制记录;实验不得抄袭,否则不记成绩。 提示: 1. 需要实现一个静态登录页面及一个servlet 2. 对于聊天信息的保存可能用到servletcontext 3. ...
《学生信息管理系统——基于JSP与Servlet的实现详解》 在信息技术领域,开发Web应用程序是常见的任务之一,其中,学生信息管理系统是一个典型的案例。本文将深入探讨如何利用JSP(JavaServer Pages)和Servlet技术...
1. 利用servlet技术实现一个简单的聊天室,实现多人同时交流。当发送聊天信息时,信息窗口刷新。信息窗口显示发言人的姓名以及发言的内容。在进入聊天室之前需要进行登录,即输入用户名。 2. 在实验完成时需要向辅导...
该项目是基于jsp+servlet+jdbc的学生请假信息管理系统-可用于大学生日常课设 1.后端开发技术:servlet+jdbc 2.前端技术:jsp 3.前端ui:经典蓝色ui 4.功能点描述: (1)学生 查看个人信息、查看个人的晚归记录、填写...
- **项目辅导视频、论文等资料**:可能包含项目开发过程的教程、设计文档、相关论文等,帮助理解和学习项目。 - **数据库**:包含数据库脚本或已有的数据库文件,用于恢复和操作系统的数据环境。 - **源代码**:...
6. **权限控制**:根据用户角色(学生、班主任、辅导员、教务主任等)设定不同权限,防止越权操作。 综上所述,"JSP+Servlet学生请假系统"是一个典型的Web应用示例,涉及Web开发的基础技术、数据库操作、MVC设计...
《基于JavaEE、原生Servlet和MySQL的酒店管理系统设计与...项目的"项目辅导视频"和"论文等资料"可以进一步深入学习各个模块的具体实现细节,而"源代码"则可供开发者参考和学习,"项目截图"展示了系统的实际运行效果。
5. **Spring框架**:Spring是Java企业级应用的首选框架,它提供了依赖注入(DI)和面向切面编程(AOP),简化了项目的开发和管理。Spring MVC模块可以方便地构建Web应用程序,而Spring Data支持与数据库的交互。 6....
Java认证是全球认可的Java程序员技能评估标准,2009年的Java认证辅导资料涵盖了当时最新的Java技术,旨在帮助考生顺利通过考试并提升其Java编程能力。这些资料可能包括了Oracle Certified Associate (OCA), Oracle ...
4. 权限管理:设置不同角色(如管理员、辅导员等)的权限,确保数据安全。 5. 报表统计:生成各类统计报表,如空余床位、住宿率等。 【开发工具与环境】 开发过程中,可能使用了Eclipse或IntelliJ IDEA作为集成开发...
资源名字:基于javaEE+原生Servlet+MySql的村镇旅游网站设计与实现(源码+文档)_JAVAEE_Servlet_旅游网站 资源类型:项目全套源码+文档+辅导视频 源码说明: 全部项目源码都是经过测试校正后百分百成功运行。 适合...
- **项目辅导视频**:这部分资源可能包含教程或讲解视频,帮助学习者理解项目的实现过程和关键概念。 - **论文等资料**:可能包含项目的设计理念、技术选型的分析报告等。 - **数据库**:包含了项目所需的表结构...
#### Servlet辅导 Servlet是一种Java技术,用于扩展服务器的功能,特别是处理HTTP请求和响应。它相当于服务器端的小应用程序,可以接收客户端发送的请求,执行相应的业务逻辑,并返回响应结果。Servlet生命周期包括...
城市公交查询系统介绍 我国许多城市都有一些颇具设计感的公交站台,但我们却很难在这里找到我们出行需要的信息。...5.训练检索文献资料和利用文献资料的能力; 6.训练撰写技术文档与学位论文的能力。
项目辅导视频、论文等资料可以进一步指导开发过程,帮助理解和解决问题。数据库文件和源代码提供了具体实现细节,通过阅读和分析这些内容,可以深入学习到实际开发中的技巧和最佳实践。项目截图则能直观展示系统功能...
5. **权限控制**:为了保证数据安全,系统会实现用户权限控制,例如辅导员、管理员等不同角色有不同的操作权限。 6. **考评流程**:考评流程可能包括设定考评指标、收集辅导员工作数据、自动计算评分、审核及反馈等...
8. **论文撰写**:项目附带的论文详细阐述了系统的架构设计、功能实现和性能测试,是深入理解系统设计思想和技术实现的重要参考资料。 9. **视频教程**:项目辅导视频则为学习者提供了直观的操作演示,帮助理解和...
在辅导员管理系统中,Servlet将处理来自前端的请求,例如添加学生信息、更新课程表、查询成绩等。开发人员会创建自定义的Servlet类,重写`doGet`和`doPost`方法来处理特定的HTTP请求。 3. **JDBC与数据库交互** ...