gpt4 book ai didi

java - 如何以编程方式在 WebApplicationInitializer 中注册多个 servlet?

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

我编写了下面的类以编程方式注册多个 servlet,但它不起作用,任何人都可以帮助我。

public class appIntializer implements WebApplicationInitializer {

@Override
public void onStartup(ServletContext context) throws ServletException {
XmlWebApplicationContext appCtxt = new XmlWebApplicationContext();
appContext.setConfigLocation("/WEB-INF/MVCLogin-servlet.xml");
context.addListener(new ContextLoaderListener(appCtxt));

ServletRegistration.Dynamic dispatcher = context.addServlet("MVC",
new DispatcherServlet(appCtxt));
ServletRegistration.Dynamic testServlet= context.addServlet(
"Test", TestServlet.class);
testServlet.addMapping("/test");

Dynamic securityFilter = context.addFilter(
AbstractSecurityWebApplicationInitializer.DEFAULT_FILTER_NAME,
DelegatingFilterProxy.class);
securityFilter.addMappingForUrlPatterns(
EnumSet.allOf(DispatcherType.class), false, "/*");
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/");

}
}

我应该在 Web 应用程序初始化时加载这两个 servlet。

最佳答案

我错过了 setLoadonstartup 这就是问题所在。

public class appIntializer implements WebApplicationInitializer {

@Override
public void onStartup(ServletContext context) throws ServletException {
XmlWebApplicationContext appCtxt = new XmlWebApplicationContext();
appContext.setConfigLocation("/WEB-INF/MVCLogin-servlet.xml");
context.addListener(new ContextLoaderListener(appCtxt));

ServletRegistration.Dynamic dispatcher = context.addServlet("MVC",
new DispatcherServlet(appCtxt));
ServletRegistration.Dynamic testServlet= context.addServlet(
"Test", TestServlet.class);
testServlet.setLoadOnStartup(2);
testServlet.addMapping("/test");

Dynamic securityFilter = context.addFilter(
AbstractSecurityWebApplicationInitializer.DEFAULT_FILTER_NAME,
DelegatingFilterProxy.class);
securityFilter.addMappingForUrlPatterns(
EnumSet.allOf(DispatcherType.class), false, "/*");
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/");

}}

关于java - 如何以编程方式在 WebApplicationInitializer 中注册多个 servlet?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41341013/

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