SpringMVC笔记

4 篇文章 0 订阅
3 篇文章 0 订阅

注解实现简单的开发

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的支持

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNTAzMTgz,size_16,color_FFFFFF,t_70

 20210807164220804.png

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

20210807164358130.png

 死代码就是注册了一个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的配置

20210807165644700.png

 

配置了自动扫描注解

过滤一些静态资源让它不去经过视图解析器去处理例如:.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页面

20210807170753945.png

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

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNTAzMTgz,size_16,color_FFFFFF,t_70

 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开始运行

20210807171040750.png

 

 watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNTAzMTgz,size_16,color_FFFFFF,t_70

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNTAzMTgz,size_16,color_FFFFFF,t_70

 watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNTAzMTgz,size_16,color_FFFFFF,t_70

 然后apply

20210807171440231.png

成功

20210807171600752.png

 地址栏的东西是controller里面配置好的watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxNTAzMTgz,size_16,color_FFFFFF,t_70

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

20210807171725659.png

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值