@RequestMapping测试各种访问方式

Spring MVC 3 动态路由与静态资源访问问题解决

这里访问WEB-INF目录下的页面,这个还不知道有没有类似struts2那样的通配符来可以访问不同的action,不同的method,不同的页面,用户则很爽,有的话求告知,而且我还有一个问题就是配置了如下的配置,但却访问不到静态资源,望解答!!-----访问路径:http://localhost:8080/Springmvc3/images/4.jpg


好了,其他不说了,看如下:

配置视图解析器



 

package com.tgb.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.tgb.entity.User;

@Controller
@RequestMapping("/test")
//这里也可以写成@RequestMapping("/test.do")也可以不写,因为在web.xml中配置了*.do
public class TestController {
	
	@RequestMapping(params="method=addUser")
	public String addUser(User user){
		System.out.println("dddddddddd");
		return "success";
	}
	
	@RequestMapping(value="/test0")//默认为get方式
	public String test0(){
		System.out.println("访问路径:test/test0.do");
		return "success";
	}

	@RequestMapping(value="/test1",method=RequestMethod.POST)
	public String test1(String sex){
		System.out.println(sex);
		System.out.println("访问路径为:test/test1.do,而且是get方式______"+sex);
		return "success";
	}
	
	@RequestMapping(value="/test2",method=RequestMethod.GET,params="param=test2")
	public String test2(){
		System.out.println("访问路径为:test/test1.do?param=test2,而且是get方式");
		return "success";
	}
	
	//REST风格的参数
	@RequestMapping(value="/test3/{name}")
	public String test3(@PathVariable String name){//形参和接收参数的名称一致
		System.out.println(name);
		System.out.println("访问路径为:test/test3/zhangsan.do");
		System.out.println("看这里的访问路径,直接就将‘zhangsan’这个参数值就传递给了@RequestMapping(value=\"/test3/{name}\")中的name参数名,可随意命名参数名称,");
		return "success";
	}
	
	@RequestMapping(value="/test5/{name}")
	public String test5(@PathVariable("name")String rename){//形参和接收参数的名称不一致
		System.out.println(rename);
		System.out.println("访问路径为:test/test5/zhangsan.do");
		System.out.println("看这里的访问路径,直接就将‘zhangsan’这个参数值就传递给了@RequestMapping(value=\"/test5/{name}\")中的name参数名,可随意命名参数名称," +
				"然后后面的@PathVariable(\"name\")中的name名称要和上面的那个name保持一致,然后把此name绑定到形参rename");
		return "success";
	}
	
	@RequestMapping(value="/test4/{sex}/{sno}")
	//这里我写成@RequestMapping(value="test4/{sex}/{sno}")也是可以滴
	public String test4(@PathVariable("sex")String sex,@PathVariable("sno")String sno){
		System.out.println(sex);
		System.err.println(sno);
		System.out.println("访问路径:test/test4/male/10506.do");
		return "success";
	}
	
	//支持正则
	@RequestMapping(value="/test6/{textualPart:[a-z-]+}.{numericPart:[\\d]+}")
	public String test6(@PathVariable String textualPart,@PathVariable String numericPart){
		System.out.println(textualPart);//输出sometxt
		System.out.println(numericPart);//输出123
		System.out.println("访问路径:test/test6/sometxt.123.do");
		return "success";
	}
	
	//访问WEB-INF下的views文件中的不同目录的页面,这里访问的是user目录下的,不知道其他有什么好的办法没
	@RequestMapping(value="/test7")
	public String test7(){
		System.out.println("访问路径:test/test7.do");
		return "user/success";
	}
	
}


 


 

在 Spring 框架中,`@RequestMapping` 是一个核心注解,用于将 HTTP 请求映射到特定的类或方法上。它支持多种 HTTP 方法(如 GET、POST、PUT、DELETE 等),并允许通过 URL 路径、请求参数、请求头等条件进行更细粒度的控制[^1]。 ### 使用 Postman 测试带有 `@RequestMapping` 注解的请求 Postman 是一个功能强大的 API 开发和测试工具,可以用于模拟各种 HTTP 请求来测试后端接口。以下是如何使用 Postman 发送带有 `@RequestMapping` 注解的请求。 #### 1. 基本请求配置 假设有一个 Spring 控制器方法如下: ```java @RestController @RequestMapping("/api") public class MyController { @RequestMapping(value = "/hello", method = RequestMethod.GET) public String sayHello() { return "Hello, World!"; } } ``` 在 Postman 中,可以通过以下步骤测试该接口: - **URL 地址**:`http://localhost:8080/api/hello` - **HTTP 方法**:选择 GET - **发送请求**:点击 "Send" 按钮,应该会收到返回的 "Hello, World!" 字符串 该方法通过 `@RequestMapping` 指定了路径 `/hello` 和请求方式为 GET [^1]。 #### 2. 指定请求方法类型 `@RequestMapping` 可以通过 `method` 属性指定具体的 HTTP 方法。例如,如果方法仅接受 POST 请求: ```java @RequestMapping(value = "/submit", method = RequestMethod.POST) public String submitData(@RequestParam String name) { return "Received: " + name; } ``` 在 Postman 中测试时,需要: - **URL 地址**:`http://localhost:8080/api/submit` - **HTTP 方法**:选择 POST - **传参方式**:可以在 "Params" 标签下添加 `name=JohnDoe` 或者在 "Body" 中选择 `x-www-form-urlencoded` 并填写键值对 #### 3. 使用 `@RequestMapping` 修饰类 `@RequestMapping` 可以修饰类,从而为该类下的所有方法提供统一的路径前缀。例如: ```java @Controller @RequestMapping("/user") public class UserController { @RequestMapping("/info") public String getUserInfo() { return "User Info"; } } ``` 对应的访问路径为 `http://localhost:8080/user/info` [^2]。 #### 4. 使用 Ant 风格路径匹配 Spring 支持 Ant 风格的 URL 匹配规则,例如: ```java @RequestMapping("/users/*/details") public String userDetails() { return "User Details"; } ``` 此规则可以匹配 `/users/123/details`、`/users/abc/details` 等路径[^2]。 #### 5. 使用 `@PathVariable` 获取 URL 参数 可以通过 `@PathVariable` 注解提取 URL 中的动态参数: ```java @RequestMapping("/users/{id}") public String getUserById(@PathVariable String id) { return "User ID: " + id; } ``` 在 Postman 中访问 `http://localhost:8080/users/123`,将返回 `User ID: 123` [^2]。 #### 6. 设置请求头和参数过滤 `@RequestMapping` 还可以通过 `params` 和 `headers` 属性限制请求的参数和头部信息: ```java @RequestMapping(value = "/search", params = "type=user", headers = "Accept=application/json") public String searchUser() { return "Searching User"; } ``` 在 Postman 中,需要添加请求参数 `type=user` 和请求头 `Accept: application/json` 才能成功访问[^2]。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值