关于Fileter中重定向和转发的问题(在Servlet中进行操作)
来源:互联网 发布:seo代码优化 编辑:程序博客网 时间:2024/06/08 07:40
关于Fileter中重定向和转发的问题(在Servlet中进行操作)
web.xml中的配置
<filter> <filter-name>MyFilter</filter-name> <filter-class>web.filter.MyFilter</filter-class> </filter> <filter-mapping> <filter-name>MyFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
这是Filter的实现类
package web.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 MyFilter implements Filter{ @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.println("myfilter"); chain.doFilter(request, response); } @Override public void destroy() { }}
这是第一个HttpServlet的实现类
package web.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class Servlet1 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.getWriter().write("我是servlet1"); System.out.println("servelt1执行了");// request.getRequestDispatcher("/servlet2").forward(request, response); response.sendRedirect(request.getContextPath()+"/servlet2"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }}
这是第二个HttpServlet的实现类
package web.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class Servlet2 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.getWriter().write("我是servlet2"); System.out.println("servelt2执行了"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }}
当url为 localhost:8080/web24/servlet1时,执行结果为:
myfilter
servelt1执行了
myfilter
servelt2执行了
分析:myfilter执行了两次,重定向的时候还会被过滤。
这时候,把实现类servlet1 中doGet(xxx) 方法中的改为转发,把重定向注释掉。
package web.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class Servlet1 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.getWriter().write("我是servlet1"); System.out.println("servelt1执行了"); request.getRequestDispatcher("/servlet2").forward(request, response);// response.sendRedirect(request.getContextPath()+"/servlet2"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }}
当url还是为 localhost:8080/web24/servlet1时,执行结果为:
和上面一样,显然转发没有再次被过滤(就一次请求,在服务器中跳转当然不被过滤)
阅读全文
0 0
- 关于Fileter中重定向和转发的问题(在Servlet中进行操作)
- Ajax+Servlet:ajax请求servlet后无法在servlet中进行请求转发和重定向问题的原因
- 在重定向,转发中关于路径问题的总结
- JSP中关于转发和重定向的问题
- jsp/servlet中重定向和转发的区别
- Servlet中Request请求转发和重定向遇到的乱码问题
- Springmvc 在同一个controller和不同的controller中进行重定向redirect和转发forward:
- Springmvc 在同一个controller和不同的controller中进行重定向redirect和转发forward
- Servlet中forward(请求转发)和redirect( 重定向)总结
- servlet中的请求转发和重定向的路径问题
- servlet中重定向与转发的区别
- Servlet应用中重定向与请求转发的区别
- Servlet和JSP中关于重定向的方法
- servlet的重定向和请求转发
- servlet的转发和重定向
- Servlet 的转发和重定向详解
- Servlet的请求转发和重定向
- jsp,servlet的转发和重定向
- 欢迎使用CSDN-markdown编辑器
- art-template实现省市区三级联动
- 1102: 火车票退票费计算(函数专题)
- 谈谈Fragment中的onActivityResult
- CocosStudio学习笔记(20170719)
- 关于Fileter中重定向和转发的问题(在Servlet中进行操作)
- qcon 2017 上海门票—售票截止倒计时
- 第二十四篇 jQuery 学习6 删除元素
- Linux笔记之身份与权限2:文件权限和归属
- 基于深度学习的视频检测(二)
- Android 监听手指滑动,Toolbar颜色渐变
- 在unity中实现方向盘UI的随着触摸转动和手指离开复位功能
- JSP中的自定义标签
- Statement 和 PrepareStatement安全机制