SpringMvc上课笔记

  1. 在springmvc.xml中配置映射器和适配器的声明
<mvc:annotation-driven></mvc:annotation-driven>

或者

	<!-- 配置处理器映射器	 -->
	<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean>
	<!-- 配置处理器适配器 -->
	<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean>

  1. 创建类,并使用注解声明该类为控制器 并将方法与请求做好映射
package com.mhys.demo;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
 * 
 * @author Lvan
 * @Controller注解 声明该类为一个控制器 可以理解为@Webservlet 可以代替路由(请求和服务的对应的关系)
 * @RequestMapping() 请求映射 将对应的请求映射到该方法内
 */
@Controller
public class Test {
	//访问的接口名字 是hello.后缀 比如hello.do接口 就会被转发至sayHello方法
	@RequestMapping("/hello")
	public void sayHello() {
		System.out.println("===========MVC程序的sayHello方法被调用了========");
	}
	//spring mvc 控制器中你的代码变得更加简洁   每个方法可以有对应的接口 
}


测试:请求中输入hello.do @RequestMapping(“/hello”) 标注的方法会被执行 在这里插入图片描述

RequestMapping注解

Spring MVC通过@RequestMapping注解将url请求与业务方法进行映射。在Spring MVC框架中,@RequestMapping注解的使用频率很高,它可以添加在处理器类上以及方法上,在类定义处添加@RequestMapping注解,相当于多了一层访问路径。
@RequestMapping注解有三个常用的属性:
value:指定url请求的实际地址,是@RequestMapping的默认值,可省略不写。
method:指定请求的类型,get、post、put和delete等,常用get和post类型请求。
params:指定请求中必须包含某些参数值,否则无法调用该方法。

@Controller
@RequestMapping("/test")
public class Test {
	//访问的接口名字 是hello.后缀 比如hello.do接口 就会被转发至sayHello方法
	@RequestMapping("/hello")
	public void sayHello() {
		System.out.println("===========MVC程序的sayHello方法被调用了========");
	}
}

上述代码中访问的地址就变成了
http://localhost:8080/demo_mvc_2071/test/hello.do
先访问类中声明的地址 再才是方法对应的地址名字

指定方法只能由get请求访问

用 method = RequestMethod.GET
@RequestParam(“id”)String id 表示 请求该方法时必须传递id值,如果不传递,则无法访问该方法
ModelAndView 定义视图,可以将视图返回到浏览器

@RequestMapping(value="/hi",method = RequestMethod.GET)
	public ModelAndView sayHi(@RequestParam("id")String id) {
		ModelAndView view=new ModelAndView("../index.jsp");
		System.out.println("====================Hi=========================");
		return view; //返回一个页面 index.jsp 注意 不是直接通过转发 不是request.getRequestDispatcher().forward()
	}

浏览器直接访问该路径接口 如

http://localhost:8080/demo_mvc_2071/test/hi.do?id=1  //id不能省略 省略了就进不去对应的方法

指定方法只能由post请求访问

method = RequestMethod.POST 指明该方法的请求方式为post 其他请求方式都不能访问
@RequestParam(“id”)String id,@RequestParam(“name”)String name 表示 该方法必须传递对应的两个参数才能正确访问 少了或者参数名错了都不行的。

@RequestMapping(value="/hipost",method = RequestMethod.POST)
	public ModelAndView sayHiPost(@RequestParam("id")String id,@RequestParam("name")String name) {
		ModelAndView view=new ModelAndView("../index.jsp");
		System.out.println("====================HiPost=========================");
		//request.getparamter("id")
		System.out.println(id);
		System.out.println(name);
		return view; //返回一个页面 index.jsp 注意 不是直接通过转发 不是request.getRequestDispatcher().forward()
	}

可以使用post方式或者编写form表单来进行提交测试。
地址如:http://localhost:8080/demo_mvc_2071/test/hipost.do?id=20&name=Lvan4

@RequestMapping 简化了路由配置,可以便捷地指定请求的方式,封装了对请求参数的处理。
 不需要通过request获取请求参数,而是直接通过形参取值

例子:模仿注册
接口编写:

	//例子:模仿注册功能的实现
	@RequestMapping(value="/reg",method=RequestMethod.POST)
	public ModelAndView register(@RequestParam("name")String name,
			@RequestParam("age")String age,
			@RequestParam("gender")String gender) {
		ModelAndView model=new ModelAndView("/reg.jsp");
		System.out.println("注册成功!姓名:"+name+" 年龄:"+age+" 性别:"+gender);
		model.addObject("msg", "注册成功:姓名为:"+name); //往视图里面传值 setAttribute功能类似
		return model;
	}

注册页面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值