1. J2ee 求URL地址过滤实现方法
用过滤器轻抄松实现
web.xml中配置袭
<filter>
<filter-name>UserCheckFilter</filter-name>
<filter-class>org.UserCheckFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UserCheckFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
在UserCheckFilter中实现:
private void doBeforeProcessing(ServletRequest request, ServletResponse response) throws IOException, ServletException {
//检查session中有无登录
}
再具体的可以自己查,网上很多,关键字: 过滤器,filter
2. 使用servlet过滤器时,可以在web.xml文件的什么元素中包括<init-param>元素
web.xml里面可以定义两种参数:
(1)application范围内的参数,存放在servletcontext中,在web.xml中配置如下:
<context-param>
<param-name>context/param</param-name>
<param-value>avalible ring application</param-value>
</context-param>
(2)servlet范围内的参数,只能在servlet的init()方法中取得,在web.xml中配置如下:
<servlet>
<servlet-name>MainServlet</servlet-name>
<servlet-class>com.wes.controller.MainServlet</servlet-class>
<init-param>
<param-name>param1</param-name>
<param-value>avalible in servlet init()</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
3. J2EE开发中的过滤器和拦截器有相同和不同点
拦截器是在面向切面编程的就是在你的service或者一个方法,前调用一个方法,或者在方法后调用一个方法
比如动态代理就是拦截器的简单实现,
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
{
Object result = null;
System.out.println("before invoke method :" + method.getName());
result = method.invoke(this.targetObj, args);
System.out.println("after invoke method : " + method.getName());
return result;
}
在你调用方法前打印出字符串(或者做其它业务逻辑的操作),也可以在你调用方法后打印出字符串,
甚至在你抛出异常的时候做业务逻辑的操作。
过滤器是在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的action进行业务逻辑,比如过滤掉非法url(不是login.do的地址请求,如果用户没有登陆都过滤掉),或者在传入servlet或者struts的action前统一设置字符集,或者去除掉一些非法字符(聊天室经常用到的,一些骂人的话).
4. J2EE中如何使用过滤器(Filter)过滤非法关键字
if(content !=null && content.startsWith("boom"))
5. 在J2EE中,使用Servlet过滤器,需要在web.xml中配置什么元素
需要配置<filter>标签,这个标签就是用作拦截器的,具体的配置如下:
<filter> --- 配置过滤器
<filter-name>FirstFilter</filter-name>
---为过滤器起一个名字
<filter-class>com.itheima.filter.FirstFilter</filter-class>
---过滤器类的全路径名
<init-param>
--- 可选的 可以配置多个 过滤器的初始化参数可以在过滤器中通过FilterConfig对象来获取
<param-name>name1</param-name>
<param-value>value1</param-value>
</init-param>
</filter>
<filter-mapping>
--- 配置过滤器的拦截路径 ,一个<Filter>可以配置多个<filter-mappint>
<filter-name>FirstFilter</filter-name>
---为哪个过滤器进行配置
<url-pattern>/*</url-pattern>
--- 拦截哪个路径 其中url-pattern的写法和学习Serlvet时的url-pattern的写法相同 这个url-pattern可以配置多个
<servlet-name>Demo1Servlet</servlet-name>
---拦截哪个名字的Servlet 可以配置多个
<dispatcher>REQUEST</dispatcher>
--- 配置拦截哪种类型的对资源的访问,可选的值有REQUESTFORWARD INCLUDE ERROR,如果不配置默认只拦截REQUEST方式,如果具体配置了就拦截具体配置的方式的对资源的访问,此标签可以配置多个
</filter-mapping>
简单点说就是需要配置<filter>和<filter-mapper>标签,filter标签里<filter-name>、<filter-class>是必须要的,filtermapper中<filter-name>、<url-pattern>是必须要的,其他标签都是可选的