`

20. [视频]Spring Boot Servlet【从零开始学Spring Boot】

阅读更多

 à悟空学院:https://t.cn/Rg3fKJD

学院中有Spring Boot相关的课程!点击「阅读原文」进行查看!

SpringBoot视频:http://t.cn/A6ZagYTi

Spring Cloud视频:http://t.cn/A6ZagxSR

SpringBoot Shiro视频:http://t.cn/A6Zag7IV

SpringBoot交流平台:https://t.cn/R3QDhU0

SpringData和JPA视频:http://t.cn/A6Zad1OH

SpringSecurity5.0视频:http://t.cn/A6ZadMBe

Sharding-JDBC分库分表实战http://t.cn/A6ZarrqS

分布式事务解决方案「手写代码」:http://t.cn/A6ZaBnIr

 

 

Web开发使用 Controller 基本上可以完成大部分需求,但是我们还可能会用到 ServletFilterListenerInterceptor 等等。

当使用Spring-Boot时,嵌入式Servlet容器通过扫描注解的方式注册ServletFilterServlet规范的所有监听器(如HttpSessionListener监听器)。 
Spring boot
的主 Servlet DispatcherServlet,其默认的url-pattern“/”。也许我们在应用中还需要定义更多的Servlet,该如何使用SpringBoot来完成呢?

spring boot中添加自己的Servlet有两种方法,代码注册Servlet和注解自动注册(FilterListener也是如此)。 
一、代码注册通过ServletRegistrationBean FilterRegistrationBean ServletListenerRegistrationBean 获得控制。 
也可以通过实现 ServletContextInitializer 接口直接注册。

二、在 SpringBootApplication 使用@ServletComponentScan注解后,ServletFilterListener 可以直接通过 @WebServlet@WebFilter@WebListener 注解自动注册,无需其他代码。

这里我们新建一个spring-boot-hello2 java工程进行测试;这里不过多进行说明,如果这个还不会的话,请回到上上上一章进行查看。

 

通过代码注册Servlet示例代码:

com.kfit.servlet.MyServlet1

package com.kfit.servlet;

 

import java.io.IOException;

import java.io.PrintWriter;

 

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 Angel(QQ:412887952)

 * @version v.0.1

 */

//这个不需要添加.

//@WebServlet(urlPatterns="/myServlet1/*", description="Servlet的说明")

publicclass MyServlet1 extends HttpServlet{

   

    privatestaticfinallongserialVersionUID = 1L;

 

    @Override

    protectedvoid doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        System.out.println(">>>>>>>>>>doGet()<<<<<<<<<<<");

        doPost(req, resp);

    }

 

    @Override

    protectedvoid doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        System.out.println(">>>>>>>>>>doPost()<<<<<<<<<<<");

        resp.setContentType("text/html"); 

        PrintWriter out = resp.getWriter(); 

        out.println("<html>"); 

        out.println("<head>"); 

        out.println("<title>Hello World</title>"); 

        out.println("</head>"); 

        out.println("<body>"); 

        out.println("<h1>这是:MyServlet1</h1>"); 

        out.println("</body>"); 

        out.println("</html>");

    }

}

 

com.kfit.App中注册:

package com.kfit;

 

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.boot.context.embedded.ServletRegistrationBean;

import org.springframework.boot.web.servlet.ServletComponentScan;

import org.springframework.context.annotation.Bean;

 

import com.kfit.servlet.MyServlet1;

 

/**

 *

 *

 * 大家也许会看到有些demo使用了3个注解: @Configuration

 *

 * @EnableAutoConfiguration

 * @ComponentScan

 *

 *                                 其实:@SpringBootApplication申明让spring boot自动给程序进行必要的配置,

 *

 *                等价于以默认属性使用@Configuration

 *                @EnableAutoConfiguration@ComponentScan

 *

 * 所以大家不要被一些文档误导了,让自己很迷茫了,希望本文章对您有所启发;

 *

 * @author Angel(QQ:412887952)

 * @version v.0.1

 */

@SpringBootApplication

public class App {

        

         /**

          * 注册Servlet.不需要添加注解:@ServletComponentScan

          * @return

          */

         @Bean

         public ServletRegistrationBean MyServlet1(){

                   return new ServletRegistrationBean(new MyServlet1(),"/myServlet/*");

         }

        

         public static void main(String[] args) {

                   SpringApplication.run(App.class, args);

         }

}

 

右键Run As Java Application进行访问http://127.0.0.1:8080/myServlet1

 

 

使用注解注册Servlet示例代码

com.kfit.servlet.MyServlet2.java

package com.kfit.servlet;

 

import java.io.IOException;

import java.io.PrintWriter;

 

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 Angel(QQ:412887952)

 * @version v.0.1

 */

@WebServlet(urlPatterns="/myServlet2/*", description="Servlet的说明")

public class MyServlet2 extends HttpServlet{

      

       private static final long serialVersionUID = 1L;

 

       @Override

    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        System.out.println(">>>>>>>>>>doGet()<<<<<<<<<<<");

        doPost(req, resp);

    }

 

    @Override

    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        System.out.println(">>>>>>>>>>doPost()<<<<<<<<<<<");

        resp.setContentType("text/html"); 

        PrintWriter out = resp.getWriter(); 

        out.println("<html>"); 

        out.println("<head>"); 

        out.println("<title>Hello World</title>"); 

        out.println("</head>"); 

        out.println("<body>"); 

        out.println("<h1>这是:myServlet2</h1>"); 

        out.println("</body>"); 

        out.println("</html>");

    }

}

 

SpringBootSampleApplication.java

package com.kfit;

 

import org.springboot.sample.servlet.MyServlet;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.boot.context.embedded.ServletRegistrationBean;

import org.springframework.boot.web.servlet.ServletComponentScan;

import org.springframework.context.annotation.Bean;

import org.springframework.web.servlet.DispatcherServlet;

 

@SpringBootApplication

@ServletComponentScan//这个就是扫描相应的Servlet;

public class SpringBootSampleApplication {

 

    public static void main(String[] args) {

        SpringApplication.run(SpringBootSampleApplication.class, args);

    }

}

 

访问http://127.0.0.1:8080/myServlet2

 

Spring Boot 系列博客】

à悟空学院:https://t.cn/Rg3fKJD

学院中有Spring Boot相关的课程!点击「阅读原文」进行查看!

SpringBoot视频:http://t.cn/A6ZagYTi

Spring Cloud视频:http://t.cn/A6ZagxSR

SpringBoot Shiro视频:http://t.cn/A6Zag7IV

SpringBoot交流平台:https://t.cn/R3QDhU0

SpringData和JPA视频:http://t.cn/A6Zad1OH

SpringSecurity5.0视频:http://t.cn/A6ZadMBe

Sharding-JDBC分库分表实战http://t.cn/A6ZarrqS

分布式事务解决方案「手写代码」:http://t.cn/A6ZaBnIr

 

网易云课堂视频最新更新

第十一章 Spring Boot 日志

1、spring boot日志—理论

2、Spring Boot日志-logback

3、Spring Boot日志-log4j2

第十二章 Spring Boot 知识点2

1、spring boot 服务配置和部署

2、Spring Boot 定制URL匹配规则

 

 

历史章节

 

第一章 快速开始

1、Spring Boot之Hello World

2、Spring Boot之Hello World访问404

 

第二章 Spring Boot之JSON

1、spring boot返回json数据

2、Spring Boot完美使用FastJson解析JSON数据

 

第三章 Spring Boot热部署

1、Spring Boot热部署(springloader)

2、springboot + devtools(热部署)

 

第四章 Spring Boot数据库

1、Spring Boot JPA/Hibernate/Spring Data概念

2、Spring Boot JPA-Hibernate

3、Spring Boot Spring Data JPA介绍

4、Spring Boot JdbcTemplate

5、Spring Boot集成MyBatis

 

第五章 web开发

1、全局异常捕捉

2、配置server信息

3、spring boot使用thymeleaf

4、Spring Boot 使用freemarker

5、Spring Boot添加JSP支持

 

第六章 定时任务

1、Spring Boot定时任务

2、Spring Boot 定时任务升级篇(动态修改cron参数)

3、Spring Boot 定时任务升级篇(动态添加修改删除定时任务)

4、Spring Boot 定时任务升级篇(集群/分布式下的定时任务说明)

5、Spring Boot Quartz介绍

6、Spring Boot Quartz在Java Project中使用

7、Spring Boot 集成Quartz普通使用

8、Spring Boot 集成Quartz升级版

9、Spring Boot 集成Quartz二次升级版

10、Spring Boot 集成Quartz-Job如何自动注入Spring容器托管的对象

 

第七章 Spring Boot MyBatis升级篇

1、Spring Boot MyBatis升级篇-注解

2、Spring Boot MyBatis升级篇-注解-自增ID

3、Spring Boot MyBatis升级篇-注解-增删改查

4、Spring Boot MyBatis升级篇-注解-分页查询

5、Spring Boot MyBatis升级篇-注解-分页PageHelper不生效

6、Spring Boot MyBatis升级篇-注解- mybatic insert异常:BindingException: Parameter 'name' not found

7、Spring Boot MyBatis升级篇-注解- #和$符号特别篇

8、Spring Boot MyBatis升级篇-注解-@Result

9、Spring Boot MyBatis升级篇-注解-动态SQL(if test)-方案一:<script>

10、Spring Boot MyBatis升级篇-注解-动态SQL(if test)-方案二:@Provider

11、Spring Boot MyBatis升级篇-注解-动态SQL-参数问题

12、Spring Boot MyBatis升级篇-注解-特别篇:@MapperScan和@Mapper

13、Spring Boot MyBatis升级篇-XML

14、Spring Boot MyBatis升级篇-XML-自增ID

15、Spring Boot MyBatis升级篇-XML-增删改查

16、Spring Boot MyBatis升级篇-XML-分页查询

17、Spring Boot MyBatis升级篇-XML-分页PageHelper不生效

18、Spring Boot MyBatis升级篇-XML-动态SQL(if test)

19、Spring Boot MyBatis升级篇-XML-注解-初尝试

20、Spring Boot MyBatis升级篇- pagehelper替换为pagehelper-spring-boot-starter

 

第八章 Spring Boot 知识点1

1、Spring Boot 拦截器HandlerInterceptor

2、Spring Boot启动加载数据CommandLineRunner

3、Spring Boot环境变量读取和属性对象的绑定

4、Spring Boot使用自定义的properties

5、Spring Boot使用自定义的properties

6、Spring Boot使用@SpringBootApplication

7、Spring Boot 监控和管理生产环境

 

第十章 Spring Boot 打包部署

1、Spring Boot打包部署((提供Linux的sh文件))

 

第十一章 Spring Boot 日志

1、spring boot日志—理论

2、Spring Boot日志-logback

 

3、Spring Boot日志-log4j2

分享到:
评论
7 楼 em248 2016-11-21  
不明白有了controller这个注解,为啥还要自己实现servlet以servlet的方式来接受数据?
6 楼 林祥纤 2016-09-28  
itlang01 写道
请问,使用注解方式注册的servlet是不是不会被编码?为什么?
你在这篇文章说道:http://412887952-qq-com.iteye.com/blog/2292362


??
5 楼 itlang01 2016-09-27  
请问,使用注解方式注册的servlet是不是不会被编码?为什么?
你在这篇文章说道:http://412887952-qq-com.iteye.com/blog/2292362
4 楼 林祥纤 2016-09-21  
z736732419 写道


Thx.
3 楼 z736732419 2016-09-20  
2 楼 林祥纤 2016-08-03  
masuweng 写道
666


1 楼 masuweng 2016-08-03  
666

相关推荐

    从零开始学Spring Boot

    1.23 Spring Boot Servlet 1.24 Spring Boot过滤器、监听器 1.25 Spring Boot 拦截器HandlerInterceptor 1.26 Spring Boot启动加载数据CommandLineRunner 1.27 Spring Boot环境变量读取和属性对象的绑定 1.28 Spring...

    27. Spring Boot Junit单元测试【从零开始学Spring Boot】

    Spring Boot Junit单元测试【从零开始学Spring Boot】"的主题,深入探讨Spring Boot中Junit单元测试的使用方法和最佳实践。 首先,我们要了解什么是单元测试。单元测试是一种针对软件中的最小可测试单元(如方法)...

    22. Spring Boot 拦截器HandlerInterceptor【从零开始学Spring Boot】

    Spring Boot的拦截器基于`org.springframework.web.servlet.HandlerInterceptor`接口,该接口包含三个方法: 1. `preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)`:这个...

    19. [视频]Spring Boot 添加JSP支持【从零开始学Spring Boot】

    以下是一个详细的过程,指导你如何从零开始在Spring Boot应用中集成并使用JSP。 首先,我们需要理解Spring Boot的默认视图解析机制。Spring Boot推荐使用Thymeleaf、Freemarker或Mustache等模板引擎,因为它们提供...

    从零开始学spring boot

    《从零开始学Spring Boot》是一本面向初学者的指南,旨在帮助编程新手全面理解并掌握Spring Boot这一强大的Java开发框架。Spring Boot是Spring生态系统的一部分,它简化了配置,提供了快速构建应用程序的能力,使得...

    29. Spring boot 文件上传(多文件上传)【从零开始学Spring Boot】

    1. **文件大小限制**:Spring Boot默认会限制上传文件的大小,你可以通过配置`spring.servlet.multipart.max-file-size`和`spring.servlet.multipart.max-request-size`来调整限制。 2. **文件验证**:在实际应用中...

    21. Spring Boot过滤器、监听器【从零开始学Spring Boot】

    在Spring Boot框架中,过滤器(Filter)和监听器(Listener)是两个非常重要的概念,它们可以帮助我们实现一些自定义的处理逻辑,如数据校验、日志记录、请求拦截等。下面将详细讲解这两个概念及其在实际开发中的...

    从零开始Spring Boot

    从零开始Spring Boot,通过实战快速入门。Spring Boot不是一门新技术,所以不用紧张。从本质上来说,Spring Boot就是Spring,它做了那些没有它你也会去做的Spring Bean配置。它使用“习惯优于配置”(项目中存在大量...

    spring boot 中文文档

    在文档的“开始”部分,介绍了Spring Boot的基础知识,包括系统要求、安装方法以及如何创建和运行第一个Spring Boot应用。系统要求部分会详细说明支持的Servlet容器。Spring Boot安装包括了为Java开发者准备的安装...

    Spring Boot企业级博客系统实战视频教程

    本教程旨在帮助开发者从零开始,逐步构建一个功能完备的企业级博客系统。通过实践,你不仅能掌握Spring Boot的核心技术,还能了解到现代Web开发的最佳实践,提升自己的全栈开发能力。无论是初学者还是有一定经验的...

    Spring Boot Reference Guide

    这个部分将为初学者提供一个关于Spring Boot的概览,以及如何从零开始创建一个简单的Spring Boot应用。 在“II. Getting started”部分,文档首先介绍了Spring Boot的基础知识,紧接着便是系统要求,指出了需要满足...

    spring-boot-books

    3. 开发你的第一个Spring Boot应用:详细介绍了从零开始开发Spring Boot应用的全过程,包括创建项目结构(如POM文件和classpath依赖),编写业务代码,创建RESTful服务(使用@RestController和@RequestMapping注解)...

    13. 处理静态资源(自定义资源映射)【从零开始学Spring Boot】

    在Spring Boot应用中,处理静态资源是开发Web应用时常见的任务。静态资源通常包括HTML、CSS、JavaScript等文件,它们不需服务器动态处理,而是直接发送给客户端。本篇文章将探讨如何自定义资源映射来更好地管理和...

    Spring Boot2 教程.pdf

    【Spring Boot 2 教程】是针对Java开发者的一份详尽指南,旨在帮助读者从零开始学习并掌握Spring Boot 2的使用。Spring Boot 是一个简化Spring应用初始搭建以及开发过程的框架,它强调“约定优于配置”,使得开发者...

    SpringBoot注册Servlet的三种方法详解

    import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.context.annotation.Bean; public class RegisterServlet extends HttpServlet { // ... } @Bean public ...

    base.spring.boot

    通过"base.spring.boot-master"这个项目,你可以深入学习如何从零开始构建一个完整的Spring Boot应用,包括项目结构、配置文件、控制器、服务层、数据库集成、单元测试等多个方面。实践是检验真理的唯一标准,动手...

    从零搭建Spring Boot脚手架,开篇以及技术选型.docx

    对于已经具备一定Spring Boot使用经验但希望进一步深入学习、熟练掌握该框架特性的开发者而言,从零开始搭建一个完整的后端脚手架不仅有助于加深对Spring Boot的理解,还能提供一系列实用的解决方案。本文旨在通过...

    2020最新-百战程序员-SpringBoot视频教程入门到高级(高薪必备技能).txt

    根据给定文件的信息,我们...通过以上学习路径,开发者可以从零开始逐步掌握Spring Boot及其相关技术栈,最终成为一名合格的Spring Boot开发者。在整个过程中,持续实践和参与开源项目对于提升技能也是非常有帮助的。

Global site tag (gtag.js) - Google Analytics