“http://localhost/app/hello”和“http://localhost/app/hello/”有什么区别?

Hao

我写了一个基于 Spring MVC 的控制器。

@Controller
@RequestMapping("/hello")
public class JsonController {

    @RequestMapping(value="/",method=RequestMethod.GET)
    @ResponseBody
    public Person service(){
        Person person=new Person();
        person.setId(3);
        person.setName("666");
        return person;
}

当我访问“ http://localhost/app/hello ”时,我得到 404;当我访问“ http://localhost/app/hello/ ”时,我得到 202 OK。http://localhost/app/hello ”和“ http://localhost/app/hello/ ”有什么区别

布山大学

看看你的控制器代码

@RequestMapping("/hello")
public class JsonController

你的控制器有 url 映射 -> "/hello"

和 action(service) url 映射是“/”

@RequestMapping(value="/",method=RequestMethod.GET)
    @ResponseBody
    public Person service()

现在,每当我们为控制器提供映射时,控制器的每个动作都需要控制器 URL 路径作为前缀(如果 URL 映射在控制器中定义),正如您提到的控制器映射为“/hello”,动作服务url 映射为“ /"所以当您需要访问服务操作时 -> 您需要控制器的基本路径(如果请求 URL 映射在控制器中定义)+ 操作 URL 映射

-> "/hello" + "/"   => "/hello/"

所以在访问 URL“ http://localhost/app/hello/的情况下,它很容易找到service操作并返回响应

现在,当您尝试访问 URL“ http://localhost/app/hello ”时,URL 映射搜索此映射并在您的控制器映射中找到它(因为它在您的情况下定义)但没有为它定义任何操作,为什么正在获得 404。

您可以定义它的默认操作,例如:

@RequestMapping(method=RequestMethod.GET)
    public Person defaultAction() { 
----your code
}

所以现在如果你点击“ http://localhost/app/hello ”,你将返回有效的响应而不是 404

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

$ http和$ q有什么区别?

HTTP和REST有什么区别?

ssh和http有什么区别?

FTP 和 HTTP 有什么区别?

HTTP 1.1和HTTP 2.0有什么区别?

HTTP参数和HTTP标头有什么区别?

HTTP中的POST和PUT有什么区别?

HTTP会话和Web会话之间有什么区别?

AngularJS $http 成功和然后有什么区别

HTTP 标头的“资源”和“方法”有什么区别?

POST和PUT HTTP REQUEST有什么区别?

httpS和http / 2有什么区别?

HTTP 301和308状态代码有什么区别?

http模块和express模块有什么区别?

NodeJS http和https模块之间有什么区别?

HTTP 408和504错误有什么区别?

CakePHP中的http post和Redirect有什么区别

HTTP / 1.1管道传输和HTTP / 2复用之间有什么区别?

网址中的http:// domain / path和http:// domain / path /有什么区别

什么是www,www和普通的http页面有什么区别?

apache HttpClient API中的setConnectionTimeout,setSoTimeout和“ http.connection-manager.timeout”有什么区别

Apache HTTP Client 4.3中的BasicHttpRequest和HttpGet,HttpPost等之间有什么区别?

Microsoft.AspNet.Http.HttpContext中的ApplicationServices和RequestServices有什么区别?

“ Request.newMeRequest”和“ new http Request(”)有什么区别

robots.router 和robot.http 有什么区别?

Akka-http中的拒绝和异常有什么区别

node.js中的request和http模块之间有什么区别?

golang`http.Request`的`Host`和`URL.Host`有什么区别?

PHP中的HTTP_HOST和SERVER_NAME有什么区别?