簡體   English   中英

項目未檢測到Java篩選器

[英]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/classesWEB-INF/libjar

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM