【问题标题】:servlet context小服务程序上下文
【发布时间】:2013-02-08 16:58:39
【问题描述】:

我有以下 web.xml 代码。

<?xml version="1.0" encoding="UTF-8"?>
<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_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
      <param-name>com.sun.jersey.config.property.packages</param-name>
      <param-value>rest.service</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Jersey REST Service</servlet-name>
    <url-pattern>*.abc</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>*.form</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>redirect.jsp</welcome-file>
  </welcome-file-list>
  <jsp-config>
  <taglib>
       <taglib-uri>wcm_rates</taglib-uri>
       <taglib-location>/WEB-INF/lib/wcm-rates.tld</taglib-location>
</taglib>
  </jsp-config>  
</web-app>

在 Spring MVC servlet 上下文中,我添加了一些属性。我希望在调用任何 REST URL 时,这些属性将在 servlet 上下文中可用。

但令我惊讶的是,当调用 REST Url 时,这些属性并未出现。

我将属性添加为servletContext.setAttribute(xmlFile.getName(), map);并拉为request.getSession().getServletContext().getAttribute("test.xml");

我已验证我使用相同的属性名称来存储和拉取。

有人可以帮助我,以便我可以在 Spring MVC 和 REST 之间共享属性吗?

提前致谢。

【问题讨论】:

  • 向我们展示一些代码:如何设置属性以及如何获取它们。
  • 编辑您的问题。不要在 cmets 中发布代码。我猜你得到的属性名称与用于设置属性的名称不同(即文件名可能不是"test.xml")。

标签: rest servlets spring-mvc


【解决方案1】:

可以直接从request中获取ServletContext,为什么要从session中获取

改变

request.getSession().getServletContext().getAttribute("test.xml")

 request.getServletContext().getAttribute("test.xml")

【讨论】:

【解决方案2】:

您可以从以下范围之一设置/获取属性:

  1. 请求
  2. 会话
  3. 应用

如果您使用servletContext.setAttribute(xmlFile.getName(), map);这意味着您正在添加到应用程序范围。所以要检索属性值,请使用servletContext.getAttribute("test.xml");

查看以下链接了解更多详情,

https://www.studytonight.com/servlet/attribute.php

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-10
    • 2020-04-12
    • 1970-01-01
    • 2011-01-29
    • 2018-05-06
    • 2011-12-21
    • 2011-06-09
    相关资源
    最近更新 更多