Servlet3.0整合Springmvc(注解版)

【雷达仿真 | FMCW TDMA-MIMO毫米波雷达信号处理仿真(可修改为DDMA-MIMO)】 1、FMCW叫做调频连续波,调频连续波有步进调频连续波(SFMCW)、线性调频连续波(LFMCW),以及其他非线性调频连续波。LFMCW有锯齿波和三角波等等;锯齿波有恒定调制周期的锯齿波和非恒定周期的锯齿波。Introduction to mmwave sensing:FMCW radars.pdf和The fundamentals of millimeter wave sensors。2、MIMO是多输入多输出(Multiple input Multiple output),也就是多发多收。 阅读详情

Servlet3.0整合Springmvc(注解版)

在创建maven的web工程时候,如果报错缺少web.xml

则在pom添加如下配置 :

<build>
   <plugins>
     <plugin>
        <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-war-plugin</artifactId>
        <version>2.4</version>
        <configuration>
         <failOnMissingWebXml>false</failOnMissingWebXml>
        </configuration>
     </plugin>
   </plugins>
 </build>

 

 

web容器在启动的时候  会扫描每个jar包下的META-INF/services/javax.servlet.ServletContainerInitializer 

加载这个文件指定的启动类 

Spring的应用一启动会加载感兴趣的WebApplicationInitializer接口下的所有组件

并且为WebApplicationInitializer 组件创建对象(组件不是接口,不是抽象类)

 

 

总结:

  以注解方式来启动Spring MVC 继承 AbstractAnnotationConfigDispatcherServletInitializer

  实现抽象方法指定 DispatchServlet的配置信息

 

 

 

将Spring mvc 通过注解形式整合


 

配置:

//web容器启动的时候就会创建对象 调用方法 初始化容器 以及前端控制器
public class MyWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

    //获取跟容器的配置类  (Spring配置文件) 父容器
    @Override
    protected Class<?>[] getRootConfigClasses() {
        // TODO Auto-generated method stub
        return new Class<?>[] {RootConfig.class};
    }
  // 获取web容器的配置类 (Spring mvc配置文件) 创建子容器
    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class<?>[] {AppConfig.class};
    }
  //获取DispatcherServlet的映射信息
    @Override
    protected String[] getServletMappings() {
        // /* 拦截所有亲求; 连*.jsp页面都拦截; jsp页面是Tomcat的jsp引擎解析的
        return new String[] {"/"}; //拦截所有请求 包括静态资源 
        
    }

}

 

AppConfig:

//Spring mvc 只扫描controller 子容器
@ComponentScan(value="com.toov5", 
includeFilters= { @Filter(type=FilterType.ANNOTATION,classes= {Controller.class})},
useDefaultFilters = false)  //禁用默认的过虑规则
public class AppConfig {

}

RootConfig:

//Spring的容器不扫描controller  父容器
@ComponentScan(value="com.toov5", excludeFilters= {@Filter(type=FilterType.ANNOTATION,classes= {Controller.class})})
public class RootConfig {

}

Controller:

@Controller
public class HelloController {

    @Autowired
    HelloService HelloService;

    @ResponseBody
    @RequestMapping("/hello")
    public String hello() {
        String sayHello = HelloService.sayHello("toov5");
        return sayHello;
    }
}

Service:

@Service
public class HelloService {
  
    public String sayHello(String name) {
        return "Hello:"+name;
    }
}

访问:

 

 在xml配置的spring mvc开发中

  <mvc: default-servlet-handler/>   将springmvc处理不了的请求交给tomcat 静态资源就可以访问

 <mvc:annotation-driven /> springmvc高级功能开启

 <mvc:interceptors> </mvc:interceptors>

 <mvc:view-controller path="" /> 

 

 

下面我们定制 Spring mvc

   1 @EnableWebMvc  开始Spring mvc 定制配置功能

       <mvc:annotation-driven />

  2 配置组件(视图解析器 视图映射 静态资源映射 拦截器)

 

//Spring mvc 只扫描controller 子容器
@SuppressWarnings("deprecation")
@ComponentScan(value="com.toov5", 
includeFilters= { @Filter(type=FilterType.ANNOTATION,classes= {Controller.class})},
useDefaultFilters = false)  //禁用默认的过虑规则
@EnableWebMvc
public class AppConfig extends WebMvcConfigurerAdapter {
  
     //定制视图解析器
    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
        registry.jsp("/WEB-INF/views/",".jsp");
        
    }
    //静态资源访问等等都可配置
    
}

 

Controller

@Controller
public class HelloController {

    @Autowired
    HelloService HelloService;

    @ResponseBody
    @RequestMapping("/hello")
    public String hello() {
        String sayHello = HelloService.sayHello("toov5");
        return sayHello;
    }
    @RequestMapping("/su")
    public String success() { //配置了解析器
        return "success";
    }
}

访问结果:

 

 

放入图片,加入jsp:

 

 Jsp:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
  <img alt="" src="aa.jpg">
</body>
</html>

 

此时:

没有找到 这个映射   这个请求是被spring mvc处理了  实际上这个是个静态资源 交给tomcat。

 

 下面进行自定义配置 配置静态资源访问

 

//Spring mvc 只扫描controller 子容器
@SuppressWarnings("deprecation")
@ComponentScan(value="com.toov5", 
includeFilters= { @Filter(type=FilterType.ANNOTATION,classes= {Controller.class})},
useDefaultFilters = false)  //禁用默认的过虑规则
@EnableWebMvc
public class AppConfig extends WebMvcConfigurerAdapter {
  
     //定制视图解析器
    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
        registry.jsp("/WEB-INF/views/",".jsp");
        
    }
    //静态资源访问等等都可配置
    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();  //xml:<mvc: default-servlet-handler/>   将springmvc处理不了的请求交给tomcat 静态资源就可以访问
    }
}

 

成功!

 

下面配置一个复杂一点的拦截器:

  拦截器:

  

//需要实现spring mvc  的接口    之前: <mvc:interceptors> </mvc:interceptors>
public class MyFirstInterceptor implements HandlerInterceptor{
   //目标方法运行之前执行
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
            throws Exception {
        System.out.println("目标方法之前....执行了preHandle");
        return true;
    }

    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
            ModelAndView modelAndView) throws Exception {
        System.out.println("目标方之后....执行了postHandle");
        
    }

    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
            throws Exception {
        System.out.println("响应到页面之后....执行了afterCompletion");
    }
  
}

 

 配置:

 

//Spring mvc 只扫描controller 子容器
@SuppressWarnings("deprecation")
@ComponentScan(value="com.toov5", 
includeFilters= { @Filter(type=FilterType.ANNOTATION,classes= {Controller.class})},
useDefaultFilters = false)  //禁用默认的过虑规则
@EnableWebMvc
public class AppConfig extends WebMvcConfigurerAdapter {
  
     //定制视图解析器
    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
        registry.jsp("/WEB-INF/views/",".jsp");
        
    }
    //静态资源访问等等都可配置
    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();  //xml:<mvc: default-servlet-handler/>   将springmvc处理不了的请求交给tomcat 静态资源就可以访问
    }
    
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new MyFirstInterceptor()).addPathPatterns("/*"); //添加一个拦截器   也可以从容器中获取
    }
    
}

运行:

 

posted @ 2019-04-14 14:17 toov5 阅读(...) 评论(...) 编辑 收藏

27、VXLAN BGP EVPN网络的自动化部署与运维管理 本文深入探讨了VXLAN BGP EVPN网络从初始配置到运维管理的全生命周期自动化流程,涵盖Day-0设备自动上线、Day-0.5增量变更与连接验证、Day-1覆盖服务配置与计算集成,以及Day-2监控与故障排查。详细介绍了推送与拉取两种配置模型、主流工具如Cisco VTS、NFM、DCNM的功能特点,以及开源自动化工具的应用。通过流程图和命令示例,系统展示了MAC/IP学习、BGP通告和VXLAN封装的验证方法,为构建高效、可扩展的数据中心网络提供了全面的技术指导。 阅读详情

相关推荐

【史诗级】详细阐述借助AI实现对Windows蓝屏原因进行精确定位的方法

在解决问题的过程中我决定把这一切都记录下来,并整理出一套通用的方法,方便快速精确定位引起蓝屏的真实原因。今天我的蓝屏代码是0x000000ef,而你或许是遇到另一个蓝屏代码,代码本身代表的含义不是这里的讨论重点,重要的是解决问题的底层逻辑。

sprlightning的博客 1万+

Spring注解驱动开发第54讲——Servlet 3.0整合Spring MVC

写在前面 在上一讲中,我们分析清楚了Servlet 3.0整合Spring MVC的底层原理。接下来,我们就要以注解的方式将Spring MVC整合进来了。其实,大家完全可以参考Spring的官方文档的这一块的写法。 因为这块的写法跟我们的分析是一模一样的。 Servlet 3.0与Spring MVC的整合 。。。 ...

李阿昀的博客 1808

硬件开发流程

研发流程在一个有一定规模的企业中起到了非常重要的作用,也是一个产品或者项目成功量产出货依赖的平台体系,作为工程师如果想要走的更远,就必须了解流程体系,了解如何对产品的开发质量进行更好的管控。...

weixin_44126796的博客 8379

Spring注解驱动开发第53讲——Servlet 3.0与Spring MVC的整合分析

写在前面 在前两讲中,我们说了一下ServletContainerInitializer机制以及如何利用ServletContext向web容器中注册Servlet、Listener以及Filter这三大组件。而在这一讲中,我们就来详细分析下Servlet 3.0是如何利用ServletContainerInitializer机制来整合Spring MVC的。 注意,这儿还只是来研究分析整合Spring MVC的底层,并没有开始正式整合Spring MVC哟????,这是下一讲的事情。 Servlet 3.

李阿昀的博客 1789

H3C交换机S-MLAG实战:如何用bond4模式实现服务器高可用(附避坑指南)

本文详细介绍了H3C交换机S-MLAG技术与服务器bond4模式的实战配置,帮助实现跨设备链路聚合的服务器高可用方案。通过解析S-MLAG技术优势、bond4模式选择、关键配置步骤及常见问题排查,提供了一套完整的避坑指南和优化建议,适用于企业级网络架构的高可用需求。

weixin_30790841的博客 466

手把手教你用Xilinx Ultrascale+ FPGA解串12-bit ADC的LVDS信号(附Verilog代码)

本文详细介绍了如何使用Xilinx Ultrascale+ FPGA解串12-bit ADC的LVDS信号,涵盖硬件设计、时钟域处理和数据对齐等关键技术。通过Verilog代码实例和调试技巧,帮助工程师解决高速数据采集中的核心挑战,提升系统稳定性和性能。

weixin_42522964的博客 373

ApplicationContext.log 将servlet[XXX]标记为不可用 问题已解决!!!

最终我尝试着把Tomcat从 10.0.6 版本降低到 9.0.46 版本,更改环境变量重新运行,竟然好了!期间我清楚Maven重新构建项目、手动在 lib 文件中添加 servlet-api 等相关jar包无果。如果更改了 Tomcat版本还是无效,可以尝试一下这篇文章的方法(有人解决了!也许是 Tomcat 版本太高不兼容所导致的。

follow your heart 732

别再纠结选哪个向量库了!我用Spring AI + Redis Stack 7.2,5分钟搞定企业知识库RAG原型

本文介绍了如何利用Spring AI和Redis Stack 7.2快速构建企业级RAG应用,解决向量数据库选型难题。Redis Stack 7.2集成了RediSearch模块,支持向量相似性搜索,具备高性能、低成本、零学习成本等优势,特别适合中小团队快速搭建知识库系统。通过实战代码示例,展示了从环境准备到核心功能实现的完整流程。

weixin_29061041的博客 272

Spring注解版 servlet3.0 springmvc注解版

代码:spring-annotation 扫描的时候,如果是自定义扫描规则,需要写一个实现类 实现 TypeFilter接口 配置类2 MainConfig2 @scope 单实例或者多实例 @Condition 按照条件选择是否注入,需要写条件判断代码(实现condition接口) @import注解导入类 @importselector 需要写代码 ...

chengqingshihuishui的博客 328

开源DIY龙门架:从零构建可编程运动控制平台

运动控制是自动化与机器人技术的核心基础,它通过精确指令驱动执行机构,实现物体的定位与轨迹规划。其原理通常涉及控制器、驱动器、电机与传动机构的协同工作,核心价值在于将数字指令转化为精准的物理运动,从而解放人力并提升作业一致性。在工业自动化、桌面制造(如3D打印、激光雕刻)及教育机器人等领域应用广泛。本文聚焦于一个具体的工程实践案例:使用**铝型材**、**3D打印**零件、Arduino控制器及步进电机,从机械结构设计、电路连接到代码编写,手把手教你打造一个模块化、可扩展的开源龙门架系统。该系统不仅成本可控,

weixin_33168937的博客 620

30天入门 SAP BTP 开发系列之十四: 将 SAP Business Application Studio 里开发好的 Node.js 应用部署到 Cloud Foundry 环境中

本教程详细介绍了如何将SAP Business Application Studio中的Node.js应用部署到Cloud Foundry环境。在完成本地开发和测试后,通过cf login命令连接Cloud Foundry环境,配置manifest.yml文件指定应用参数和路由信息。使用cf push命令完成应用的上传和部署,最终使应用运行在SAP BTP的云端环境中。教程包含从路由创建到部署验证的完整流程,确保开发者能够成功将Node.js应用发布到生产环境。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1080

Java搭建SpringMVC环境时网页提示404:源服务器未能找到目标资源的表示

总结:应该是jstl的依赖坐标和standard的坐标因为我未知的原因是无效的或者没有发挥作用导致的,所以需要手动导入lib包,如果有这两个包,可以手动建一个lib文件夹直接粘贴进去,记得右键点lib包选择Add as Libary。再选中lib文件夹,点加号选择Library Files,使用Ctrl+A快捷键全选,点击确定,点击应用,重新启动服务器,问题解决。在Tomcat运行的时候,会有这个窗口,点第二个红箭头所指的按钮,可以在下面看到第一行有错误。黄色的加号按钮,如图所示,创建一个lib文件夹。

black_strong的博客 1265

搞定ESD(九):静电放电之PCB设计

不同信号参考地平面应尽量保持完整,减小静电电流流过参考地平面时造成的电位差,防止电位差导致的信号传输电平错误.主芯片GPIO信号布线应保持最短化,减小与参考地平面之间的电场耦合,同时也防止因信号环路面积较大耦合静电放电噪声干扰。外部端子接地引脚顶层采用分地设计,最好是直接过孔到完整参考地平面接地,避免与顶层信号包地、其它包地相连,防止顶层串扰耦合到其它信号,造成ESD问题。

记得诚 1951

WEB注解开发—Servlet3.0与SpringMVC整合与分析

以前写WEB的三大组件(servlet、filter、listener),都需要在web.xml中注册,包括DispatcherServlet等。而自Servlet3.0以后,就提供了相应的注解方式完成各个组件的注册与添加,包括运行时的可插拔功能。本文首先分析一下Servlet3.0的开发事项,然后再分析Servlet3.0与SpringMVC的整合。 一、Servlet3.0 (Servlet...

huxiutao的博客 2319

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Spring注解驱动之Servlet3.0整合SpringMVC

Servlet3.0整合SpringMVC

抽象的螺旋 241

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Spring注解驱动开发(三)servlet3.0以及整合SpringMVC

1、Servlet3.0 在Servlet3.0之前,创建web工程都是需要web.xml文件的,三大组件:Servlet、Filter和Listener以及SpringMVC的前端控制DispatchServlet等都是需要在web.xml文件中进行配置的。 但是这次我们要做的是基于Spring的注解配置,不想使用web.xml来进行Spring的Listener...

zengdongwen的博客 471

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Spring注解开发——8. SpringMVC整合Servlet3.0

1. 前言 在servlet3.0之后,servlet也支持注解开发了,容器在启动应用的时候,会扫描当前应用每一个jar包里面的META-INF/services/javax.servlet.ServletContainerInitializer,指定的实现类,启动并运行这个实现类的方法,传入感兴趣的类型,感兴趣的类通过注解@HandlesTypes(value={HelloSe...

武汉小喽啰 527

Spring注解驱动之Servlet3.0与SpringMVC的整合分析

Servlet3.0整合SpringMVC

抽象的螺旋 436

Servlet3.0注解开发应用

Servlet3.0注解开发应用 1、简介和测试 index.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" ...

Mokyskury的博客 358

Spring全注解开发----Servlet 3.0

Servlet 3.0servlet3.0-简介&测试使用前导入servlet相关的依赖@WebServlet : 注册servlet ,以及servlet 3.0相关的注解说明,链接在下面: 同样,要注册Filter用@WebFilter注解、注册Listener用@WebListener注解;如果在注册的时候,需要一些初始化参数,我们就可以用@WebInitParam注解;小细节回顾: 解决tomcat响应中文乱码问题,通知浏览器使用uft-8编码来对数据进行解码servlet3.0 ==&gt

m0_53157173的博客 2266

Spring注解版的web(四) servlet3.0

注解版的web跟之前不同的方式在于,以前写web的三大组件servlet,filter,listener都需要在web.xml进行配置,包括springmvc的前端控制器DispatcherServlet,要使用也是要在web.xml进行注册,而servlet3.0标准之后,给我们提供了一些方便的注解,帮我们完成这些组件的注册和添加,包括提供了通过插件的方式很方便的扩充已有 Web 应用的功能,而...

weixin_42412601的博客 914

SpringMVC与Servlet3.0整合 - ServletContainerInitializer注解配置项目

【1】SpringServletContainerInitializer ServletContainerInitializer 该篇博文说明了ServletContainerInitializer是什么以及如何在项目中使用。 SpringMVC同样实现了该功能。 web容器在启动的时候,会扫描每个jar包下的META-INF/services/javax.servlet.ServletCo...

小小默:进无止境 4813

idea中原生Servlet3.0开发之---使用配置类和注解的方式整合SpringMVC

以注解方式来启动SpringMVC前需了解的基础知识: 1、web容器在启动的时候,会扫描每个jar包下的META-INF/services/javax.servlet.ServletContainerInitializer 2、加载这个文件指定的类SpringServletContainerInitializer 3、spring的应用一启动会加载感兴趣的WebApplicationI...

林海静的博客 4039

课程Spring注解驱动学习笔记(十四)servlet3.0与SpringMVC整合

原理分析 1、web容器在启动的时候,会扫描每个jar包下的META-INF/services/javax.servlet.ServletContainerInitializer 2、加载这个文件指定的类SpringServletContainerInitializer 3、spring的应用一启动会加载感兴趣的WebApplicationInitializer接口的下的所有组件; 4、并且为W...

huangpf_vcx 244

【小家Spring】Spring注解驱动开发---Servlet 3.0整合Spring MVC(不使用web.xml部署描述符,使用ServletContainerInitializer)

前言 大家都知道,Servlet3.0是一次重要升级。可以全部采用注解驱动,大大简化了配置web.xml的麻烦。现在启动一个web容器并不依赖于web.xml配置文件了。 然后我们印象深刻的是,之前我们在使用Spring MVC的时候,DispatcherServlet是必须要要在web.xml里配置,现在没有了这个,我们该怎么办呢? 本文主要以全注解驱动整合Spring MVC(注意:非Spri...

架构师:通透,才能写出好代码! 5124

SpringMVC - 以 Servlet 3.0 的方式搭建 SSM 框架

SpringMVC - 以 Servlet 3.0 的方式搭建 SSM 框架

业精于勤荒于嬉 598
上一篇: Servlet3.0与Spring
下一篇: Servlet3.0异步请求
Art&Code
博客等级 码龄7年 77粉丝 554原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值