您好,欢迎来到品趣旅游知识分享网。
搜索
您的当前位置:首页SpringMVC笔记

SpringMVC笔记

来源:品趣旅游知识分享网

注解实现简单的开发

1、maven导包

spring-webmvc就是spring全部核心包

jstl是一个JSP标签集合,它封装了JSP应用的通用核心功能。

在我们使用Maven构建项目的时候,会默认过滤掉静态资源,导致有些资源文件读取不到,排查很久发现自己的路径什么的都正确,这个时候就要考虑手动来配置maven,放开这个过滤,pom.xml下添加:<resource>那一段

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.1.9.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
    </dependencies>
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
    </build>

2、添加web的支持

 

3、idea中添加web支持后会自动生成web目录和web.xml,接下来就要配置web.xml

 死代码就是注册了一个DispathcherServlet,然后配置了一个启动级别load-on-startup数值越小优先级越高,再就是一个映射让它处理匹配所有的  /  请求

自己学习可以保存重复使用,真实工作中基本上不会动这些东西

<?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>
        <servlet-name>SpringMVC</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>SpringMVC</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

 4、死代码创建sprigmvc-servlet.xml关于servlet和springmvc的配置

 

配置了自动扫描注解

过滤一些静态资源让它不去经过视图解析器去处理例如:.mp3   .mp4  .avi.等静态资源

自动注入处理器映射器和处理适配器,这一句注解代替了下面两段注入

    <!--自动注入处理映射器和处理适配器-->
    <mvc:annotation-driven/>

添加 处理映射器

<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

添加 处理器适配器

<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
<?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:contex="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/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <!--自动扫描包让注解生效-->
    <contex:component-scan base-package="com.okyang.controller"/>
    <!--过滤静态资源-->
    <mvc:default-servlet-handler/>
    <!--自动注入处理映射器和处理适配器-->
    <mvc:annotation-driven/>
    <!--视图解析器-->
    <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>

 5、创建jsp文件夹及jsp页面

${msg}是为了接受controller传来的数据

 6、创建controller文件夹及Hellocontroller(注释内容很清晰)

package com.okyang.controller;

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

//自动注入到spring中
@Controller
//可写可不写  如果写了那么调用时候就是http://localhost:8080/hello/h1
//                       如果不写就是http:localhost:8080/h1    写了是为了有个子父类关系
@RequestMapping("/hello")
public class HelloController {
//    servlet请求
    @RequestMapping("/h1")
//    传入Model是代替了ModelAndView可以给前端页面传值
    public String hello(Model model){
//        封装数据
        model.addAttribute("msg", "hello,SpringMVC");
        //跳转到hello.jsp  因为之前有配置前后缀只需要写hello即可匹配到/WEB-INF/jsp/hello.jsp
        // <property name="prefix" value="/WEB-INF/jsp/"/>
        // <property name="suffix" value=".jsp"/>
        return "hello";//会被视图解析器处理
    }
}

7、配置tomcat开始运行

 

 

 

 然后apply

成功

 地址栏的东西是controller里面配置好的

 页面的内容是通过Model传过来的

 

 

 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- pqdy.cn 版权所有 赣ICP备2024042791号-6

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务