当前位置: 首页 > 知识库问答 >
问题:

创建一个 servlet 过滤器 Websphere 自由概要文件?

车辰龙
2023-03-14

我正在使用一个webphere自由配置文件网络服务器,我在其中部署了几个应用程序。这些应用程序正在发送请求消息,我想在不更改应用程序的情况下创建一个servlet过滤器,这样我就可以看到应用程序正在发送和接收什么。我还想添加新的请求标头。

共有2个答案

南门鸿畴
2023-03-14

当我尝试安装相同的bells实用程序时,得到了下面的响应

CWWKF1295E:无法将bells-1.0资产下载或安装到IBMWebSphere Application Server Liberty(ILAN)19.0.0.4,因为它仅适用于以下产品版本:

  • IBM WebSphere 应用程序服务器自由版 8.5.5.7
  • 面向开发人员的 IBM WebSphere 应用程序服务器自由 8.5.5.7
  • IBM WebSphere 应用程序服务器自由版 - 快速版 8.5.5.7
  • IBM WebSphere 应用程序服务器自由核心 8.5.5.7
  • IBM WebSphere 应用程序服务器自由网络部署 8.5.5.7
  • IBM WebSphere 应用程序服务器自由 z/OS 8.5.5.7

使用installUtility查找操作检索适用于安装的资产列表。

柳仲卿
2023-03-14

您可以使用ServletContainerOrializer注册新的ServletFilters。添加响应标头的示例实现可能如下所示:

public class SCI implements ServletContainerInitializer {
  @Override
  public void onStartup(Set<Class<?>> arg0, ServletContext arg1)
    throws ServletException {
    arg1.addFilter("myFilter", MyFilter.class).addMappingForUrlPatterns(null, false, "/*");
  }
}

MyFilter类如下所示:

public static class MyFilter implements Filter {

  @Override
  public void destroy() { }

  @Override
  public void doFilter(ServletRequest arg0, ServletResponse arg1,
      FilterChain arg2) throws IOException, ServletException {
    if (arg1 instanceof HttpServletResponse) {
      ((HttpServletResponse) arg1).addHeader("Test", "Test");
    }
    arg2.doFilter(arg0, arg1);
  }

  @Override
  public void init(FilterConfig arg0) throws ServletException { }
}

然后,您需要使用名为META-INF/services/ServletContainerInitializer的文件来注册它,该文件应包含ServletContainer Initialize的完全限定类名,例如:

test.SCI

通常,您会将这些内容打包在应用程序中的jar中,但由于您不想更新应用程序,因此您可以这样配置服务器:

<featureManager>
   <feature>bells-1.0</feature>
</featureManager>

<library id="init">
  <file name="path/to/jar"/>
</library>

<bell libraryRef="init"/>

将为所有已启动的Web应用程序调用ServletContainerLaunalizer,允许您添加过滤器。请注意,这将为所有已启动的Web应用程序调用,包括集成到Liberty运行时中的应用程序,例如管理中心和REST连接器。

 类似资料:
  • 我正在研究一个合作医疗系统。 我的代码在url调用的servlet的

  • 写一个你自己的过滤器非常容易:在你的模块中注册一个新的过滤器(可注入的)工厂函数就行了。这个工厂函数必须放回一个新的过滤器函数,这个过滤函数的第一个参数接受的是输入。任何过滤器参数都会被当成附加的参数传递给过滤器。 下面的例子展示了逆转字符串文本。另外,它有条件地将文本大写并填上颜色。 index.html: <!doctype html> <html ng-app="MyReverseModul

  • 问题内容: Servlet和Filter有什么区别?您建议使用什么来授权页面? 问题答案: 当你要根据特定条件过滤和/或修改请求时,请使用。使用时要控制,预处理和/或后处理请求。 在Java EE的教程中提到有关筛选如下: 筛选器是可以转换请求或响应的标头和内容(或两者)的对象。过滤器与Web组件的不同之处在于,过滤器本身通常不会创建响应。相反,过滤器提供的功能可以“附加”到任何类型的Web资源。

  • Servlet 过滤器可以动态地拦截请求和响应,以变换或使用包含在请求或响应中的信息。 可以将一个或多个 Servlet 过滤器附加到一个 Servlet 或一组 Servlet。Servlet 过滤器也可以附加到 JavaServer Pages (JSP) 文件和 HTML 页面。调用 Servlet 前调用所有附加的 Servlet 过滤器。 Servlet 过滤器是可用于 Servlet

  • 问题内容: 我正在尝试找出使用TypeScript创建自定义角度过滤器的最佳方法。 我看到的所有代码示例都使用类似以下内容的代码: …可以,但是由于我想将所有过滤器代码分开而显得有些混乱。所以我想知道如何将过滤器声明为一个单独的文件(例如,filters / reverse- filter.ts),这样我就可以创建它: …以与控制器,服务等相同的方式 TS和Angular的文档在地面上似乎很薄,尤

  • 我使用 Eclipse Market Place 安装了“IBM Websphere Application Server liberty developer tools for Kepler”。 我想做的下一件事是创建一个新服务器。所以我右键单击了服务器选项卡。新 为该目录随机选择一些内容会导致错误:安装目录无效。检查路径是否指向Liberty概要文件运行时环境(例如/wlp)。 市场在哪里安装