0

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

提前致谢。

4

2 回答 2

0

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

从改变

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

 request.getServletContext().getAttribute("test.xml")
于 2013-02-23T14:46:12.473 回答
0

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

  1. 要求
  2. 会议
  3. 应用

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

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

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

于 2019-03-10T05:33:33.897 回答