JSP网站开发基础总结《九》(转)

简介:   本篇属于附加篇,在之前的总结中给大家提到过一个关于登录状态验证的效果,当时是通过Session对象完成的,今天我查了一下,JSP为我们封装了一个用于过滤用的过滤器类Filter,通过它我们就可以非常轻松的完成之前的那个功能了,而且可以在很多地方使用,非常实用。

 

  本篇属于附加篇,在之前的总结中给大家提到过一个关于登录状态验证的效果,当时是通过Session对象完成的,今天我查了一下,JSP为我们封装了一个用于过滤用的过滤器类Filter,通过它我们就可以非常轻松的完成之前的那个功能了,而且可以在很多地方使用,非常实用。废话不多说,下面开始简单为大家介绍一下JSP提供的过滤器类。

 1、过滤器简介:

  过滤器是什么?过滤器就是根据过滤规则对过滤源进行过滤,然后得到过滤结果。Web过滤器的是什么呢?首先Web过滤器的过滤源是用户的各种请求,过滤规则是开发人员实现制定好的,过滤结果是响应。如何理解呢?大家应该都有这样的经历,当我们想下载一个资源时,如果没有登录,这是系统就会弹出登录窗口强制我们登录;而当我们已经登录后,我们单击下载时,便不会出现强制我们登录的页面。这便是今天我们要一起学习的Web拦截器知识。

 2、过滤器的工作原理:

  

 3、过滤器的生命周期:

  

  过滤器的初始化,我们将我们的工程添加到Tomcat后,当启动Tomcat后,系统便立即会调用过滤器的init()方法,也就是我们的工程一旦部署,我们在项目的添加的过滤器便立刻开始工作。当我们关闭Tomcat时,我们的过滤器会调用destroy()方法,结束我们的过滤监听。

 4、探究过滤器的工作原理:

  a、创建过滤器对象类:

复制代码
public class firstFilter implements Filter {

    public void destroy() { System.out.println("Destory-----first"); } public void doFilter(ServletRequest request, ServletResponse response, FilterChain arg) throws IOException, ServletException { System.out.println("start-----first"); arg.doFilter(request, response);//没有该方法,页面将一直处于加载状态。 System.out.println("end-----first"); } public void init(FilterConfig arg0) throws ServletException { System.out.println("Init-----first"); } }
复制代码

  该类需要实现javax.servlet.Filter接口:   

  

  b、web.xml文件声明:

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 
 <!-- 过滤器对象声明 -->
 <filter>
  <filter-name>firstFilter</filter-name><!-- 过滤器名 -->
  <filter-class>cn.imcook.filter.firstFilter</filter-class><!-- 指定我们新建的过滤器对象的地址 -->
 </filter>
 <!-- 过滤规则声明  -->
 <filter-mapping>
  <filter-name>firstFilter</filter-name><!-- 指定规则对于的过滤器对象 -->
  <url-pattern>/*</url-pattern><!-- *:代表所有的请求 -->
  <dispatcher>REQUEST</dispatcher><!-- 该处有四个值可选,默认是REQUEST -->
 </filter-mapping>
 
 <welcome-file-list>
  <welcome-file>index.jsp</welcome-file>
 </welcome-file-list>
 <login-config>
  <auth-method>BASIC</auth-method>
 </login-config>
</web-app>
复制代码

  这样一行行写代码,很不方便,myeclipse为我们提供了窗口化操作,请看下面的步骤:

  打开我们的web.xml文件,点击Design,进入窗口操作界面:

  

  点击左侧的Filter,先添加一个过滤器对象:

  

  然后再点击Filter,添加该过滤器的规则声明(Filter Mapping):

  

 5、启动Tomcat,在地址浏览器地址栏输入我们的工程名(例如:http://localhost:8080/HelloWord/index.jsp),观察myeclipse控制台的输出。

  ·

  以上便是我们对Filter生命周期的探究。

 6、过滤重定向:

  在这里我们只需要在我们创建的Filter类中稍作修改就可以完成了,那如何修改呢?我只需要在我们的doFilter()方法中添加一个重定向就可以了。

复制代码
public class loginFilter implements Filter {

    public void destroy() { System.out.println("Destroy"); } public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { System.out.println("start-----doFilter"); //arg2.doFilter(arg0, arg1); //重定向 HttpServletRequest requst = (HttpServletRequest)arg0; HttpServletResponse response = (HttpServletResponse)arg1; response.sendRedirect(requst.getContextPath()+"/Login.jsp"); System.out.println("end------doFilter"); } public void init(FilterConfig arg0) throws ServletException { System.out.println("Init"); } }
复制代码

  对于JSP中关于过滤器的知识,就先为大家总结到这里,如果你对过滤器知识很感兴趣,请持续关注博客。下一篇:对个过滤器执行顺序

http://www.cnblogs.com/AndroidJotting/p/4351454.html

 

 

相关文章
|
SQL Java 数据库
JSP毕业设计宣传网站系统myeclipse开发sql数据库BS模式java编程网页结构
JSP 毕业设计宣传网站系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 二、功能介绍
55 0
|
3月前
|
前端开发 安全 Java
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
28 0
|
5月前
|
前端开发 安全 Java
Java服务器端开发实战:利用Servlet和JSP构建动态网站
【6月更文挑战第23天】**Servlet和JSP在Java Web开发中扮演关键角色。Servlet处理业务逻辑,管理会话,JSP则结合HTML生成动态页面。两者协同工作,形成动态网站的核心。通过Servlet的doGet()方法响应请求,JSP利用嵌入式Java代码创建动态内容。实战中,Servlet处理数据后转发给JSP展示,共同构建高效、稳定的网站。虽然新技术涌现,Servlet与JSP仍为Java Web开发的基石,提供灵活且成熟的解决方案。**
71 8
|
5月前
|
存储 Java 关系型数据库
基于JSP的母婴用品网站系统
基于JSP的母婴用品网站系统
|
5月前
|
存储 Java 关系型数据库
基于JSP的二手交易平台网站
基于JSP的二手交易平台网站
|
5月前
|
Java 关系型数据库 MySQL
基于JSP的二手车交易网站
基于JSP的二手车交易网站
|
5月前
|
Java 关系型数据库 MySQL
基于JSP的班级同学录网站
基于JSP的班级同学录网站
|
5月前
|
存储 Java 关系型数据库
基于JSP的九宫格日志网站
基于JSP的九宫格日志网站
|
6月前
|
前端开发 JavaScript Java
招聘网站|基于ssm的jsp招聘网站的设计
招聘网站|基于ssm的jsp招聘网站的设计
|
6月前
|
前端开发 JavaScript Java
招聘网站|基于ssm的jsp招聘网站的设计
招聘网站|基于ssm的jsp招聘网站的设计

相关实验场景

更多
下一篇
无影云桌面