SpringBoot整合Servlet有两种方式:

1.通过注解扫描完成Servlet组件的注册;

2.通过方法完成Servlet组件的注册;

现在简单记录一下两种方式的实现

1.通过注解扫描完成Servlet组件的注册;

ServletDemo1.class

  1. package com.example.combine.servlet.sbservlet;
  2.  
  3. import java.io.IOException;
  4.  
  5. import javax.servlet.ServletException;
  6. import javax.servlet.annotation.WebServlet;
  7. import javax.servlet.http.HttpServlet;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10.  
  11. /**
  12. *
  13. * @author SpringBoot 整合Servlet方式1 创建servlet时需要在web.xml进行配置。 <servlet>
  14. * <servlet-name>ServletDemo1</seevlet-name>
  15. * <servlet-classs>com.example.combine.servlet.sbservlet.ServletDemo1</servlet-class>
  16. * </servlet>
  17. *
  18. * <servlet-mapping> <servlet-name>ServletDemo1</servlet-name>
  19. * <url-pattern>/first</url-pattern> </servlet-mapping>
  20. *
  21. * 但是在servlet3.0以后可以使用注释的方式来配置,且在springboot中也没有web.xml
  22. */
  23.  
  24. // 在哪个class添加了这个注释就意味着哪个class就是servlet
  25. @WebServlet(name = "ServletDemo1", urlPatterns = "/first")
  26. public class ServletDemo1 extends HttpServlet {
  27.  
  28. @Override // 重写doget方法
  29. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  30. // TODO Auto-generated method stub
  31. super.doGet(req, resp);
  32. System.out.print("这是第一种方式"); //在控制台中输出
  33. }
  34.  
  35. }

App1.class启动类

  1. package com.example.combine.servlet.sbservlet;
  2.  
  3. import org.springframework.boot.SpringApplication;
  4. import org.springframework.boot.autoconfigure.SpringBootApplication;
  5. import org.springframework.boot.web.servlet.ServletComponentScan;
  6. //import org.springframework.web.bind.annotation.RestController;
  7.  
  8. /**
  9. * SpringBoot整合servlet方式一 这种方式在控制台看到了相关的输出信息,但是在浏览器打开的时候是错误的页面信息
  10. */
  11. @SpringBootApplication
  12. @ServletComponentScan // 在SppringBoot启动时扫描@WebServlet,并将该类实例化
  13. // @RestController
  14. public class App {
  15. public static void main(String[] args) {
  16. SpringApplication.run(App.class, args);
  17. }
  18. }

2.通过方法完成Servlet组件的注册;

ServletDemo2.class

  1. package com.example.combine.servlet.sbservlet;
  2.  
  3. import java.io.IOException;
  4.  
  5. import javax.servlet.ServletException;
  6. import javax.servlet.http.HttpServlet;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9.  
  10. /**
  11. *
  12. * @author servlet整合springboot方式2
  13. *
  14. */
  15.  
  16. // 这种方式无须在servlet这个类中添加@WebServlet这个注释声明
  17. public class ServletDemo2 extends HttpServlet {
  18.  
  19. @Override
  20. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  21. // TODO Auto-generated method stub
  22. super.doGet(req, resp);
  23. System.out.println("这是第二种整合的方式");
  24. }
  25.  
  26. }

App2.class启动类

  1. package com.example.combine.servlet.sbservlet;
  2.  
  3. import org.springframework.boot.SpringApplication;
  4. import org.springframework.boot.autoconfigure.SpringBootApplication;
  5. import org.springframework.boot.web.servlet.ServletRegistrationBean;
  6. import org.springframework.context.annotation.Bean;
  7.  
  8. @SpringBootApplication
  9. public class App1 {
  10.  
  11. public static void main(String[] args) {
  12. // TODO Auto-generated method stub
  13. SpringApplication.run(App1.class, args);
  14. }
  15.  
  16. // 添加如下的方法
  17. // 实现在启动类中注册servlet的方法
  18. @Bean // 添加@Bean的注释
  19. public ServletRegistrationBean getServlet() {
  20. // 通过ServletRegistrationBean完成对servlet的注册
  21. ServletRegistrationBean bean = new ServletRegistrationBean(new ServletDemo2());
  22. bean.addUrlMappings("/second"); // 该方法完成的是对urlPattern的配置
  23. return bean; // 将对象返回
  24. }
  25.  
  26. }

有关的解释都在代码的注解里面,但是有个问题是,虽然最后可以在控制台输出相关的语句,但是浏览器的页面显示错误,应该是缺少了点什么?

SpringBoot整合Servlet的两种方式的更多相关文章

  1. 【SpringBoot】03.SpringBoot整合Servlet的两种方式

    SpringBoot整合Servlet的两种方式: 1. 通过注解扫描完成Servlet组件注册 新建Servlet类继承HttpServlet 重写超类doGet方法 在该类使用注解@WebServ ...

  2. SpringBoot从入门到精通二(SpringBoot整合myBatis的两种方式)

    前言 通过上一章的学习,我们已经对SpringBoot有简单的入门,接下来我们深入学习一下SpringBoot,我们知道任何一个网站的数据大多数都是动态的,也就是说数据是从数据库提取出来的,而非静态数 ...

  3. 【SpringBoot】05.SpringBoot整合Listener的两种方式

    SpringBoot整合Listener的两种方式: 1.通过注解扫描完成Listener组件的注册 创建一个类实现ServletContextListener (具体实现哪个Listener根据情况 ...

  4. 【SpringBoot】04.SpringBoot整合Filter的两种方式

    SpringBoot整合Filter过滤器的两种方式: 1.通过扫描注解完成Filter组件注册 创建一个类,实现Filter接口,实现doFilter()方法 在该类使用注解@WebFilter,设 ...

  5. springboot整合mybatis的两种方式

    https://blog.csdn.net/qq_32719003/article/details/72123917 springboot通过java bean集成通用mapper的两种方式 前言:公 ...

  6. Spring Boot 整合 Shiro ,两种方式全总结!

    在 Spring Boot 中做权限管理,一般来说,主流的方案是 Spring Security ,但是,仅仅从技术角度来说,也可以使用 Shiro. 今天松哥就来和大家聊聊 Spring Boot ...

  7. SpringCloud系列-整合Hystrix的两种方式

    Hystrix [hɪst'rɪks],中文含义是豪猪,因其背上长满棘刺,从而拥有了自我保护的能力.本文所说的Hystrix是Netflix开源的一款容错框架,同样具有自我保护能力. 本文目录 一.H ...

  8. Spring整合Hibernate的两种方式

    在使用spring注解整合hibernate时出现"org.hibernate.MappingException: Unknown entity: com.ssh.entry.Product ...

  9. SpringBoot自定义过滤器的两种方式及过滤器执行顺序

    第一种 @WebFilter + @ServletComponentScan 注解 1.首先自定义过滤器 如下自定义过滤器 ReqResFilter 必须实现  javax.servlet.Filte ...

随机推荐

  1. Python3 freetds.conf odbcinst.ini odbc.ini 之间的关系

    Python3 freetds.conf odbcinst.ini odbc.ini 之间的关系 三者分别是FreeTDS和UnixODBC的配置文件: 1,FreeTDS中的freetds.conf ...

  2. socket:10038错误

    转自:http://blog.csdn.net/chen495810242/article/details/42029825 winSock的一个bug:当closesocket多次错误使用时会导致问 ...

  3. No symbol "xxx" in current context解决

    当gdb的版本低于相应的gcc版本的时候,就会出现debug的时候出现No symbol "*" in current context或者The address where a.o ...

  4. Android之单元测试及数据库操作

    一.安卓下的单元测试1.创建一个单元类,继承超类AndroidTestCase2.在AndroidManifest.xml配置清单中配置以下两点首先在manifest节点下添加节点instrument ...

  5. WIN10安装和使用MySql5.6中遇到的一些问题与解决

    WIN10安装和使用MySql5.6中遇到的一些问题与解决 提示一下,安装前需要安装python环境. MySql安装缺少组件MySQL for Excel 如图(转载别人的图,自己的安装时没有截图) ...

  6. 辅助模块:udp_sweep

    辅助模块:udp_sweep 模块介绍 使用udp对指定IP地址主机进行udp扫描 实践过程 利用该模块填写目的IP来对目的IP地址进行扫描 从结果可以看到扫描结果显示扫描过程放出了13个探针,发现了 ...

  7. Vue学习【第一篇】:Vue初识与指令

    什么是Vue 什么是Vue Vue.js是一个渐进式JavaScript框架它是构建用户界面的JavaScript框架(让它自动生成js,css,html等) 渐进式:vue从小到控制页面中的一个变量 ...

  8. 在vim中 安装php的xdebug和 vdebug插件, 在vim中进行调试php代码

    在vim中 安装php的xdebug和 vdebug插件, 在vim中进行调试php代码 参考: http://www.cnblogs.com/qiantuwuliang/archive/2011/0 ...

  9. fedora23 桌面工具栏fedy, 桌面美化 allow: 2'lau不是2'l2u

    ## Sudoers allows particular users to run various commands as ## the root user, without needing the ...

  10. Facebook ads_Business Manager

    xmind 下载链接