当前位置: 首页 > 面试题库 >

@WebInitParam的用例

严俊彦
2023-03-14
问题内容

从Servlet 3.0规范开始,就有可能将Servlet映射元数据声明为Servlet类的注释:

@WebServlet(name="appInfoServlet", urlPatterns ="/appInfo", initParams = @WebInitParam(name="ocwd.deployer.email", value="admin@example.com"))
public class AppInfoServlet extends HttpServlet {

}

我不明白的是将初始化参数与servlet放在同一类中的用例。据我了解,这些参数应与类分开保存,并放入部署描述符中。

@WebServlet注释中指定init参数有哪些用例?


问题答案:

批注用于提供默认值。

在JavaEE中,还可以使用注释来提供部署属性。给定注释的值后,仍可以使用部署描述符(即web.xml)覆盖注释提供的默认值。

在上面的示例中,init-param可以通过在中配置servlet具有匹配名称的来覆盖web.xml

  <servlet>
    <servlet-name>appInfoServlet</servlet-name>
    <init-param>
        <param-name>ocwd.deployer.email</param-name>
        <param-value>noreply@example.com</param-value>
    </init-param>
  </servlet>


 类似资料:
  • 问题内容: 我正在建造一个。我必须为系统构建。 根据我的研究,我认为我需要使用构建基于的身份验证系统和承载令牌。 在阅读了很多有关如何构建OAuth2.0服务器的OAuth2.0的知识之后,我仍然感到困惑,并且对是否需要它或是否需要其他身份验证系统感到困惑。 我的系统需要的是,我们将为所有客户提供服务,每个客户都将拥有一个,并且使用SDK客户端将连接到我们系统中存在的他的应用程序。 在将客户他的申

  • 问题内容: 谁能告诉我重要的用例是什么? 问题答案: 该单证说: 此类的典型用法是保留拓扑的对象图转换,例如序列化或深度复制。为了执行这样的转换,程序必须维护一个“节点表”,该节点表跟踪已处理的所有对象引用。节点表不得等于不同的对象,即使它们恰好相等。此类的另一个典型用法是维护代理对象。例如,调试工具可能希望为要调试的程序中的每个对象维护一个代理对象。

  • 这种方法本质上是不安全的。使用停止线程会导致它解锁已锁定的所有监视器(这是未经检查的异常沿堆栈向上传播的自然结果)。如果以前由这些监视器保护的任何对象处于不一致的状态,则损坏的对象将对其他线程可见,从而可能导致任意行为。[...] 甚至有一整篇文章提供了更详细的。(尤其是在到达顶部时是静默的,即使您防范它,也无法防范。) 总的来说,我同意这篇文章所担心的问题,并同意StackOverflow相关问

  • 问题内容: 我已经读过为什么调用System.gc()以及许多其他方法是一种不好的做法,例如,这描述了确实造成了灾难性的滥用。但是,在某些情况下,GC花费的时间太长,避免了长时间的停顿,例如,避免垃圾并不是一件容易的事,并且使代码难以维护。 在以下常见情况下,恕我直言,手动调用GC很好: 有多个可互换的Webserve,它们前面都有一个故障转移。 每个服务器使用几GB的堆,STW暂停花费的时间比平

  • 问题内容: 我读到有关构造单元测试的内容,每个类都有一个测试类,每个方法都有一个内部类。认为这似乎是组织测试的便捷方法,因此我在Java项目中进行了尝试。但是,内部类中的测试似乎根本没有被采用。 我大致是这样做的: JUnit不支持此功能,还是我做错了? 问题答案: 使内部类静态化对我有效。