gpt4 book ai didi

java - 如何在 Spring Controller 中获取调度程序 servlet 名称

转载 作者:行者123 更新时间:2023-12-01 09:10:56 26 4
gpt4 key购买 nike

下面是我的 web.xml

<servlet>
<servlet-name>DispatcherName</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/spring/webmvc-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

有什么方法可以在我的应用程序 Controller 中获取 servlet 名称“DispatcherName”吗?

我希望它能够从 XMLWebApplicationContext 访问 Controller 对象,并且为此我需要 RequestDispatcher 名称。到目前为止,这是我尝试过的:

webApplicationContext=WebApplicationContextUtils.getWebApplicationContext(GetServletContextWebListner.getServletContext());     
XmlWebApplicationContext xmlWebApplicationContext = (XmlWebApplicationContext)GetServletContextWebListner.getServletContext().getAttribute("org.springframework.web.servlet.FrameworkServlet.CONTEXT."+webApplicationContext.getApplicationName().replace("/", ""));

也尝试过这个

@WebListener
public class GetServletContextWebListner implements ServletContextListener {
private static ServletContext servletContext;

public static ServletContext getServletContext() {
return servletContext;
}

@Override
public void contextInitialized(ServletContextEvent sce) {
servletContext = sce.getServletContext();
}

@Override
public void contextDestroyed(ServletContextEvent sce) {
servletContext = null;
}
}

   (XmlWebApplicationContext)GetServletContextWebListner.getServletContext().getServletContextName()

由于我无法获取 servlet 名称,因此我使用 getApplicationName(),但这可能会因 servlet 名称而异。

最佳答案

在你的 Controller 中,你可以尝试:

request.getServletContext().getServletContextName()

或者

RequestContextUtils.getWebApplicationContext(request).getDisplayName()

关于java - 如何在 Spring Controller 中获取调度程序 servlet 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40930345/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com