本网站(662p.com)打包出售,且带程序代码数据,662p.com域名,程序内核采用TP框架开发,需要联系扣扣:2360248666 /wx:lianweikj
精品域名一口价出售:1y1m.com(350元) ,6b7b.com(400元) , 5k5j.com(380元) , yayj.com(1800元), jiongzhun.com(1000元) , niuzen.com(2800元) , zennei.com(5000元)
需要联系扣扣:2360248666 /wx:lianweikj
用注解开发SpringMVC
talkchan · 411浏览 · 发布于2021-02-23 +关注

Spring2.5以后,用注解开发SpringMVC的功能十分强大,注解也是SpringMVC的精髓。在实际开发中,都会使用注解来实现。
这让SpringMVC开发工作量最小化,开发者只要专注于业务逻辑及页面的编写实现。

1、web.xml文件

配置DispatcherServlet,及相应的servlet-mapping。
这个文件除了servlet-name,和springmvc的配置文件名,其余都是固定不变,可以复用的。

<?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">
    <!--注册DispatcherServlet-->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--关联一个springmvc的配置文件,命名规则为:【servlet-name】-servlet.xml-->
        <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>

    <!--/ 匹配所有的请求:不包括.jsp-->
    <!--/* 匹配所有的请求:包括.jsp-->
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping></web-app>

2、Spring bean配置文件

沿用官方命名规则,此处用springmvc-servlet.xml。这个文件除了要扫描的包路径,其余都是固定不变,可以直接复用的。

  • 开启注解

    • 新增context约束

    • 开启自动扫描包

  • 静态资源过滤

    • 使用默认的default-servlet-handler

    • 让Spring MVC不处理静态资源 .css .js .html .mp3 .mp4

  • 支持mvc注解驱动

    • 在spring中一般采用@RequestMapping注解来完成映射关系
      要想使@RequestMapping注解生效
      必须向上下文中注册DefaultAnnotationHandlerMapping
      和一个AnnotationMethodHandlerAdapter实例
      这两个实例分别在类级别和方法级别处理。
      而annotation-driven配置帮助我们自动完成上述两个实例的注入。

  • 视图解析器

    • 默认使用InternalResourceViewResolver

    • 配置.jsp文件全路径文件名的前缀、后缀。

<?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: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/context
       http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <!--自动扫描包,让指定包下的注解生效,由IOC容器统一管理-->
    <context:component-scan base-package="controller"/>

    <!--让Spring MVC不处理静态资源 .css .js .html .mp3 .mp4-->
    <mvc:default-servlet-handler/>

    <!--支持mvc注解驱动
       在spring中一般采用@RequestMapping注解来完成映射关系
       要想使@RequestMapping注解生效
       必须向上下文中注册DefaultAnnotationHandlerMapping
       和一个AnnotationMethodHandlerAdapter实例
       这两个实例分别在类级别和方法级别处理。
       而annotation-driven配置帮助我们自动完成上述两个实例的注入。-->
    <mvc:annotation-driven/>

    <!--视图解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          id="internalResourceViewResolver">
        <!--前缀-->
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <!--后缀-->
        <property name="suffix" value=".jsp"/>
    </bean></beans>

3、Controller类编写

使用注解开发SpringMVC,99%的工作量都在controller类编写。SpringMVC Annotation 使开发量最小化。

Controller负责解析用户请求,进行业务处理,并返回一个模型。

Controller通过实现接口和注解定义两种方法实现。

实现了Controller接口的类就是控制器,这是较老的方法。

一个控制器类只能有一个方法。多个方法要写多个controller。

推荐用注解定义实现。

  • @Controller

    • 修饰类,保证该类能被Spring自动扫描到,自动装配为Spring bean

  • @RequestMapping

    请求地址,将controller类或其特定方法映射到指定前端视图

    • 修饰类,表示该类所有方法的响应路径以该地址作为父路径。

    • 修饰方法:表示该方法响应路径,方法响应到指定前端视图。

  • return

    • 返回值:视图jsp文件名

    • @Controller注解的类中,若方法返回值对应的jsp文件名存在,则会被视图解析器解析

@Controller //修饰类,保证该类能被Spring自动扫描到,自动装配为Spring bean@RequestMapping("controller") //修饰类,表示该类所有方法的响应路径以该地址作为父路径public class MyController {    //完整url:http://localhost:8080/(工程名)/controller/hello
    @RequestMapping("/hello") //修饰方法:表示该方法响应路径,方法响应到指定前端视图。
    public String sayHello(Model model){
        model.addAttribute("msg", "Hello!SpringMVC Annotation!");        //返回值:视图jsp文件名
        //@Controller注解的类中,若方法返回值对应的jsp文件名存在,则会被视图解析器解析
        return "hello";
    }
}

4、编写hello.jsp页面

放在/WEB-INF/jsp/路径下

<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head>
    <title>Zuka</title></head><body>${msg}</body></html>

5、测试

url:http://localhost:8080/springmvc_annotation_war_exploded/controller/hello


相关推荐

PHP实现部分字符隐藏

沙雕mars · 1312浏览 · 2019-04-28 09:47:56
Java中ArrayList和LinkedList区别

kenrry1992 · 896浏览 · 2019-05-08 21:14:54
Tomcat 下载及安装配置

manongba · 957浏览 · 2019-05-13 21:03:56
JAVA变量介绍

manongba · 953浏览 · 2019-05-13 21:05:52
什么是SpringBoot

iamitnan · 1077浏览 · 2019-05-14 22:20:36
加载中

0评论

评论
大家好,我是一名专注技术开发的技术屌丝,有什么问题可以互相交流,一起学习进步,谢谢。
分类专栏
小鸟云服务器
扫码进入手机网页