(13)Spring框架——AnnotationsSpringMVC

目录

 

一、项目目录

1、目录

2、jar包

二、描述

1、配置文件的描述和思路

2、类与配置文件的联动思路

三、项目实例

1、类

2、spring配置文件

3、前端控制器(web.xml)

4、jsp文件


一、项目目录

1、目录

2、jar包

二、描述

1、配置文件的描述和思路

1、第一个配置的是前端控制器配置文件(web.xml),主要设置是需要拦截的请求(这个请求是来自客户端,用户的请求。),DispatcherServlet拦截后交给HandleMapping处理器映射器处理。(

(1)有这个类处理后返回一个结果(生成处理器对象,处理器拦截器,返回给DispatcherServlet)

(2)这个结果再交给处理器适配器,适配器里面的程序员自己写的handleRequest()方法进行处理,

(3)最后返回给DispatcherServlet,再交给视图解析解析,

(4)解析后返回DispatcherServlet,再交给前端渲染,

(5)渲染后交给前端展示。)

2、类与配置文件的联动思路

(1)这个Controller层,就是在处理器适配器,的handler的编写权利交给程序员来处理业务逻辑的。(通俗的说就是,在这儿实现我们想实现的功能。)

3、总结

我们只用管前端控制器,Controller业务处理,是视图层展示。

三、项目实例

1、类

(1)FirstController.java

package com.stx.controller;

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


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@Controller //把该类添加一个标注,会自动加载成一个Bean。不用再xml文件里面配置了。简化了开发。项目启动时就会扫描该类。
@RequestMapping(value = "/hello")//标注一个加载路径,把方法提升到了类级别。
public class FirstController{
    /*
    * Spring MVC所支持的常见方法返回类型。
    * 1、ModelAndView
    * 2、Model
    * 3、Map
    * 4、View
    * 5、String
    * 6、void
    * 7、HttpEntity<?>或者ResponseEntity<?>
    * 8、Callable<?>
    * 9、DeferredResult<?>
    *1、 其中ModelAndView类型可以添加Model数据,并指定视图。
    * 2、String类型的返回值可以跳转视图,但不能携带数据。
    * 3、void类型主要在异步请求时使用,它只返回数据,而不会跳转视图。
    *
    * 因为在视图解析器中定义了视图文件的前后缀名,所以handleRequest()方法只需要返回视图名”first“即可,
    * 访问此方法时,系统会自动访问”WEB-INF/jsp/“路径下名称为first的jsp文件。
    * */
    @RequestMapping(value = "/firstController")
    public String handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Model model) throws Exception {
//      向模型对象中添加数据。
        model.addAttribute("msg","这是我的第一个 Spring MVC 程序");
//      返回视图
        return "first";
    }
}

2、spring配置文件

(1)springmvc-config.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:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://springframework.org/schema/beans/spring-beans-4.3.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-4.3.xsd">
    <!--
    1、首先定义一个名称为:/firstController的Bean。改Bean会将控制器类FirstController映射到/firstController请求中。
    (我的理解就是WEN浏览器访问的时候就能被访问到。因为他把FirstController映射到这个请求中了。)
    2、然后配置处理器映射器BeanNameUrlHandlerMapping  和  处理器适配器:SimpleControllerHandlerAdapter
        (1)、其中处理器映射器用于将处理器Bean中的name(即URL)进行处理器查找。
        (2)、处理器适配器用于完成对FirstController处理器中handleRequest()方法的调用。
    3、最后配置视图解析器。来解析结果。并将结果呈现给用户。
    (spring4以后就算不配置,也会自定使用默认完成。)



    -->
    <!--    指定需要扫描的包,注解开发
    xmlns:context="http://www.springframework.org/schema/context"
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-4.3.xsd
    -->
    <context:component-scan base-package="com.stx.controller"></context:component-scan>
<!--    配置视图解析器-->
   <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--       配置前缀-->
       <property name="prefix" value="/WEB-INF/jsp/"></property>
<!--       设置后缀-->
       <property name="suffix" value=".jsp"></property>
   </bean>
</beans>

3、前端控制器(web.xml)

(1)web.xml

<?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>
        <!--        3、配置前端过滤器-->
        <servlet-name>springmvc</servlet-name>
        <!--        4、进入前端控制器-->
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--        初始化时加载配置文件。-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
<!--            要在src下创建才能被读取到-->
            <param-value>classpath:springmvc-config.xml</param-value>
        </init-param>
        <!--        表示在容器启动时立即加载Servlet-->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <!--        2、定义的别名-->
        <servlet-name>springmvc</servlet-name>
        <!--        1、浏览器访问地址-->
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

4、jsp文件

(1)first.jsp

<%--
  Created by IntelliJ IDEA.
  User: TAN
  Date: 2021/3/7
  Time: 10:16
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>入门程序</title>
</head>
<body>
${msg}
</body>
</html>

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值