`
jiangduxi
  • 浏览: 456978 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Servlet 上下文和协作、过滤

阅读更多
和Servlet上下位相关的接口有ServletContext
ServletContext
声明: public interface ServletContext

在服务器上使用Session对象维持与单个客户相关的状态,而当为多个用户Web应用维持一个状态时,则应使用Servlet环境(Context)
  ServletContext对象表示一组Servlet共享的资源。在Servlet API的1.0和2.0的版本中ServletContext对象仅仅提供了访问有关Servlet环境信息的方法。
例如:提供了访问服务器名称MIME类型映射等方法和可以将信息写入服务器日志文件的log()方法,大部分实现程序都会为一台主机中的所有Servlet或每一个虚拟机主机提供一个Servlet环境。

它常用的方法有:
1.getAttribute(String name) 获得ServletContext中名称为name的属性
2.getContext(String uripath) 返回给定的uripath的应用的Servlet上下文,如ServletContext test=getContext("/test");
3. removeAttribute(String name) 删除名称为name属性
4. setAttribute(String name,Object object)在ServletContext中设置一个属性,这个属性的名字为name,值为object对象。

Servlet协作

Servlet协作主要是RequestDispatcher接口,它可以把一个请求转发到另一个Servlet。
RequestDispathcer
声明: public interface RequestDispatcher
它包含两个方法,
1. forword(ServletRequest request,ServletResponse response)把请求转发到服务器上的另一个资源(Servlet,JSP,HTML)
2. include(ServletRequest request,ServletResponse response)把服务器上的另一个资源(Servlet、JSP、HTML)包含到响应中。

过滤

在web应用中实施过滤是我们常使用的技术。通过过滤,可以对请求进行统一编码、对请求进行认证等。每个Filter可能只担任很少的任务,多个Filter可以互相协作,通过这种协作,可以完成一个复杂的功能。

1. Filter
声明: public interface Filter
它是Filter必须实现的接口,包括:
1. init(FilterConfig filterConfig) 这个方法初始化Filter
2. doFilter(ServletRequest request,ServletResponse response,FilterChain chain)Filter的业务方法就是这里实现
3. destroy() 释放Filter占用的资源

FilterChain
声明: public interface FilterChain
它是代码的过滤链,通过这个接口把过滤的任务在不同的Filter之间转换。
它包含了一个方法:
doFilter(ServletRequest request、ServletResponse response)
通过这个方法来调用下一个Filter。如果没有下一个Filter,那么将调用目标的资源

FilterConfig
声明: public interface FilterConfig
它代表了Filter的配置。和Servlet一样,Filter也有一些配置信息,比如Filter的名字和初始化参数等
它包含了以下方法
1. getFilterName() 返回Filter的名字
2. getInitPatameter(String name) 获得名称为name的初始参数
3.getServletContext() 返回这个Filter所在的Servlet上下文对象
4. getInitParameterNames() 获得Filter配置中的所有初始化参数的名字。
分享到:
评论

相关推荐

    深入Java Servlet 网络编程

    4. **Servlet上下文和过滤器**:讲解ServletContext对象,用于共享信息,以及Servlet过滤器的概念,用于拦截和修改请求或响应。 5. **Servlet与JSP的结合**:展示如何使用JSP进行视图层的处理,以及JSP与Servlet之间...

    Servlet2.4规范(pdf)

    4. **Servlet上下文**:`ServletContext`接口提供了获取应用范围内的信息和资源的方法,如读取初始化参数,与其它Servlet共享数据,或者触发全局事件。 5. **会话管理**:Servlet 2.4规范引入了HttpSession接口,...

    韩顺平servlet笔记

    7. **Servlet上下文(ServletContext)**:共享数据和资源的容器,可以用来存储全局信息,如配置信息、初始化参数等。 8. **Servlet协作与过滤器(Filter)**:Servlet之间可以通过Session、RequestDispatcher等...

    Java Servlet API (英文版)

    - **ServletContext接口**: 表示Servlet上下文,是所有Servlet共享的信息存储区,用于存储全局数据或跨Servlet通信。 4. **URL映射与请求分发** - **web.xml配置**: 通过`<servlet>`和`<servlet-mapping>`元素在...

    简单的web开发——servlet案例

    访问`http://localhost:8080/yourapp/simple`(替换`yourapp`为你的应用上下文路径)即可触发Servlet的执行。 ### 6. Servlet与JSP的协作 在实际开发中,Servlet通常用于处理业务逻辑,而JSP用于展示视图。Servlet...

    servlet

    `ServletContext`代表整个Web应用的上下文,它可以用来在整个应用范围内共享数据。通过`ServletContext`,Servlet可以与其他Servlet通信,或者获取应用的初始化参数。 ### 6. RequestDispatcher和转发与重定向 `...

    servlet2.4doc

    `ServletContext`是整个Web应用的共享上下文,它可以在所有Servlet之间共享数据,也可以用来监听应用级别的事件。 **异步处理** Servlet 2.4虽然没有引入完整的异步处理模型,但开始引入了预处理(asynchronous ...

    Core Servlet ppt

    - 监听器(Listener)可以监听特定事件,如会话创建、销毁、请求上下文初始化等。 8. **MVC框架与Servlet的关系** - MVC(Model-View-Controller)模式在Web开发中广泛使用,Servlet常作为控制器的角色,处理请求...

    servlet帮助文档

    ServletContext代表整个Web应用的上下文,可以用来共享数据、监听应用事件、获取初始化参数等。通过`ServletContextListener`接口,开发者可以在应用启动和停止时执行特定操作。 8. **Servlet过滤器(Filter)** ...

    servlet jsp新闻发布系统

    4. **JSP内置对象**:如pageContext、request、response、session、out等,它们提供了对HTTP请求和响应对象的访问,以及对JSP页面上下文的控制。 5. **EL(Expression Language)和JSTL(JavaServer Pages Standard...

    JAVA Servlet实现的网上书店(源码

    3. **部署**:项目部署在Apache Tomcat服务器上,通过配置`server.xml`文件,设置监听端口、应用上下文路径等。 综上所述,这个基于Java Servlet实现的网上书店项目展示了Web开发的基本流程和技术栈,涵盖了用户...

    Spring Security 3.1 +Spring +Servlet+JdbcTemplate

    执行这个SQL脚本将初始化数据库,为应用提供安全上下文。 `说明.txt`文件可能包含了项目的一些介绍、安装步骤或者配置说明,这对于理解和运行项目至关重要。建议仔细阅读此文件,以了解如何设置环境和启动应用程序...

    Java Web编程之Servlet技术详解

    - **ServletContext**:这是整个Web应用的共享上下文,可以用来存储全局数据,或者广播事件给其他Servlet。 - **多线程**:Servlet是线程安全的,因为容器会在处理每个请求时使用单独的线程,所以开发者需要注意...

    J2EE程序设计2.ppt

    - `ServletContext`: 表示整个Web应用的上下文,提供全局信息。 - `ServletException`: 处理Servlet运行时的异常。 - `HttpSession`: 支持会话跟踪。 - `RequestDispatcher`: 用于Servlet之间的协作,转发或包含其他...

    servlet-practices

    监听器(Listener)是另一种重要组件,它们监听特定的事件,如Servlet上下文的初始化、session的创建或销毁等,并在这些事件发生时执行相应操作。 7. **会话管理** 在Servlet应用中,`HttpSession`对象用于跟踪...

    prac_fliter_WorkIt_源码.zip

    在给定的压缩包"prac_fliter_WorkIt_源码.zip"中,我们可以推测这是一份关于编程实践和过滤器工作原理的源代码。...同时,如果有文档或注释,它们将提供更丰富的上下文信息,帮助你更好地理解和学习这个实践项目。

    ssh整合文档.txt

    3. **通过`web.xml`配置Servlet**:使用`ContextLoaderServlet`来加载Spring的上下文,并可以指定多个配置文件。 不同的整合策略适用于不同的场景,开发者可以根据项目的具体需求选择合适的方案。 ### 结论 通过...

    jsp开发论坛

    9. **部署与运行**:JSP应用通常部署在Tomcat、Jetty等Servlet容器上,开发者可以通过Web应用部署描述符(web.xml)配置应用的上下文路径、过滤器、监听器等。 10. **最佳实践**:为了提高JSP应用的性能和可维护性...

    《Java Web开发速学宝典》各章节例子源码

    书中的源码可能包含会话监听器、应用上下文监听器的实现。 7. **Maven/Gradle构建工具**:Java Web项目通常使用Maven或Gradle进行依赖管理和构建,例子中可能包含项目的构建配置文件(pom.xml或build.gradle),...

    Acegi配置指南[整理].pdf

    而 `lifecycle` 参数则用于指定过滤器的生命周期管理方式,`servlet-container-managed` 表明过滤器的生命周期由容器管理,允许 Acegi 使用 J2EE 规范中的 `init()` 和 `destroy()` 方法。 接下来,我们看到 `...

Global site tag (gtag.js) - Google Analytics