request 访问路径地址

本文介绍了如何使用Java的HttpServletRequest对象来获取HTTP请求中的关键信息,包括域名、端口号、项目根路径、请求参数等。

获取网站的域名,如果是在本地的话就是localhost

request.getServerName();

结果:   /WebDemo.com


获取端口号

request.getServerPort()  和  request.getLocalPort() 

区别:

1、 getLocalPort获取的是应用服务器的端口,即该应用的实际端口,无论请求经过了多少代理,转发,getLocalPort只取最后的端口,也就是应用的端口。

2、getServerPort获取的是URL请求的端口,比如你的请求时127.0.0.1:8080,应用服务器的端口是80,那么getServerPort得到的端口是8080。而getLocalPort得到的是80。


获取web项目的根路径,就是webRoot。

request.getContextPath()

绝对路径-以Web站点根目录为参考基础的目录路径。之所以称为绝对,意指当所有网页引用同一个文件时,所使用的路径都是一样的。
相对路径-以引用文件之网页所在位置为参考基础,而建立出的目录路径。因此,当保存于不同目录的网页引用同一个文件时,所使用的路径将不相同,故称之为相对。


获取url后面的参数串

 request.getQueryString()

结果:param1=param1&param2=param2


获取请求的IP地址

 request.getRemoteAddr();

结果:127.0.0.1


获取请求的链接的相对地址

 request.getServletPath();

结果:/index.jsp


获取请求的url链接

request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath();

结果:http://localhost:8683/WebDemo



### 如何在 Spring MVC 中设置 'saveUser' 的 URL 路径 在 Spring MVC 中,可以使用 `@RequestMapping` 注解或其快捷组合注解(如 `@PostMapping` 或 `@PutMapping`)来定义与 `saveUser` 相关的 URL 访问路径。以下是一个示例,展示如何通过 POST 请求映射 `saveUser` 方法。 ```java @RestController @RequestMapping("/users") // 定义基础路径 public class UserController { @PostMapping("/saveUser") // 定义具体路径和请求方法 public ResponseEntity<String> saveUser(@RequestBody User user) { // 假设这里调用服务层保存用户信息 // userService.save(user); return ResponseEntity.ok("User saved successfully"); } } ``` 上述代码中,`@PostMapping("/saveUser")` 将 `saveUser` 方法绑定到 `/users/saveUser` 路径,并且仅处理 HTTP POST 请求[^1]。如果需要支持其他类型的请求(如 PUT 或 PATCH),可以选择相应的注解,例如 `@PutMapping` 或 `@PatchMapping`。 此外,如果希望将 `saveUser` 方法绑定到一个包含路径变量的 URL,可以按照以下方式实现: ```java @PostMapping("/saveUser/{userId}") // 包含路径变量 public ResponseEntity<String> saveUser(@PathVariable("userId") Long userId, @RequestBody User user) { // 假设这里根据 userId 更新用户信息 // userService.updateUser(userId, user); return ResponseEntity.ok("User updated successfully"); } ``` 在此示例中,`{userId}` 是路径变量,可以通过 `@PathVariable` 注解将其值注入到方法参数中[^1]。 对于更复杂的场景,例如结合模型数据绑定,可以使用 `@ModelAttribute` 注解预填充模型属性[^3]。以下是一个综合示例: ```java @Controller @RequestMapping("/users") public class UserController { @PostMapping("/saveUser") public String saveUser(@ModelAttribute("user") User user, BindingResult result, Model model) { if (result.hasErrors()) { return "userForm"; // 如果有验证错误,返回表单页面 } // 假设这里调用服务层保存用户信息 // userService.save(user); model.addAttribute("message", "User saved successfully"); return "successPage"; // 跳转到成功页面 } } ``` 此示例中,`@ModelAttribute` 用于将表单提交的数据绑定到 `User` 对象,并在验证失败时重新显示表单页面。 ### 注意事项 - 如果需要支持多种 HTTP 方法,可以使用 `@RequestMapping` 并指定 `method` 属性,例如 `@RequestMapping(value = "/saveUser", method = {RequestMethod.POST, RequestMethod.PUT})`。 - 确保基础路径(如 `/users`)与具体路径(如 `/saveUser`)的组合符合项目的设计规范。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值