欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SpringMVC(一)初识springMVC(MVC的作用,MVC配置详解,静态资源的访问)

程序员文章站 2022-07-10 20:21:38
...

首先温习一下我们前面所学过的几个框架:

mybatis :

我们学习的目的是为了减少java代码和sql语句之间的耦合度,可以是用户更加的专注于sql语句而不在于java代码本身。

spring:

解决了业务层和其他层的耦合度。

springMVC:

解决了java代码和servlet之间的耦合程度。

没有springMVC时,出现的问题:

学到了现在我们发现,当我们使用servlet时,局限性非常之高,因为是Tomcat创建servlet,通过init中创建service,并且service方法是将所有的请求汇集在一起,然后通过请求路径中的method来判断什么方法,然后if ..else..来进入我们想要进入的方法才可以,学习springMVC就能够解决我们这些出现的问题,来使后台的代码更加的简化。

 

SpringMVC是如何来进行“干涉”我们的代码的?

我们学过servlet都清楚,可以配置一个BaseServlet来进行不同servlet的访问,这个BaseServlet相当于一个引导者,它把所有的访问的请求都接受,然后一一指向他们该去的方法中,springMVC也是这样处理的,只不过更加的完善BaseServlet

SpringMVC(一)初识springMVC(MVC的作用,MVC配置详解,静态资源的访问)

SpringMVC(一)初识springMVC(MVC的作用,MVC配置详解,静态资源的访问)

代码部分:

web-inf文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
<!--        前端控制器,前端控制器需要找springmvc的配置,默认实在web-inf下面找servletname-servlet.xml 文件-->
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--        因为我们没有将文件放在web-inf下,所以需要告诉mvc文件的位置和名字,必须要写classpath-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:*.xml</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
<!--        所有的非jsp请求都会通过这个控制器-->
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

springmvc.xml文件配置:

这里还添加对静态资源的访问配置!!!!!

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop.xsd
       http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
 http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!-- 因为我们要在controller里添加注解 @controller所以需要注解扫描-->
    <context:component-scan base-package="com.bjsxt.controller"></context:component-scan>
<!--    因为要用到@RequestMapping映射访问路径,这个又是mvc提供的,所以要加注解驱动-->
    <mvc:annotation-driven></mvc:annotation-driven>
<!--文件中会有静态资源,但是前台控制器除了jsp的页面都会放行
    这个时候我们要特别的告诉mvc,访问路径是/img/**这个文件下的所有文件全部不接受
    location就是本地资源路径-->
    <mvc:resources mapping="/img/**" location="/img/"></mvc:resources>
</beans>

controller层

package com.bjsxt.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

//创建对象
@Controller
public class MyController {
//    访问路径
    @RequestMapping("/abc")
    public String show(){
        System.out.println("a");
//        转发的方式进行页面的跳转,如果是重定向 url的地址会发生变化
        return "/success.jsp";
    }
}

这样我们就可以通过/abc来访问我们的success.jsp页面啦!

上一篇: 关于mock.js的用法

下一篇: Mock.js