导航:首页 > 净水问答 > jsp过滤器添加

jsp过滤器添加

发布时间:2022-07-25 18:36:08

A. jsp过滤器怎么用

过滤器有很多种用法,可以配合Hibernate 自动提交事务,也可以给图片加水印,也可以限制某些文件不能被访问,也可以实现页面转码
出自我的QQ空间,有更多文章,
如BLOG ,网店上,都需要用到,带水印的图片, 通常是,用PS(photoshop) 先做出来PSD 的文件,用的时候,一张一张的向图片添加,此文章不介绍,PS 的制作技术,主要讲,用程序生成。
在JavaEE中有一种技术加 Servlet 其中包括 filter 过虑器,废话不多说,看源代码

// TODO Auto-generated method stub
HttpServletRequest request=(HttpServletRequest)arg0;
HttpServletResponse response=(HttpServletResponse)arg1;
/*************************************/
String filePath="D:/Tomcat 6.0/webapps/mytest3/img/logo.gif";//水印图片的路径
FileInputStream fin=new FileInputStream(filePath);//构建一个文件输入流
Image fimg=ImageIO.read(fin);//转为 Servlet 内置对象
int fw=fimg.getWidth(null);//获得宽度
int fh=fimg.getHeight(null);//高度
/*************************************/
String path=request.getRealPath(request.getServletPath());
FileInputStream in=new FileInputStream(path);
Image src=ImageIO.read(in);
int w=src.getWidth(null);
int h=src.getHeight(null);
BufferedImage img=new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);//构建画板
Graphics g=img.getGraphics();//得到画笔
g.drawImage(src,0,0,w,h,null);//此处为 imageIO.read ();//把源图片写入画板
g.drawImage(fimg,w-550,h-290,fw,fh,null);//把水印图片写入画板
g.dispose();//生成图片
JPEGImageEncoder e=JPEGCodec.createJPEGEncoder(response.getOutputStream());
e.encode(img);
response.getOutputStream().close();
在这里特别说明的是,水印的图片格式,一定要是.gif 的。

B. 如何创建过滤器Filter

建立一个过滤器涉及下列五个步骤: 1、建立一个实现Filter接口的类。这个类需要三个方法,分别是:doFilter、init和destroy。doFilter方法包含主要的过滤代码,init方法建立设置操作,而destroy方法进行清楚。 2、在doFilter方法中放入过滤行为。doFilter方法的第一个参数为ServletRequest对象。此对象给过滤器提供了对进入的信息(包括表单数据、cookie和HTTP请求头)的完全访问。第二个参数为ServletResponse,通常在简单的过滤器中忽略此参数。最后一个参数为FilterChain,如下一步所述,此参数用来调用servlet或JSP页。 3、调用FilterChain对象的doFilter方法。Filter接口的doFilter方法取一个FilterChain对象作为它的一个参数。在调用此对象的doFilter方法时,激活下一个相关的过滤器。如果没有另一个过滤器与servlet或JSP页面关联,则servlet或JSP页面被激活。 4、对相应的servlet和JSP页面注册过滤器。在部署描述符文件(web.xml)中使用filter和filter-mapping元素。 5、禁用激活器servlet。防止用户利用缺省servlet URL绕过过滤器设置。doFilter方法: public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException{HttpServletRequest req = (HttpServletRequest)request; System.out.println(req.getRemoteHost() + " tried to access " +req.getRequestURL() +" on " + new Date() + "."); chain.doFilter(request,response); }在web.xml中进行部署 分别是:filter和filter-mapping。filter元素向系统注册一个过滤对象,filter-mapping元素指定该过滤对象所应用的URL。 1.filter元素 filter元素位于部署描述符文件(web.xml)的前部,所有filter-mapping、servlet或servlet-mapping元素之前。filter元素具有如下六个可能的子元素: :icon 这是一个可选的元素,它声明IDE能够使用的一个图象文件。 :filter-name 这是一个必需的元素,它给过滤器分配一个选定的名字。 :display-name 这是一个可选的元素,它给出IDE使用的短名称。 :description 这也是一个可选的元素,它给出IDE的信息,提供文本文档。 :filter-class 这是一个必需的元素,它指定过滤器实现类的完全限定名。 :init-param 这是一个可选的元素,它定义可利用FilterConfig的getInitParameter方法读取的初始化参数。单个过滤器元素可包含多个init-param元素。2.filter-mapping元素 filter-mapping元素位于web.xml文件中filter元素之后serlvet元素之前。它包含如下三个可能的子元素:: :filter-name 这个必需的元素必须与用filter元素声明时给予过滤器的名称相匹配。 :url-pattern 此元素声明一个以斜杠(/)开始的模式,它指定过滤器应用的URL。所有filter-mapping元素中必须提供url-pattern或servlet-name。但不能对单个filter-mapping元素提供多个url-pattern元素项。如果希望过滤器适用于多个模式,可重复整个filter-mapping元素。 :servlet-name 此元素给出一个名称,此名称必须与利用servlet元素给予servlet或JSP页面的名称相匹配。不能给单个filter-mapping元素提供多个servlet-name元素项。

C. jsp中添加过滤器

1.首先建一个类(例charset.java),该类实现Filter接口
package com; //com包

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;

public class charset implements Filter {

public void destroy() {

}

public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
//方法拷贝过来即可

}

public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}
----------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------
2.在工程WebRoot/WEB-INIF/web.xml配置文件中写入以下代码:
<filter>
<filter-name>名字(可自定义)</filter-name>
<filter-class>类名</filter-class>
</filter>
<filter-mapping>
<filter-name>同上</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

D. 如何配置Filter过滤器处理JSP中文乱码

注意问题:在学习用selvert的过滤器filter处理中文乱码时,在filter配置初始化时用了utf-8处理中文乱码,而在提交的jsp页面中却用了gbk。虽然两种都可以出来中文乱码,但是却造成了处理乱码的格式不一致。所以编译出错。
解决方法:所有地方都用utf-8或gbk

//过滤器类
CharactorFilter.jsp
package cn.com.Filter;
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;

public class CharactorFilter implements Filter { //继承Filter类
//字符编码
String encoding=null;
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if(encoding!=null){
//设置request字符编码
request.setCharacterEncoding(encoding);
//设置response字符编码
response.setContentType("text/html;charset="+encoding);
}
//传递给下一个过滤器
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
//获取初始化参数
encoding=filterConfig.getInitParameter("encoding");
}
public void destroy() {
// TODO Auto-generated method stub
encoding=null;
}
}

web.xml
<filter> <!--注意这里是filter,不要配置成servlet-->
<filter-name>CharactorFilter</filter-name> <!--过滤器名称-->
<filter-class>cn.com.Filter.CharactorFilter</filter-class> <!--过滤器的完整类名-->
<init-param> <!--初始化参数-->
<param-name>encoding</param-name> <!--参数名称-->
<param-value>utf-8</param-value> <!--参数值-->
</init-param>
</filter>
<filter-mapping> <!--过滤器映射-->
<filter-name>CharactorFilter</filter-name><!--过滤器名称-->
<url-pattern>/*</url-pattern><!--URL映射,给所有页面处理乱码-->
</filter-mapping>

E. jsp中可以使用多个过滤器吗

可以将一个或多个过滤器附加到一个 Servlet 或一组 Servlet。过滤器也可以附加到 JavaServer Pages (JSP) 文件和 HTML 页面。

F. 在 java EE中怎么实现对哪一个.jsp文件进行过滤

先写个过滤的bean,然后在web.xml里配置,如下面是字符过滤:
<!-- 字符编码过滤器 -->
<filter>
<filter-name>SetCharacterEncoding</filter-name>
<filter-class>filters.ChangeCharsetFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
<!-- 指定编码为UTF-8 -->
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharacterEncoding</filter-name>
<url-pattern>/*</url-pattern> //注:把要过滤的jsp页面添加到这里,*则对所有的页面过滤
<!-- 对于所有的request改变其编码 -->
</filter-mapping>

我只是个初学者,不知道说得对不对,嘿嘿。。。

G. 对付jsp乱码的乱码过滤器要怎么添加啊

正常页面间传输 把编码统一 utf-8 或 gbk 其实不会出现乱码问题。
如果在数据库提取数据传给页面,可能会出现乱码问题。这时可在struts中设置编码。
或加一个过滤器。过滤器具体操作如下:
1:在你写JAVA类的地方新建个 类。filter 内容:
package com.yourcompany.filter;

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;

public class filter implements Filter{

public void destroy() {
}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
chain.doFilter(request, response);
}

public void init(FilterConfig arg0) throws ServletException {
}

}
2:在web.xml添加 映射文件(注:<filter-class>写你过滤器类的路径</filter-class>)
<filter>
<filter-name>fileter</filter-name>
<filter-class>com.yourcompany.filter.filter</filter-class>
</filter>
<filter-mapping>
<filter-name>fileter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

3.如还有不明白的 HI我

H. 在Eclipse中如何设置JSP的过滤器呢

在web.xml中加入
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>这里填你的打专包路属径.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

I. JSP过滤器这样设置过滤一个次级路径下的所有URL

/sites/*这样就可以了,如果这个文件夹是某个子目录的话还需要添加它的父目录;

下面内是些例子
<url-pattern>:指定和过滤器关联容的URL,为”/*”表示所有URL;
例子1:单个过滤器配置:容器将其应用于所有接收的请求
<url-pattern>/*</url-pattern>
例子2:过滤器应用到特定目录或资源(文件)的配置:此容器只有在接收到对/mydocs目录中的资源的请求时才会应用该过滤器。
<url-pattern>/mydocs/*</url-pattern>

J. JSP页面中怎么调用过滤器

过滤器拦截的是路径,只要把只想JSP的路径拦截了就可以了。

阅读全文

与jsp过滤器添加相关的资料

热点内容
ro膜进出水管多粗 浏览:441
单过硫酸氢钾消毒污水测什么值 浏览:399
胶印油墨树脂乳化 浏览:703
苹果六代厢式纯水机怎么样 浏览:174
污水池环氧树脂防腐用什么固化剂 浏览:748
高效浓缩除垢剂 浏览:959
污水站CH2是什么管子 浏览:308
千岛人净水器4节5节如何连接 浏览:687
城市污水处理及污染防治技术政策6 浏览:125
洁厕灵除垢的化学反应 浏览:972
阎良区城东污水处理厂2019年 浏览:341
净水器哪个品牌的滤芯最好 浏览:727
饮水机开水开不开怎么办 浏览:628
电镀废水吧 浏览:453
乡镇生活污水目标责任书 浏览:48
西班牙在去年的废水 浏览:400
小区厨房污水都从商铺走路吗 浏览:832
去厚水垢的办法 浏览:140
3m6003cn怎么换过滤棉 浏览:26
污水处理厂运行台账需要哪些 浏览:872