[英]Project Not Detecting Java Filter
我正在使用AspectJ開發一個項目,在該項目中,我對http請求和響應使用了過濾器。 基本上,我將這個項目轉換為.jar,並在進行一些安全性測試的基准測試應用程序中使用此jar。 當我在基准應用程序及其web.xml上聲明過濾器時,它可以正常工作,但是如果我將其放入正在開發的項目(jar文件)中,則基准應用程序將無法檢測到它...我有人告訴您,如果您使用最新版本的web.xml,則無需在web.xml上聲明過濾器,它應該自動檢測到它,但是它不起作用。 我該如何工作?
我在web.xml中使用的版本是這樣的:
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
過濾器類別:
包main.java.filter;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
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;
import javax.servlet.http.HttpServletRequest;
import main.java.Configuration;
import main.java.HashTableCreation;
/**
* Servlet Filter implementation class MyFilter
*/
@WebFilter("/MyService/*")
public class MyFilter implements Filter
{
/**
* Default constructor.
*/
public MyFilter() {
}
/**
* @see Filter#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
}
/**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
System.out.println("###### FILTER before NO DRIVER...");
// HttpServletRequest req = (HttpServletRequest) request;
//
// String loggedIn = (String) req.getSession().getAttribute("login");
//
// if (loggedIn == null)
// {
// req.getRequestDispatcher("notLoggedIn.jsp").forward(request, response);;
// }*/
chain.doFilter(request, response);
System.out.println("###### FILTER after...");
}
/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
System.out.println("Initializing filter...");
}
}
在這種情況下,當您擁有一個jar
文件時,它只是一個庫。 Servlet容器不在jar
文件中尋找web.xml
文件。 那根本不是它的工作原理。 如您所述,您的web.xml
文件必須明確引用過濾器,否則servlet容器將無法加載該過濾器。
如果你正在嘗試使用基於注解的裝載,每規范,在引用這篇文章 ,它必須在WEB-INF/classes
或WEB-INF/lib
的jar
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.