`
747017186
  • 浏览: 317932 次
社区版块
存档分类
最新评论

jsp标签的使用以及过滤器和监听器

    博客分类:
  • jsp
 
阅读更多

 1 <jsp:JavaBean>的使用

<!--[if !supportLists]-->1. <!--[endif]-->可以直接使用,<%@ page import=”xxx.xx.xx”%导入相应的包。然后再页面上写上<%%>包围java代码进行使用。

<!--[if !supportLists]-->2. <!--[endif]-->直接使用<jsp:javaBean>标签即可。

2 <jsp:JavaBean>的4种保存范围

 

 3 <jsp:javaBean>的删除



 例子



 

4 <jsp:setPorperty>标签



 比较完之后,还是第一种比较好,自动进行相应的设置。

 

5 <jsp:getPorperty>标签



 反射机制是jsp标签的操作基础。切记!



 

6 MVC设计模式

模式1,jsp+javabean

模式2,jsp+servlet+javabean



 

7 过滤器

Servlet分为三种:简单servlet(最常用的)、过滤器(过滤servlet)、监听servlet(监听器)。Jsp可以完成的功能,servlet可以完成。反之则不行。



 过滤器的详细过程,可以形成过滤链



 
一般过滤器都会执行两次,开始前一次,执行完dofileter之后在执行一次。

如果有N个过滤器,一般会这样执行的顺序。

过滤器1执行开始

过滤器2执行开始

过滤器2执行结束

过滤器1执行结束

跟栈有点类似,先执行的最后才结束,形成过滤连很好用!

看个例子:

 

FileterDemo1 :

 

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

import sun.awt.windows.ThemeReader;


public class FileterDemo1 implements Filter{

	public void destroy() {
		// TODO Auto-generated method stub
		System.out.println("过滤器1开始销毁...");
		try {
			Thread.sleep(3000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		// TODO Auto-generated method stub
		System.out.println("过滤器1执行开始");
		request.setAttribute("a", "1");
		chain.doFilter(request, response);
		if("1".equals(request.getAttribute("a")))
		System.out.println("过滤器1执行结束");
	}

	public void init(FilterConfig filterConfig) throws ServletException {
		// TODO Auto-generated method stub
		System.out.println("过滤器1初始化...");
	}
	
}
 FileterDemo2: 
import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

import sun.awt.windows.ThemeReader;


public class FileterDemo2 implements Filter{

	public void destroy() {
		// TODO Auto-generated method stub
		System.out.println("过滤器2开始销毁...");
		try {
			Thread.sleep(3000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		// TODO Auto-generated method stub
		System.out.println("过滤器2执行开始");
		if("1".equals(request.getAttribute("a"))){
			chain.doFilter(request, response);
		}
		System.out.println("过滤器2执行结束");
		request.setAttribute("a", "2");
	}

	public void init(FilterConfig filterConfig) throws ServletException {
		// TODO Auto-generated method stub
		System.out.println("过滤器2初始化...");
	}
	
}
 
<filter>
		<filter-name>f1</filter-name>
		<filter-class>FileterDemo1</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>f1</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	
	<filter>
		<filter-name>f2</filter-name>
		<filter-class>FileterDemo2</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>f2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
 

 

8 监听器

 

 

在web.xml里面先配置  过滤器,其次是监听器,再次是简单servlet的配置

 

 

 

<!--[if !supportLists]-->8.1 <!--[endif]-->对于application的监听:



 8.1.1 对application上下文的监听



 配置web.xml文件:



 
8.1.2 application属性的监听



 

<!--[if !supportLists]-->8.2 <!--[endif]-->对于session的监听



前两个接口都和application监听类似的。但是第三个HttpsessionBindingListener这个有点特殊。看截图: 



 
Jsp页面直接触发监听:

 

增加属性监听:



 
移除属性监听:



 

<!--[if !supportLists]-->8.3 <!--[endif]-->对于request的监听



 

 

 

 

  • 大小: 89.2 KB
  • 大小: 167.2 KB
  • 大小: 111.7 KB
  • 大小: 128.2 KB
  • 大小: 96.3 KB
  • 大小: 77.2 KB
  • 大小: 139.3 KB
  • 大小: 171.2 KB
  • 大小: 116.1 KB
  • 大小: 131.8 KB
  • 大小: 72.7 KB
  • 大小: 59.4 KB
  • 大小: 127.8 KB
  • 大小: 110.7 KB
  • 大小: 118.4 KB
  • 大小: 57.4 KB
  • 大小: 128.1 KB
  • 大小: 118.8 KB
  • 大小: 114.6 KB
  • 大小: 101.5 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics