`
ralphr
  • 浏览: 143267 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Servlet常用接口

阅读更多

过滤器可以在请求到达JSP或Servlet之前或响应返回客户端之前添加一些额外的操作。如果有多个JSP页面和Servlet都需要进行一个相同或相似的操作,我们可以把这个操作抽取到一个Servlet过滤器中,并通过匹配路径截获感兴趣JSP或Servlet。

  我们举几个典型的过滤器应用的例子,读者可以推而广之:

  ·编码转换

  乱码问题困扰了不少的Web应用程序开发者,这是因为基于Java的Web应用程序可能运行于不同的Web应用程序器、操作系统平台或硬件服务器上,不同的环境有自己默认的编码类型,在数据的转换过程中不同的默认编码是乱码问题的始作俑者,所以在开发JSP时常常需要将数据进行编码转换。我们可以创建一个Servlet过滤器在请求进入服务程序前都进行编码转换。

  ·添加统一的标题或脚注

  有些网页需要添加统一的标题头或脚注,可以通过Servlet过滤器在响应返回到客户端前给网页添加上统一的标题和脚注。

  ·进行安全的控制

  登录系统后,一般都会将用户信息对象放入到session中,可以通过Servlet过滤器在请求进入JSP或Servlet前判断session中是否有用户信息对象,如果有,则说明用户已经登录,如果没有,则说明用户还没有登录,将请求重定向到登录页面。

过滤器例:

1. package bookstore.servlet;
2. …
3. public class LoginCheckFilter
4. extends HttpServlet implements Filter
5. {
6.  …
7.  public void doFilter(ServletRequest request, ServletResponse response
8.      , FilterChain filterChain)
9.  {
10.  try
11.  {
12.   //进行请求和响应的类型转换
13.   HttpServletRequest httpRequest = (HttpServletRequest) request;
14.   HttpServletResponse httpResponse = (HttpServletResponse) response;
15.
16.   boolean isValid = true;
17.   String uriStr = httpRequest.getRequestURI().toUpperCase();
18.   if (uriStr.indexOf("LOGIN.JSP") == -1 &&
19.     uriStr.indexOf("SWITCH.JSP") == -1 &&
20.     httpRequest.getSession().getAttribute("ses_userBean") == null)
21.   {
22.    isValid = false;
23.   }
24.   if (isValid)
25.   {
26.    filterChain.doFilter(request, response);
27.   } else
28.   {
29.    httpResponse.sendRedirect("/webModule/login.jsp");
30.   }
31.
32.  } catch (ServletException sx)
33.  {
34.   filterConfig.getServletContext().log(sx.getMessage());
35.  } catch (IOException iox)
36.  {
37.   filterConfig.getServletContext().log(iox.getMessage());
38.  }
39. }
40. …
41. }

在web.xml中配置如下:

1. <web-app>
2.  <display-name>webModule</display-name>
3.  <filter>
4.   <filter-name>logincheckfilter</filter-name>
5.   <filter-class>bookstore.servlet.LoginCheckFilter</filter-class>
6.  </filter>
7.  <filter-mapping>
8.   <filter-name>logincheckfilter</filter-name>
9.   <url-pattern>/*</url-pattern>
10.  </filter-mapping>
11.  …
12. </web-app>

<filter-name>配置过滤器的名字和实现类,而<filter-mapping>配置过滤器的路径匹配模式。

分享到:
评论

相关推荐

    servlet常用接口

    以下是对这些常用Servlet接口的详细讲解: 1. **Servlet接口** Servlet接口是所有Servlet类的基础,它定义了Servlet的核心方法。主要包括: - `init(ServletConfig config)`: 初始化Servlet实例,服务器在部署...

    servlet常用类接口

    ### Servlet常用类与接口 #### 一、Servlet接口 Servlet接口是Servlet规范中的核心部分,它定义了Servlet组件的行为和生命周期方法。一个典型的Servlet需要实现以下方法: 1. **init(ServletConfig config)**:...

    Servlet常用语法Demo

    本实例"Servlet常用语法Demo"旨在帮助初学者理解并掌握Servlet的基本用法和常见应用场景。 1. **Servlet生命周期** Servlet的生命周期包括加载、初始化、服务、销毁四个阶段。当服务器启动或第一次接收到对Servlet...

    Servlet与表单

    #### 17.2 Servlet常用接口、类及其方法 ##### 17.2.1 Servlet接口 `Servlet`接口是所有Servlet的基础,它是`javax.servlet.Servlet`包中的一个接口,定义了Servlet的基本行为。开发人员通常不会直接实现该接口,...

    SERVLET实验

    Java Servlet API包含一系列接口和类,如`HttpServlet`,`GenericServlet`,`ServletConfig`和`ServletContext`等。`HttpServlet`是Servlet的子接口,提供了处理HTTP请求的方法。 4. **注册Servlet**: Servlet...

    Java Servlet应用程序接口查询Java.Servlet.API和SWT 应用程序接口查询SWT_API.rar

    Java Servlet应用程序接口(Java.Servlet.API)是Java服务器端编程的核心组件,主要用于构建动态Web应用程序。它定义了一系列的类和接口,使得开发人员可以编写能够处理HTTP请求并返回响应的Servlets。Servlet API...

    常用的包servlet-api

    这个包包含了Servlet API接口和类,使得开发者能够创建动态响应的Web应用程序。在描述中提到了`tomcat`,这是一款广泛应用的Java Web服务器,它内建了对Servlet的支持。`spring`框架同样与Servlet紧密相关,因为...

    Servlet基础知识总结

    1. **实现Servlet接口**:实现`javax.servlet.Servlet`接口,该接口包含`init()`、`service()`和`destroy()`等方法。 2. **继承GenericServlet类**:这是一个抽象类,实现了Servlet接口,提供了除了`service()`方法...

    Servlet Tutorial

    Servlet API 提供了丰富的接口和类,例如 Servlet、GenericServlet、HttpServlet、ServletRequest、ServletResponse 等,用于开发 Web 组件。 2. Servlet 的定义: Servlet 可以从不同的角度进行描述: - 技术层面...

    JavaWeb开发技术-Servlet接口及其实现类.pptx

    除了Servlet接口,还有两个常用的Servlet实现类:GenericServlet和HttpServlet。 - GenericServlet是一个抽象类,它实现了Servlet接口。这个类提供了`service()`方法的默认实现,该方法会基于请求的类型调用`doGet...

    JSP动态网站开发基础教程与实验指导(从基础到应用)光盘

    8.2 Servlet常用接口及使用 177 8.2.1 Servlet体系 178 8.2.2 Servlet实现相关 179 8.2.3 Servlet请求和响应相关 182 8.2.4 配置相关 186 8.2.5 会话跟踪 188 8.2.6 Servlet异常相关 192 8.3 Servlet配置选项 192 ...

    servlet-api源码包

    这个源码包包含了用于构建动态Web应用程序的接口和类,是Java Servlet规范的一部分。本文将深入探讨Servlet-API中的关键概念、主要类和接口,以及它们在实际开发中的应用。 1. **Servlet接口** Servlet接口是所有...

    servlet原理和实践

    `doGet()`和`doPost()`是Servlet中最常用的方法,分别对应HTTP的GET和POST请求。你可以覆盖这些方法来实现特定的业务逻辑。 12. **获取用户输入** 通过`HttpServletRequest`对象,你可以使用`getParameter()`方法...

    JSP应用开发-Servlet创建及常用方法.pptx

    JSP 应用开发 - Servlet 创建及常用方法 JSP 应用开发中,Servlet 是一个非常重要的组件,它是基于 Java 编程语言的 WEB 服务器端编程技术,运行在 WEB 服务器端,获得客户端的访问请求信息和动态生成对客户端的...

    servlet的三种方法的实现

    它是大多数Servlet开发中最常用的方式,因为它已经为我们提供了处理GET和POST请求的默认实现,即`doGet()`和`doPost()`方法。只需覆盖这两个方法,就可以处理HTTP请求。这种方式简化了开发过程,降低了编写大量重复...

    servlet2.3规范中文版

    GenericServlet是基础接口,而HttpServlet是更常用的抽象类,多数开发者会继承HttpServlet来创建自定义Servlet。HttpServlet提供了处理HTTP请求的专用方法,如doGet、doPost等。这些方法对应HTTP的请求方法,如GET、...

Global site tag (gtag.js) - Google Analytics