SSM框架实战详细教程(五)Spring MVC使用

本文介绍了SpringMVC如何在Servlet基础上提供更便捷的Web开发体验。通过示例代码展示了SpringMVC如何实现方法级别的URL绑定、ModelAndView处理、重定向、参数接收等功能。对比Servlet,SpringMVC简化了请求处理,提供了类型转换和JavaBean参数支持,提高了开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        要学习Spring MVC,必须清楚Servlet的作用,才能对比认识到Spring MVC的作用。因为Spring MVC是封装了Servlet,对外提供一套简化的接口供开发者使用。

Servlet主要作用:

  • 1.提供对外的Web访问接口,可以通过URL访问该Servlet类
  • 2.转发
  • 3.重定向
  • 4.接受参数

        那Spring MVC也要解决以上方法,并且提供更简单的方式:

Spring MVC要实现的功能:

  • 1.提供方法级别的URL绑定
  • 2.ModelAndView
  • 3.redirect:重定向的URL
  • 4.方法形式参数的方式接受参数
    前台发来的参数名和方法形式参数名保持一致,即可接收到发来的参数值。
    可以是一个,可以是多个,也可以是JavaBean的参数形式,而且能够做到类型的直接转换
package controller;

import entity.Student;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class TestController {
   //方法绑定URL
    @RequestMapping("/test1")
    public void test1() {
        System.out.println("hello!");
    }

    //返回值表示要转发的视图名
    @RequestMapping("/test2")
    public String test2() {
        return "test2";
    }

    //转发到页面,并且将数据放到了reqeust作用域,Spring MVC隐藏了request概念,它提供了一个ModelAndView的类
    @RequestMapping("/test3")
    public ModelAndView test3() {
        String name = "Tom";
        ModelAndView mv = new ModelAndView("test3");
        mv.addObject("name", name);
        return mv;
    }
    //重定向
    @RequestMapping("/test4")
    public String test4() {
        return "redirect:test1.do";
    }
    //接受前台传来的同名参数
    @RequestMapping("/test5")
    public void test5(String type) {
        System.out.println(type);
    }
    //接受前台传来的不同名参数
    @RequestMapping("/test6")
    public void test6(@RequestParam(name="type") String t) {
        System.out.println(t);
    }
    //接受前台传来的多个参数
    @RequestMapping("/test7")
    public void test7(String name,String gender) {
        System.out.println(name+" "+gender);
    }
    //接受前台传来的参数,并自动实现类型转换
    @RequestMapping("/test8")
    public void test8(String name,String gender,int age) {
        System.out.println(name+" "+gender+" "+age);
    }
   //接受前台传来的参数,并将值封装到JavaBean对应的同名属性中
    @RequestMapping("/test9")
    public void test9(Student stu) {
        System.out.println(stu.getName()+" "+stu.getGender()+" "+stu.getAge());
    }
}

以上代码,可以通过URL自行测试,如:

/testmvc_war_exploded/test9.do?name=Tom&gender=%E7%94%B7&age=20

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值