springmvc点击a标签跳转无法访问百度页面_Java修行第071天 ---SpringMVC(上)

掌握MVC编程思想

掌握SpringMVC运行原理核心组件

掌握SpringMVC基于配置的开发

掌握SpringMVC的urlpattern和静态资源放行方案

掌握SpringMVC的注解开发

一、SpringMVC入门

1. MVC介绍

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器 (controller)的缩写,它是一种软件设计典范,是一种软件架构设计分层模式。

Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。

View(视图)是应用程序中处理数据显示的部分。

Controller(控制器)是应用程序中处理用户交互的部分。

最典型的MVC就是JSP + servlet + javabean的模式。

2.MVC发展历史

Model 1 (jsp+javabean)

Model 2 (jsp+servlet+javabean)

Model1和Model2的优缺点

Model 1:

Moel1的中心是ISP页面,JSP 页面中结合业务逻辑、服务端处理过程和HTML等,这样就在JSP页面中同时

实现了业务逻辑和流程控制。从而快速开发。

Model1的优缺点:

优点: 简单,快速开发,适用小规模开发:

缺点: 业务逻辑和表示逻辑混合在ISP页面中没有进行抽象和分离,JSP负载太大。所以非常不利于应用系统业务的重用和改动,不便于维护。

Model 2:

Model 2表示的是基于MVC模式的框架。通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。从而弥补了ModelI的不足。

Model2其实是在EModel1基础上又抽了-层控制层。

Model2优缺点:

优点: 具有组件化的优点从而更易于实现对大规模系统的开发和管理。职责划分清晰。

缺点: 不适合小项目开发。

3.目前市场上MVC框架

3.1 SpringMVC(主流MVC框架):是spring框架的一部分(子框架), 是实现对Servlet技术进行封装

3.2 Struts框架

3.3 Jfinal框架

二、SpringMVC配置式开发

  1. SpringMVC运行原理(执行过程)

下面的图都是大同小异,核心都是相同的

bfcceb0a39fb93e46a78b4ba28b75421.png

952e2f3244bcdee524315d7995e3d85d.png

a888537d1a59533213e94e074ab4563a.png

6b52e67b1f956425e70b15a19c799104.png

2.需求:用户提交一个请求,服务端处理器接收到请求后,给出一条信息, 在相应页面中显示该条信息

3.开发步骤

3.1导入jar包

669a59241b4f6c77e09ffae2f7291b63.png

3.2配置web.xml,注册SpringMVC前端控制器(中央调度器)

751c606e2b6da8ee58c3e19c17b0d5c3.png

3.3编写SpringMVC后端控制器

3.4编写springmvc配置文件,注册后端控制器(注意id写法格式)

配置式开发,注册后端控制器需要注意的问题

<!--注意id为'/'开头,以拦截内容结尾-->

<bean id="/my.do" class="cn.bjsxt.handlers.MyHandler"></bean>

99ce568c9fe59583f96ad107e2a9183d.png

3.5编写跳转资源页面

ModelAndView的对象的setViewName();来实现资源跳转

562b2adbb388fd06b44c1161687a0732.png

4.web.xml中urlpattern配置问题

4.1配置/和配置/*的区别

/*.do 拦截ur末尾为.do的请求

/* 拦截所有请求

/ 拦截请求和静态资源,不拦截jsp, jsp不是静态资源,也不是url

4.2静态资源无法访问解决方案(三种)

(1)静态资源无法访问的第一种解决方案

web.xml中配置servlet-mappering标签

<servlet-name>default</servlet-name>

<url-pattern>*.png</url-pattern>

这样就可以放行掉想使用的静态资源,也可以*.js *.css

55b6ecd20460c710915402b274d9f6c8.png

(2~3)其他两种方案都是在springmvc.xml下进行配置

静态资源无法访问的第二种解决方案

<mvc:default-servlet-handler/>

静态资源无法访问的第三种解决方案

<mvc:result location="/images/" mapping="/images/**"></mvc:result>

其中mapping内容表示:以image为请求路径下的所有资源都可以访问

9d9e7d89dd16fec7ce0e2830373ee5aa.png

三、SpringMVC注解式开发

1 搭建环境

1.1后端控制器无需实现接口,添加相应注解

6f9447f440d6690ee4f6d28f421cff57.png

1.2springmvc配置文件无需注册controller

在添加controller注解之后,类文件就添加实现类,重写也不再需要

ee8274aff902221eb9ff0933f2e6b484.png

1.3 springmvc配置文件中添加组件扫描器、注解驱动 <mvc:annotation-driven /> 会自动注册DefaultAnnotationHandlerMapping与 AnnotationMethodHandlerAdapter 两个bean,并提供了:数据绑定支持, @NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持,读写XML的支 持(JAXB),读写JSON的支持(Jackson)等等。

  1. 注册组件扫描器的作用,就是用注解被扫描
  2. 注册注解驱动 : 能够自动注册处理器映射器 和 处理器适配器

787bf9781b4c10d4b76776fb5f18bfe1.png

2 涉及常用注解 @Controller、@RequestMapping(类体上【命名空间】、方法上)、@Scope

637cae7949a57c597fde64d46266c49f.png

@RequestMapping("/springmvc") 该注解不但可以放在类体上还可以放在方法体上

3 视图解析器(前缀、后缀)

什么时候会用到视图解析器?

当文件的位置位于很多级文件夹下,写路径名非常的麻烦,这时我们想每次返回时只返回文件名,就需要用到视图解析器了.

856fb55acf972621941e7c589e2009b1.png

使用视图解析器之后

a6064bdd49b116e2e334f29343d15521.png

实现思路: 可将路径的前缀,和文件名的后缀直接在springmvc文件中进行配置

一定要注意书写正确

1c61d4b60c5080821163ce144b7594a6.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值