SpringMVC2021年3月13日以更新

SpringMVC(2021年3月13日以更新一起加油学习吧)

SpringMVC简介

简介:

​ 是基于Spring的一个框架,实际上就是Spring的一个模块 专门做web开发的。理解是servlet的一个升级

​ web开发的底层是servlet,框架是在servlet基础上面加入一些功能,让你做web开发方便

SpringMVC就是一个Spring。Spring是容器,IOC能够管理对象,使用bean,@Component,@Repository,@Service,@Controller

SpringMVC能够创建对象,放入到容器中(SpringMVC容器),Springmvc放的是控制器对象,

使用使用@Contorller创建控制器对象把对象放入SpringMvc容器中,把创建的对象作为控制器使用,这个控制器对象能接收用户的请求,显示处理结果,就当做是一个servlet使用

使用@Contorller注解创建的是一个普通的对象不是servlet。SpringMvc赋予了控制器对象一些额外的功能。

​ web开发底层是servlet,SpringmVC中有一个对象是servlet:DispatherServlet(中央调度器)

DispatherSevlet:负责接收用户的所有请求,用户把请求给了DispatherServlet,之后DispatherServlet把请求转发给了Cotroller对象,最后是把Controller对象处理请求

index.jsp–DispatherServlet(Servlet)–转发,分配给Controller对象(@Controller注解创建的对象)

springMVc(所需的jar包):

1.jar

spring-aop.jar

spring-bean.jar

spring-context.jar

spring-core.jar

spring-web.jar

speing-mvc.jar

springmvc第一个程序

Servlet-springmvc

jsp->Servlet(SpringMvc)->Jsp

springmvc配置文件spring.xml

配置常用的命名空间:beans,aop,context,mvc、

xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"

普通的servlet流程

请求-url-pattern-交给对应的servlet去处理

如果现在想用springmvc,而不是普通的sercvlet.

需要spring介入程序配置一个Springmvc自带的servlet

通过一下配置,拦截所有请求,交给SpringMvc处理

 <servlet>
        <servlet-name>springDispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>
     
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <!--/是拦截所有请求
		/user:拦截以user开头的请求
		/user/abc.do 之拦截该请求
		.abc 拦截以adc结尾的请求
-->
       <servlet-name>springDispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

然然后再springMVC.xml中扫描注解包以及配置视图解析器

InternalResourceViewResolver:视图解析器(外部不能直接访问/WEB-INF目录下的资源)

只能通过内部服务器转发的形式进行访问,那么InternalResourceViewResolver就可以解决这个问题

InternalResourceViewResolver的两个属性:prefix:文件目录

​ suffix:后缀


<!--扫描有注解的包-->
<context:component-scan base-package="org.springmvc.hander"></context:component-scan>

<!--视图解析器InternalResourceViewResolver-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <!--prefix文件目录-->
      <property name="prefix" value="/views/"></property>
        <property name="suffix" value=".jsp"></property>
</bean>

​ 项目要中同时兼容 springMvc和servlet

  	<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
  	<url-pattern>.action</url-pattern>
  </servlet-mapping>
	<a href="wecome">fist springmvc</a>/*会被servlet所拦截*/
	<a href="user/welcome.action">fist springmvc</a>/*会被springmvc所拦截*/

在springmvcHandler:

//接口/类 注解 配置
@Controller
public class SpringMvcHandler {
   

    //请求被拦截
    @RequestMapping
    public String wecome(){
   
	//我们在springmvc.xml中配置了InternalResourceViewResolver所以这里(success)不需要配置文件目录以及后缀.jsp
      return "success";
    }
}

在web下创建一个views里面创建一个success.jsp

启动项目点击超链接 会跳转到success.jsp页面

原理: springMvcHandler拦截wecome请求进行跳转

3月10日

DispatcherServlet在web.xml中的默认地址
  <servlet>
  	<servlet-name>dispatcher</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  		<!--init-param是设置DispatcherServlet文件位置
	ContextConfigLocation:有一个默认文件位置如果放在默认文件位置那么就不用写<init-param>默认文件位置在WEB-INF下面 文件名必须是 spring-DispatcherServlet-servelt.xml
-->
  		<init-param>
  			<param-name>ContextConfigLocation</param-name>
  			<param-value>classpath:springmvc.xml</param-value>
  		</init-param>
  		
  	<load-on-startup>1</load-on-startup>
  </servlet>

@RequestMapping还可以加载类前例:
在这里插入图片描述

在index.jsp中

<a href="Handeler/wecome/abc">fist springmvc</a>

映射是去匹配@RequestMapping注解,可以和方法名、类名不一致

通过method=RequestMethod.POST可以指定拦截请求方式

在这里插入图片描述
在这里插入图片描述

拦截失败405

在这里插入图片描述

​ 拦截成功的样子

在这里插入图片描述

@RequestMapping的参数

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洛尘 programmer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值