gpt4 book ai didi

java - 如何在 Eclipse 中创建 servlet 过滤器?

转载 作者:行者123 更新时间:2023-12-01 22:16:01 25 4
gpt4 key购买 nike

我是 servlet 技术的新手。我设置了 Java 7、Tomcat8 和 Eclipse。我在 Eclipse 上创建了几个 servlet一切正常。

今天我创建了一个简单的 servlet 过滤器。但它不会在任何 servlet 之前执行。我可以看到 init 方法是使用以下命令执行的控制台消息。根据 servlet 3.0,我没有使用 web.xml,而是使用 @WebFilter("/FilterDemo") 注释。

这是servlet过滤器代码,

package net.codejava;

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.annotation.WebFilter;

/**
* Servlet Filter implementation class FilterDemo
*/
@WebFilter("/FilterDemo")
public class FilterDemo implements Filter {

/**
* Default constructor.
*/
public FilterDemo() {
// TODO Auto-generated constructor stub
}

/**
* @see Filter#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
System.out.println("Destroy is called.");
}

/**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
// place your code here

String ipAddress = request.getRemoteAddr();
System.out.println("Do Filter is called.");
System.out.println(ipAddress);

// pass the request along the filter chain
chain.doFilter(request, response);
}

/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
// TODO Auto-generated method stub
System.out.println("Filter Init is called.");
}

}

工作区截图: enter image description here

任何帮助将不胜感激。

最佳答案

过滤器位于 servlet 前面。在注释中,您指定过滤器应仅过滤发送至 /FilterDemo 的请求。您需要做的是将过滤器映射到与您的 servlet 之一相同的 URL,或者指定您希望过滤器进行处理的 servlet 的名称(使用 servletNames 参数@WebFilter 注释。

关于java - 如何在 Eclipse 中创建 servlet 过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31029187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com