导航:首页 > 净水问答 > java过滤包结构图

java过滤包结构图

发布时间:2021-01-06 16:32:39

⑴ java如何创建过滤

弄过滤器,要实现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;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class EncodingFilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("GBK");//处理编码
response.setCharacterEncoding("GBK");//处理编码

chain.doFilter(request, response);//让过滤器执行下一个请求
}

public void destroy() {}

public void init(FilterConfig arg0) throws ServletException {}
}

//下面这个是在web.xml下的配置

<filter>
<filter-name>encoding</filter-name>
<filter-class>
刚刚创建的那个实现filter接口的类的位置
例如:com.temp.filter.EncodingFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>*.jsp这个是以jsp为后缀的文件都拦截下来</url-pattern>
</filter-mapping>
可以写多个的<filter-mapping>来配置你所要拦截的东西

⑵ java过滤器filter能过滤某个包下的所有servlet吗

可以的,其实确切的说不是某个包;
正如你给的例子中,url-pattern中放的路径版一样;
你在配置servlet的时候权,url-pattern这个路径可以加层次的,举例说明,比如用户信息的所有servlet可以写成 <url-pattern>/userinfo/具体的servlet</url-pattern>
在写过滤器的时候,就可以拦截/userinfo/*;
在想你这个问题,如果你如果想拦截某个包下的,可以把这个包下的所有servlet的url-pattern的值,统一加上一层目录( /某某包/* )

⑶ java过滤器filter能过滤某个包下的所有servlet吗

不能直接过滤。过滤器是根据URL路径来过滤的,不是根据包名来拦截的。但是你可以按照这样的规则配置你的web.xml文件,间接实现你的需求。

① 你的servlet的访问路径,根据包名来命名。设计二级路径。比如你有一个user.servlet包。你可以把里面的所有Servlet路径全部设置为/user/xxxServlet。你的filter拦截路径就改为

/user/*

//1AServlet代码
packageuser.servlet;
importjava.io.IOException;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
{
protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
doPost(request,response);
}
protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
System.out.println(456);
}
}

//2BServlet代码
packageuser.servlet;
importjava.io.IOException;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
{

protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
doPost(request,response);
}
protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
System.out.println(123);
}
}
//3filter代码
packagefilter;
importjava.io.IOException;
importjavax.servlet.Filter;
importjavax.servlet.FilterChain;
importjavax.servlet.FilterConfig;
importjavax.servlet.ServletException;
importjavax.servlet.ServletRequest;
importjavax.servlet.ServletResponse;
{
@Override
publicvoiddestroy(){}

@Override
publicvoiddoFilter(ServletRequestarg0,ServletResponsearg1,
FilterChainarg2)throwsIOException,ServletException{
System.out.println("执行了"+arg0.getParameter("name"));
arg2.doFilter(arg0,arg1);

}
@Override
publicvoidinit(FilterConfigarg0)throwsServletException{}

}
//4web.xml配置
<servlet>
<servlet-name>AServlet</servlet-name>
<servlet-class>user.servlet.AServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AServlet</servlet-name>
<url-pattern>/user/AServlet</url-pattern>
</servlet-mapping>

<servlet>
<servlet-name>Bservlet</servlet-name>
<servlet-class>user.servlet.BServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Bservlet</servlet-name>
<url-pattern>/user/BServlet</url-pattern>
</servlet-mapping>

<filter>
<filter-name>Myfilter</filter-name>
<filter-class>filter.Myfilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Myfilter</filter-name>
<url-pattern>/user/*</url-pattern>
</filter-mapping>

//5测试我的工程应用名是HelloWorld
http://localhost/HelloWorld/user/AServlet?name=aaa
http://localhost/HelloWorld/user/BServlet?name=bbb
会发现控制台分别打印出取出的参数aaa和bbb证明。拦截成功。

⑷ java 文件过滤器怎么实现。

import java.io.File;
import java.io.FilenameFilter;

/**
* 文件过滤器的简单实现
*
* @author ajaxfan
* @date 2010-04-17
*/
public class FileNameFilterDemo {
public static void main(String[] args) {
list("d:/");
}

/**
* 列出特定路径下的txt文件
*
* @param directoryName
* 路径名
*/
private static void list(String directoryName) {
File dir = new File(directoryName);
// 确定该路径指向一个目录
if (dir.exists() && dir.isDirectory()) {
// 列出所有结尾为txt的文件
File[] files = dir.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith("txt");
}
});
System.out.println(java.util.Arrays.toString(files));
}
}
}

⑸ java过滤器filter能过滤某个包下的所有servlet吗

可以。通配符 * 统配所有字符

如果你指定了某个路径,那他会走最长路径匹配。

⑹ 谁可以给我一个Javaweb过滤器filter的相关jar

那个东西在tomcat里面就有,所有的web容器和javaee应用服务器都有这个。
一个出来就行了。
而且回你开发这个的时候肯定不是空答手开发,光用一个接口的jar根本运行不起来。
所以肯定要一个开发运行环境的,直接import你的web容器里面lib里所有的jar就肯定包括了

⑺ java过滤器怎么不过滤一个页面里包含的多个请求

abstract public class FilterPerRequest implements Filter {

private static final Boolean FILTERED = true;
private ThreadLocal<Boolean> statusLocal = new ThreadLocal<Boolean>();

@Override
final public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
if (hasNotFiltering()) {
doFilterAndDispatchRequest(req, resp, chain);
return;
}
//dispatch request only
chain.doFilter(req, resp);
}

private boolean hasNotFiltering() {
Boolean status = statusLocal.get();
if (status == null) {
return true;
}
return false;
}

private void doFilterAndDispatchRequest(ServletRequest req,
ServletResponse resp, FilterChain chain) throws IOException,
ServletException {
try {
doFilterPerRequest(req, resp);
setFiltered();
chain.doFilter(req, resp);
} finally {
cleanFilterStatus();
}
}

abstract protected void doFilterPerRequest(ServletRequest req,
ServletResponse resp);

private void setFiltered() {
statusLocal.set(FILTERED);
}

private void cleanFilterStatus() {
statusLocal.set(null);
}

}
那要就情况而定了。。。
如果是request范围内的话,就可以使用上面的过滤器。
如果是session范围内的话,就需要在session内存储一个标志变量,方式和request差不多。
如果是限制用户操作的话,那就必须将用户操作持久化。
由于你的问题不明确,我也不好多说...

⑻ java 日志打印堆栈如何实现包级过滤

目前使用的来 log4j2.xml 方案打印的日自志。但因为 web 项目必然用到各种框架工具包之类的,导致打印的日志堆栈信息中,有很多 spring 的包中的类调用链。
想实现,打印的堆栈信息,只有我指定的包前缀的才打印出来。比如我们自己编写的一段代码执行时报错了,那么执行出现如下堆栈信息:
java.lang.NumberFormatException: null
at net.oschina.aaa(aaa.java:80) ~[classes/:?]
at net.oschina.bbb(bbb.java:70) ~[classes/:?]
at net.oschina.ccc(ccc.java:60) ~[classes/:?]
at net.oschina.ddd(ddd.java:50) ~[classes/:?]

⑼ java过滤器filter能过滤某个包下的所有servlet吗

j2ee自带的filter好像不可以根据包来过滤,不过struts和sprint合起来就可以控制了。

⑽ java中如何用split过滤中括号

java使用string的split方法来抄过滤中括号,实例如下:

packagecom.qiu.lin.he;

publicclassCeShi{
publicstaticvoidmain(String[]args){
Stringmystr="String[]adfas";
String[]strs=mystr.split("\[]");//因为中括号属于转义字符,应该要进行转义
System.out.println(strs[0]+strs[1]);
}
}

运行结果如下:

阅读全文

与java过滤包结构图相关的资料

热点内容
菲浦斯净水器怎么代理 浏览:397
电厂污水外排怎么办 浏览:662
手表指针有水垢 浏览:198
中水回用维修公司 浏览:505
潮州净化器怎么选 浏览:988
喷漆废水中氨氮浓度一般为多少 浏览:50
如何测算污水流量 浏览:758
怎么更换转向助力油滤芯 浏览:245
生活污水截污纳管的意义 浏览:28
电热壶烧纯净水为什么有水垢 浏览:800
工业企业用水处理 浏览:768
最有效的马桶除垢方法 浏览:375
饮水机的三个灯什么意思 浏览:221
g120slvc变频器转矩提升参数 浏览:540
华为净化器1i怎么换粉 浏览:928
欧曼柴油过滤器故降灯 浏览:138
蒸馏时空冷管选择 浏览:630
石家庄回秦皇岛用隔离吗 浏览:506
污水检查井禁用砖砌安徽 浏览:583
除垢剂用在哪 浏览:993