Spring MVC

Spring MVC

知识点总览:
在这里插入图片描述

一 Spring mvc三大角色关系图

在这里插入图片描述

二 Spring mvc 请求处理流程图

在这里插入图片描述

三 Spring mvc 体系结构

在这里插入图片描述
注意:

1 @Controller

用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping 注解。@Controller 只是定义了一个控制器类,而使用@RequestMapping 注解的方法才是真正处理请求的处理器.

2 @RequestParam(value = “name”,required =false )

    @RequestMapping("hello.form")
    public String hello(@RequestParam(value = "name",required =false ) String name){     //  //value  参数名   required参数是否必要
        System.out.println(name);
        return "index";
    }

value 参数名 required参数是否必要

**

3 @RequestMapping(value ="/hello.form",method=RequestMethod.GET,params =“name”)

**

    @RequestMapping(value ="/hello.form",method=RequestMethod.GET,params ="name")
//     value请求url method请求方法  params请求参数
    public String hello(String name){
     System.out.println(name);
        return "index";
    }

value请求url method请求方法 params请求参数

4 model.addAttribute("String,“zjw”); //k值 string 可以省略 默认参数使用对象类型作为key

特别注意:el表达式中s小写

    @RequestMapping("/hello.form")
    public String welcome(Model model){
        model.addAttribute("name1","吴彦祖");
        model.addAttribute("String,"zjw");   //k值 string 可以省略  默认参数使用对象类型作为key el表达式中s小写
        return "index";
    }

k值 string 可以省略 默认参数使用对象类型作为key
注意: el表达式中s小写

代码实例:
1创建WEB工程,引入开发的jar包

配置核心的控制器(配置DispatcherServlet)
在web.xml配置文件中核心控制器DispatcherServlet

<?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_3_1.xsd"
         version="3.1">

    <display-name>SpringMVCdemo</display-name>
    <welcome-file-list>
        <welcome-file> index.jsp</welcome-file>
    </welcome-file-list>

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:springmvc.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <servlet>

        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>




    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>*.form</url-pattern>
    </servlet-mapping>
</web-app>

编写springmvc.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:tx="http://www.springframework.org/schema/tx"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       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/tx
        http://www.springframework.org/schema/tx/spring-tx.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-context.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd



">
    <!--自动扫描上下文-->
    <context:component-scan base-package="cn.zjw.*"></context:component-scan>
    <mvc:annotation-driven/>
    <mvc:default-servlet-handler/>

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

index.jsp

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2021/3/17
  Time: 11:23
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
   长得帅有什么错!
  ${name}
  ${name1}
  ${string}
   ${pwd}

  </body>
</html>

HelloController控制器类

package cn.zjw.domain;

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

import java.util.Map;
import java.util.Objects;

//    @Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping 注解。@Controller 只是定义了一个控制器类,而使用@RequestMapping 注解的方法才是真正处理请求的处理器

@Controller //
public class HelloController {
//    view视图=======》控制器


//    @RequestMapping("/hello.form")   //请求找到hello
//    public  String hello(){
//        System.out.println("Hello");    //输出hello
//        return "index";  //跳转到index.jsp页面中   默认转发不是重定向
//    }

//    @RequestMapping("/hello.form")
//    public  String hello(String name){       //传参就是返回参数值 例如?name=11 返回11 不写后面的则返回null
//        System.out.println(name);
//        return "index";
//    }

//    @RequestMapping("/hello.form")
//    public String hello(@RequestParam String name){  // //没有传参为400  传参才能显示页面
//        System.out.println(name);
//        return "index";
//    }

//    @RequestMapping("hello.form")
//    public String hello(@RequestParam(value = "name",required =false ) String name){     //  //value  参数名   required参数是否必要
//        System.out.println(name);
//        return "index";
//    }


//      不传参为400
//    @RequestMapping(value ="/hello.form",method=RequestMethod.GET,params ="name")
//  //   value请求url method请求方法  params请求参数
//    public String hello(String name){
//        System.out.println(name);
//        return "index";
//    }






//    contorller控制器=======>view视图   三种

//方法一 MapAndView
//    @RequestMapping("/hello.form")
//    public ModelAndView welcome(){
//        ModelAndView mv=new ModelAndView();
//        mv.addObject("name","帅有什么错");//添加模型数据
//        mv.setViewName("index");//设置跳转视图
//        return mv;
//    }

//方法二 model类型
//    @RequestMapping("/hello.form")
//    public String welcome(Model model){
//        model.addAttribute("name1","吴彦祖");
//        model.addAttribute("String,"zjw");   //k值 string 可以省略  默认参数使用对象类型作为key el表达式中s小写
//        return "index";
//    }

//方法三 map 类型
    @RequestMapping("/hello.form")
    public String welcome(Map<String,Object> map){
        map.put("pwd","6666666");      // 参数pwd 值6666666
        return "index";
    }



}

运行结果
在这里插入图片描述
网址后加?name=”value“ 返回 value值

在这里插入图片描述
可以用EL表达式获取参数值

weixin063传染病防控宣传微信小程序系统的设计与实现+springboot后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值