在过滤器中过滤非法url时发生的转向及过滤问题
来源:互联网 发布:浏览器表单数据 编辑:程序博客网 时间:2024/04/29 05:14
各位前辈:
由于小弟想用model2实现一个过滤器,具体的业务是:将用户输入的url跟已经保存在xml文件中的合法url进行匹配,处理结果是:如果匹配成功,则跳转至用户指定的页面;如果没有匹配成功,则跳转到指定的错误页面,提示用户url输入有误,现在那程序说话:
1、这是过滤器的实现:
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
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;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class DispatcherToIndex implements Filter {
public void destroy() {
// TODO Auto-generated method stub
System.out.println("销毁");
}
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
String uri = request.getRequestURI(); // 获取用户输入的uri地址
String path = request.getContextPath();
uri = uri.substring(path.length());
System.out.println(uri);
// 读取xml文件
File f = new File("F://软件工程//software//jsp//prjShoppingV4.17//url.xml");
SAXReader reader = new SAXReader();
try {
Document doc = reader.read(f); // 将读取的xml文件读取成文档对象
Element root = doc.getRootElement(); // 得到根节点;
Element foo;
for (Iterator<Element> it = root.elementIterator(); it.hasNext();) {
foo = it.next();
if (uri.endsWith(foo.elementText("path"))) {
// 如果输入的页面在解析出来的范围中,则显示正确信息
request.getRequestDispatcher("/index.jsp");
chain.doFilter(request, response);
} else if(!uri.contains(foo.elementText("path"))) {
// 如果不在范围之内,则跳转至错误页面
request.setAttribute("errorMsg", "访问页面出错");
request.getRequestDispatcher("error.jsp").forward(request, response);
}
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(uri);
}
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
System.out.println("初始化");
}
}
2、配置过滤器
<!-- 这是过滤非法url的过滤器 -->
<filter>
<filter-name>DispatcherToIndex</filter-name>
<filter-class>com.fendou.system.filter.DispatcherToIndex</filter-class>
</filter>
<filter-mapping>
<filter-name>DispatcherToIndex</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
- 在过滤器中过滤非法url时发生的转向及过滤问题
- 利用Servlet的过滤器过滤非法文字!
- 20141015个人日志(判断字符串中是否含有非法字符及非法字符串过滤的问题)
- 过滤非法字符问题
- 过滤器-过滤URL
- 关于编码过滤的问题,这里使用在web.xml中添加过滤器的方法!
- 几种过滤URL和FORM中非法字符的方法
- filter过滤器实现过滤非法文字
- 用过滤器过滤全站非法字符
- 配置nutch1.2时url被过滤掉的问题
- XML中的非法字符及过滤方法
- 防止非法登录的模块(用过滤器过滤相应的文件夹)
- Java解决在浏览器地址栏中输入url访问action的问题以及拦截方法过滤的简易实现
- Java解决在浏览器地址栏中输入url访问action的问题以及拦截方法过滤的简易实现
- 过滤器多个URl-pattern过滤
- JavaWeb-过滤器高级案例、URL过滤系统
- 在SpringMVC中使用过滤器(Filter)过滤容易引发XSS的危险字符
- cnkbbs被过滤的非法字符
- 阿里巴巴启用“淘日本”域名 6月1日正式上线
- 出国旅游
- 为什么电脑自动关机
- 提高内存使用率的绝技
- 全局变量、extern/static/const区别与联系
- 在过滤器中过滤非法url时发生的转向及过滤问题
- Flash小玩意图案创作:新增箭头,圆环,齿轮,菱形
- Java解惑2-27变幻莫测的I值
- C# 串口操作系列(2) -- 入门篇
- GDB 调试
- 为 Linux 应用程序编写 DLL
- Ajax.Updater
- MySQL数据表类型(某公司的面试题)
- 第一次