SpringBoot整合Servlet的两种方式
SpringBoot整合Servlet有两种方式:
1.通过注解扫描完成Servlet组件的注册;
2.通过方法完成Servlet组件的注册;
现在简单记录一下两种方式的实现
1.通过注解扫描完成Servlet组件的注册;
ServletDemo1.class
- package com.example.combine.servlet.sbservlet;
- import java.io.IOException;
- import javax.servlet.ServletException;
- import javax.servlet.annotation.WebServlet;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- /**
- *
- * @author SpringBoot 整合Servlet方式1 创建servlet时需要在web.xml进行配置。 <servlet>
- * <servlet-name>ServletDemo1</seevlet-name>
- * <servlet-classs>com.example.combine.servlet.sbservlet.ServletDemo1</servlet-class>
- * </servlet>
- *
- * <servlet-mapping> <servlet-name>ServletDemo1</servlet-name>
- * <url-pattern>/first</url-pattern> </servlet-mapping>
- *
- * 但是在servlet3.0以后可以使用注释的方式来配置,且在springboot中也没有web.xml
- */
- // 在哪个class添加了这个注释就意味着哪个class就是servlet
- @WebServlet(name = "ServletDemo1", urlPatterns = "/first")
- public class ServletDemo1 extends HttpServlet {
- @Override // 重写doget方法
- protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- // TODO Auto-generated method stub
- super.doGet(req, resp);
- System.out.print("这是第一种方式"); //在控制台中输出
- }
- }
App1.class启动类
- package com.example.combine.servlet.sbservlet;
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- import org.springframework.boot.web.servlet.ServletComponentScan;
- //import org.springframework.web.bind.annotation.RestController;
- /**
- * SpringBoot整合servlet方式一 这种方式在控制台看到了相关的输出信息,但是在浏览器打开的时候是错误的页面信息
- */
- @SpringBootApplication
- @ServletComponentScan // 在SppringBoot启动时扫描@WebServlet,并将该类实例化
- // @RestController
- public class App {
- public static void main(String[] args) {
- SpringApplication.run(App.class, args);
- }
- }
2.通过方法完成Servlet组件的注册;
ServletDemo2.class
- package com.example.combine.servlet.sbservlet;
- import java.io.IOException;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- /**
- *
- * @author servlet整合springboot方式2
- *
- */
- // 这种方式无须在servlet这个类中添加@WebServlet这个注释声明
- public class ServletDemo2 extends HttpServlet {
- @Override
- protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- // TODO Auto-generated method stub
- super.doGet(req, resp);
- System.out.println("这是第二种整合的方式");
- }
- }
App2.class启动类
- package com.example.combine.servlet.sbservlet;
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- import org.springframework.boot.web.servlet.ServletRegistrationBean;
- import org.springframework.context.annotation.Bean;
- @SpringBootApplication
- public class App1 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- SpringApplication.run(App1.class, args);
- }
- // 添加如下的方法
- // 实现在启动类中注册servlet的方法
- @Bean // 添加@Bean的注释
- public ServletRegistrationBean getServlet() {
- // 通过ServletRegistrationBean完成对servlet的注册
- ServletRegistrationBean bean = new ServletRegistrationBean(new ServletDemo2());
- bean.addUrlMappings("/second"); // 该方法完成的是对urlPattern的配置
- return bean; // 将对象返回
- }
- }
有关的解释都在代码的注解里面,但是有个问题是,虽然最后可以在控制台输出相关的语句,但是浏览器的页面显示错误,应该是缺少了点什么?
SpringBoot整合Servlet的两种方式的更多相关文章
- 【SpringBoot】03.SpringBoot整合Servlet的两种方式
SpringBoot整合Servlet的两种方式: 1. 通过注解扫描完成Servlet组件注册 新建Servlet类继承HttpServlet 重写超类doGet方法 在该类使用注解@WebServ ...
- SpringBoot从入门到精通二(SpringBoot整合myBatis的两种方式)
前言 通过上一章的学习,我们已经对SpringBoot有简单的入门,接下来我们深入学习一下SpringBoot,我们知道任何一个网站的数据大多数都是动态的,也就是说数据是从数据库提取出来的,而非静态数 ...
- 【SpringBoot】05.SpringBoot整合Listener的两种方式
SpringBoot整合Listener的两种方式: 1.通过注解扫描完成Listener组件的注册 创建一个类实现ServletContextListener (具体实现哪个Listener根据情况 ...
- 【SpringBoot】04.SpringBoot整合Filter的两种方式
SpringBoot整合Filter过滤器的两种方式: 1.通过扫描注解完成Filter组件注册 创建一个类,实现Filter接口,实现doFilter()方法 在该类使用注解@WebFilter,设 ...
- springboot整合mybatis的两种方式
https://blog.csdn.net/qq_32719003/article/details/72123917 springboot通过java bean集成通用mapper的两种方式 前言:公 ...
- Spring Boot 整合 Shiro ,两种方式全总结!
在 Spring Boot 中做权限管理,一般来说,主流的方案是 Spring Security ,但是,仅仅从技术角度来说,也可以使用 Shiro. 今天松哥就来和大家聊聊 Spring Boot ...
- SpringCloud系列-整合Hystrix的两种方式
Hystrix [hɪst'rɪks],中文含义是豪猪,因其背上长满棘刺,从而拥有了自我保护的能力.本文所说的Hystrix是Netflix开源的一款容错框架,同样具有自我保护能力. 本文目录 一.H ...
- Spring整合Hibernate的两种方式
在使用spring注解整合hibernate时出现"org.hibernate.MappingException: Unknown entity: com.ssh.entry.Product ...
- SpringBoot自定义过滤器的两种方式及过滤器执行顺序
第一种 @WebFilter + @ServletComponentScan 注解 1.首先自定义过滤器 如下自定义过滤器 ReqResFilter 必须实现 javax.servlet.Filte ...
随机推荐
- Python3 freetds.conf odbcinst.ini odbc.ini 之间的关系
Python3 freetds.conf odbcinst.ini odbc.ini 之间的关系 三者分别是FreeTDS和UnixODBC的配置文件: 1,FreeTDS中的freetds.conf ...
- socket:10038错误
转自:http://blog.csdn.net/chen495810242/article/details/42029825 winSock的一个bug:当closesocket多次错误使用时会导致问 ...
- No symbol "xxx" in current context解决
当gdb的版本低于相应的gcc版本的时候,就会出现debug的时候出现No symbol "*" in current context或者The address where a.o ...
- Android之单元测试及数据库操作
一.安卓下的单元测试1.创建一个单元类,继承超类AndroidTestCase2.在AndroidManifest.xml配置清单中配置以下两点首先在manifest节点下添加节点instrument ...
- WIN10安装和使用MySql5.6中遇到的一些问题与解决
WIN10安装和使用MySql5.6中遇到的一些问题与解决 提示一下,安装前需要安装python环境. MySql安装缺少组件MySQL for Excel 如图(转载别人的图,自己的安装时没有截图) ...
- 辅助模块:udp_sweep
辅助模块:udp_sweep 模块介绍 使用udp对指定IP地址主机进行udp扫描 实践过程 利用该模块填写目的IP来对目的IP地址进行扫描 从结果可以看到扫描结果显示扫描过程放出了13个探针,发现了 ...
- Vue学习【第一篇】:Vue初识与指令
什么是Vue 什么是Vue Vue.js是一个渐进式JavaScript框架它是构建用户界面的JavaScript框架(让它自动生成js,css,html等) 渐进式:vue从小到控制页面中的一个变量 ...
- 在vim中 安装php的xdebug和 vdebug插件, 在vim中进行调试php代码
在vim中 安装php的xdebug和 vdebug插件, 在vim中进行调试php代码 参考: http://www.cnblogs.com/qiantuwuliang/archive/2011/0 ...
- fedora23 桌面工具栏fedy, 桌面美化 allow: 2'lau不是2'l2u
## Sudoers allows particular users to run various commands as ## the root user, without needing the ...
- Facebook ads_Business Manager
xmind 下载链接