SpringBoot之自定义Servlet
【摘要】
生产中我们有时候需要自定义servlet比如,对一些特定的资源路径进来的请求,做一些特殊处理,本文,介绍两种自定义的方法。
目录
@WebServlet 注解方式注册ServletRegistrationBean
1.@WebServlet 注解方式
使用该方式注意一点,就是要与 @ServletComponentSca...
生产中我们有时候需要自定义servlet比如,对一些特定的资源路径进来的请求,做一些特殊处理,本文,介绍两种自定义的方法。
目录
@WebServlet 注解方式
注册ServletRegistrationBean
1.@WebServlet 注解方式
使用该方式注意一点,就是要与 @ServletComponentScan
配合使用
-
@WebServlet(urlPatterns = "/api", description = "api进来的通过该servlet")
-
public class ApiGateWayServlet extends HttpServlet {
-
private ApplicationContext applicationContext;
-
private ApiGateWayHandler apiGateWayHandler;
-
-
@Override
-
public void init() throws ServletException {
-
super.init();
-
applicationContext = WebApplicationContextUtils.getWebApplicationContext(getServletContext());
-
apiGateWayHandler = applicationContext.getBean(ApiGateWayHandler.class);
-
-
}
-
-
@Override
-
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
-
apiGateWayHandler.handle(req,resp);
-
}
-
}
在启动类,添加ServeltComponentScan
-
@ServletComponentScan
-
@SpringBootApplication
-
public class SpringBootSampleApplication {
-
-
public static void main(String[] args) {
-
ConfigurableApplicationContext configurableApplicationContext = SpringApplication.run(SpringBootSampleApplication.class, args);
-
SpringContextUtils.setApplicationContext(configurableApplicationContext);
-
}
-
}
2. 注册ServletRegistrationBean
-
@SpringBootApplication
-
public class SpringBootSampleApplication {
-
@Bean
-
public ServletRegistrationBean servletRegistrationBean() {
-
return new ServletRegistrationBean(new ApiGateWayServlet(), "/*");
-
}
-
public static void main(String[] args) {
-
ConfigurableApplicationContext configurableApplicationContext = SpringApplication.run(SpringBootSampleApplication.class, args);
-
SpringContextUtils.setApplicationContext(configurableApplicationContext);
-
}
-
}
3.check是否配置成功
-
2017-09-19 10:44:28.313 INFO 6761 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Mapping servlet: 'apiGateWayServlet' to [/*]
-
2017-09-19 10:44:28.315 INFO 6761 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/]
-
文章来源: springlearn.blog.csdn.net,作者:西魏陶渊明,版权归原作者所有,如需转载,请联系作者。
原文链接:springlearn.blog.csdn.net/article/details/102425338
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)