Tag: servlet filters

java-使用filter检查远程地址

检测Web应用程序是否在本地访问的最佳方法是什么? 我有兴趣在filter ( javax.servlet.Filter )中检查它。 我可以检查ServletRequest#getRemoteAddr()如果它是127.0.0.1但如果它在IPv6机器上运行,则地址将为0:0:0:0:0:0:0:1 。 是否还有其他陷阱我应该注意,或者如果我只检查这两个字符串模式,我会没事的? 谢谢

在提交响应后,是否可以从servletfilter转发或重定向?

逻辑是filter被击中,条件不成立,因此它通过filter链。 提交响应后,filter被命中,条件现在为真(设置了请求属性)。 它进入执行转发,但页面永远不会转发。 我知道这与提交的响应有关,因为我测试了它在第一次到达链之前转发的不同逻辑,并且它确实成功转发。 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpServletRequest = (HttpServletRequest)request; if (some condition equals true) { httpServletRequest.getRequestDispatcher(“/home.jsp”).forward(request, response); return; } else { chain.doFilter(request, response); } } 我的部署描述符示例: MyFilter com.filters.MyFilter MyFilter *.jsp REQUEST FORWARD

在匹配规则后,为什么Tuckey UrlRewrite不调用filter调用chain.doFilter?

在这里使用Spring Framework …… 我创建了一个filter来更改css文件的响应体,如果我直接调用url就会运行。 但是,如果匹配urlrewrite规则,则跳过filter。 示例:在web.xml中: UrlRewriteFilter org.tuckey.web.filters.urlrewrite.UrlRewriteFilter UrlRewriteFilter /* cssFilter org.springframework.web.filter.DelegatingFilterProxy cssFilter *css 在urlrewrite.xml中有一个这样的映射设置: /styles-special/(.*)$ /styles/$1 (出于多种原因,我们需要这个) 因此,路径以“/ styles-special /”开头的任何* .css文件将被重写为“/ styles /”,并且不会调用cssFilter,但任何* .css文件的路径以“/ /”开头styles /“将按预期运行cssFilter。 我已经尝试将cssFilter的url-pattern更改为许多不同的选项,但结果相同。 在我看来,像tuckey urlrewritefilter只是在重写后没有调用chain.doFilter(),但也许它比那更复杂? 知道问题可能在这里吗? 这是预期的function吗? 有任何变通方法吗? …也许拦截器或控制器是去这里的方式? 在此先感谢您对此的任何建议! 注意:使用以下内容(如axtavt所建议): REQUEST FORWARD 修复了链接和运行filter的问题。 但是,我收到以下错误: java.lang.IllegalStateException: NO CONTENT at org.mortbay.jetty.HttpGenerator.addContent(HttpGenerator.java:106) at org.mortbay.jetty.AbstractGenerator$Output.write(AbstractGenerator.java:644) at org.mortbay.jetty.AbstractGenerator$Output.write(AbstractGenerator.java:579) 这是Filter的代码片段: public void doFilter(ServletRequest request, ServletResponse […]

Javafilter用于重定向未登录到登录页面的用户

我试图制作一个filter来阻止未登录的用户访问某些页面。为此我使用以下doFilter方法创建了一个filter类 HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) res; String url = request.getRequestURI(); boolean allowedRequest = false; System.out.println(url); if(urlList.contains(url)) { allowedRequest = true; System.out.println(“in list”); } if (!allowedRequest) { Object o = request.getSession().getAttribute(“UserInfo”); if (null == o) { System.out.println(“Hey i am in”); response.sendRedirect(“/login.jsp”); } } chain.doFilter(req, res); } // end of doFilter 为了允许不需要用户登录的页面我在init()中创建了一个arraylist […]

servlet生命周期和filter生命周期之间的差异

servlet和filter生命周期之间有什么区别吗?

在哪里可以找到将regex应用于输出的Java Servletfilter?

我希望有人写过这个: 一个servletfilter,可以使用正则表达式搜索/替换模式进行配置,并将它们应用于HTML输出。 这样的事情存在吗?

过滤映射url-pattern,排除子目录

有没有办法让filtermapping不包含子目录? 例如。 我的上下文根目录中有.xhtml文件,我还有一个名为“test”的子文件夹,其文件具有相同的扩展名。 有没有可能将filter映射到上下文根目录中的文件而不是“test”目录中的文件?

doFilter没有被调用

你能帮忙检查为什么doFilter没有被调用 web.xml中: log4jConfigLocation /WEB-INF/log4j.properties org.springframework.web.util.Log4jConfigListener roseFilter net.paoding.rose.RoseFilter roseFilter /* REQUEST FORWARD INCLUDE class级签名: import org.springframework.web.filter.GenericFilterBean; public class RoseFilter extends GenericFilterBean { 调用http:// localhost:8080 / hello / world时返回404,我在doFilter设置断点,看来doFilter没调用?(我试过tomcat 6.0.18,6.0.29,jdk1.6)

如何使用嵌入式jetty添加servletfilter

我正在将jetty嵌入到我的应用程序中,并试图找出如何添加servletfilter(用于cookie处理)。 wiki和javadoc没有说清楚,我错过了什么: Server server = new Server(port); ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS); context.setContextPath(“/”); FilterHolder f = new FilterHolder(new AuthorisationFilter()); context.addFilter(… f …); // ????? context.addServlet(new ServletHolder(new TestServlet()), “/”); 我在此发现的唯一信息是一个论坛post,建议有关此文档的文档需要改进。

servlet会话,注销后,当按下浏览器的后退按钮时,再次显示安全页面

我有一个servlet和一个HTML页面。 如何在注销后阻止用户点击浏览器的后退按钮? 我在stackoverflow中读过相同的问题,但答案是使用浏览器历史记录禁用java脚本或使用页面 – 在http标头中没有缓存。 我们如何使用阻止返回操作的servlet实现它,http-header没有缓存是无用的,因为Firefox表示页面在刷新安全页面两次后再次过期。 我已经完成了一个方法,示例方法只是为了尝试(不是真实的)我的用户名和密码从HTML页面发布到servlet,如果密码和用户名是正确的,servlet将其存储在会话中。 再次请求安全页面时,如果存在会话,则显示安全页面并且用户从登录页面显示的会话中注销所有正在工作的ID,除非用户点击浏览器的后退按钮时注销失败。 如何阻止安全servlet在注销后显示内容,然后在浏览器中按下后退按钮? welcome.html的src Username Password       servlet的src public class Sessionexample extends HttpServlet implements Servlet , Filter { private static final long serialVersionUID = 1L; public String username =null, password=null; public HttpSession session ; public PrintWriter pw; int do_get =0 ; /** * Default constructor. */ public […]