程序员的春天-SpringMVC01

程序员的春天-SpringMVC01

钢之炼金术士op4

用了4天刷完了64集的钢炼fa,最后看到阿尔得到身体的那一幕眼泪瞬间就掉下来了。
钢炼最火的歌是op1 again也是我之前没补完动漫的时候最喜欢的歌,但是看完动漫之后我觉得还是这首op4 period 更有感染力。

每一次追完喜欢的动漫内心好久都不能平静,开始的巨人,喰种,后面的fz,fsn ubw,fsn hf 到现在的钢炼fa。
说到底还是因为他们陪我度过了一段很难以忘怀的时光,分离是那么令人难以接受!

感谢爱德华·艾尔利克和阿尔冯斯·艾尔利克兄弟给我带来了4天的快乐时光!

生活还是得回到正轨,连续3天熬夜我已经是要遭不住了,该好好学习了!


SpringMVC

配置开发

起步环境配置

maven依赖配置以及版本锁定

maven配置在version标签中写${spring.version}用于获取配置的版本

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${spring.version}</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.0</version>
      <scope>provided</scope>
    </dependency>

配置版本锁定spring.version写配置的版本号

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <spring.version>5.0.2.RELEASE</spring.version>
  </properties>

注册springmvc中央控制器

相当于在web.xml中配置servlet的过程,在web.xml中配置

  <servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

DispatcherServlet这个类的名称是springmvc提供的固定的load-on-startup指定服务器开启的时候就执行配置的servlet

创建并配置springmvc配置文件

默认这个文件必须放在WEB-INF目录下名称必须是springmvc-servlet.xml

设置约束

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd">

配置springmvc配置文件路径和默认名称问题
在之前的web.xml的中央配置器配置servlet标签中加入init-param标签

<init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:springmvc.xml</param-value>
</init-param>

param-name:contextConfigLocation这个是固定的
param-value:classpath:springmvc.xml
这个classpath:代表项目根目录也就是webapp而springmvc.xml代表配置文件的名称
因为idea在resources中的文件最终会编译到根目录下,所以我们的配置文件创建在resources目录下即可,叫什么名字根据个人喜好即可

url-pattern配置问题

这里的url-pattern指的是在web.xml中中央配置器配置的servlet-mapping中的url-pattern
相当于拦截的意思,可以写/,.do,但是不可以写/

问题:写了/之后项目中的静态文件均不可以访问包括css,js,jsp,img

三种解决方案

plan1:
在web.xml中配置静态资源的访问

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.jpg</url-pattern>
</servlet-mapping>

这句含义是允许所有.jpg结尾的文件访问

plan2:
在springmvc.xml中配置

<mvc:default-servlet-handler/>

这句会开启所有的静态资源访问

plan3:
在springmvc.xml中配置

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

这句的含意是允许访问根目录下的images目录下的所有静态资源

配置开发的基本流程

    1. 加依赖
    1. 配置web.xml
    1. 创建springmvc.xml配置文件
    1. 创建控制层类
    1. 配置控制层类
    1. 启动服务器调试

创建控制层类

这个类需要实现Controller接口并实现handleRequest方法返回一个ModelAndView对象即可

public class MyController implements Controller {
    @Override
    public ModelAndView handleRequest(
            HttpServletRequest httpServletRequest,
            HttpServletResponse httpServletResponse
    ) throws Exception {
        ModelAndView mv = new ModelAndView();
        mv.addObject("msg", "Hello SpringMVC!");
        mv.setViewName("/WEB-INF/pages/success.jsp");
        return mv;
    }
}

ModelAndView对象
addObject:添加自定义对象,在页面中可以用el表达式获取
setViewName:设置视图的路径/开始代表根目录

配置控制层类

在speingmvc.xml文件中配置类

<bean id="/my" class="top.byfree.controller.MyController"/>

id:代表访问路径
class:代表指向的控制类

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://www.byfree.top/archives/springmvc01