servlet上下文

时间:2013-02-22 23:28:20

标签: rest servlets spring-mvc

我的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之间共享属性吗?

提前致谢。

2 个答案:

答案 0 :(得分:0)

您可以直接从请求中获取ServletContext,为什么从会话中获取它

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

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

答案 1 :(得分:0)

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

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

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

查看下面的链接以获取更多详细信息,

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