当前位置: 首页 > wzjs >正文

h5响应式网站网站运维

h5响应式网站,网站运维,爱凡客,怎么做网页反向链接1.RequestMapping RequestMapping是路由映射:当用户访问URL时,用于将用户的请求对应到某个类的某个方法; RequestMapping可以作用于类,也可以作用于方法。以如下代码为例: RequestMappping作用于类Blog和方法hello()&a…

1.@RequestMapping

@RequestMapping是路由映射:当用户访问URL时,用于将用户的请求对应到某个类的某个方法;

@RequestMapping可以作用于类,也可以作用于方法。以如下代码为例:

@RequestMappping作用于类Blog和方法hello(),当用户访问URL"…/blog/hello"时,框架就会将用户请求对应到Blog类的hello()方法。

在本地电脑进行测试,使用浏览器访问“127.0.0.1:8080/blog/hello”可以看到浏览器成功显示"hello world":

也可以使@RequestMapping单独作用于方法,以如下代码为例:

现在@RequestMapping单独作用于hello(),用户访问URL"/hello",框架就会将用户请求直接对应到hello()方法。

在本地电脑进行测试,使用浏览器访问"127.0.0.1:8080/hello",浏览器也能成功显示"hello world":

同时,@RequestMapping支持多个HTTP协议的方法,如GET,POST,PUT,DELETE等,以满足不同业务场景的需求。

2.@RequestParam

@RequestParam是后端参数映射:接收到HTTP请求后,框架通过@RequestParam中的参数名称找到HTTP请求中的参数,并赋值给后端定义的参数。@RequestParam常用于接收GET请求中的查询字符串中的参数,以及POST请求body中form表单中的参数。

@RequestParam有三个功能:

1.从HTTP请求中获取到指定名称的参数后,可以赋值给后端定义的参数,后端定义的参数可以是不同的名字,以如下代码为例:

框架接收到HTTP的请求后,会从请求中寻找名字为"name"的参数,找到参数后,并将其赋值给参数"param"。在HTTP请求中,这个参数名是"name",后端可以定义不同名称的变量"param"接收该参数值。使用postman构造HTTP请求并接收响应,可以看到参数"name"已经成功赋值给"param",如下:

2.@RequestParam可以设置参数"required"为"false",即使后端没有接收到参数,也不会报错。如果不设置"required"为"false",并且HTTP请求中没有找到要找的参数,那么服务器就会报错,还是以上面的代码为例,使用postman构造不带"name"参数的HTTP请求,结果如下:

HTTP请求中没有携带参数"name",服务器的代码中又强制接收"name",服务器没有在请求中找到这个参数,因此返回错误码400,表示请求错误。

设置@RequestParam的参数"required"为"false",服务器的其它代码不变以及使用相同的HTTP请求,结果如下:

设置"required"为"false",表示参数"name"不是必需的,因此即使服务器没有在请求中找到这个参数,也没有报错,只是会将后端定义的参数设置为null。

@RequestParam支持基本数据类型传参,也可以支持引用类型传参,因此传参也可以传一个对象。

3.@RequestParam可以帮助构造。如果后端代码定义接收参数的类型为接口,不使用@RequestParam接收。接收到HTTP请求后,会提示“无构造方法”类型的错误。以如下代码为例:

使用postman构造HTTP请求,请求中带一个数组参数"list",服务器接收到请求后,提示错误,如下:

查看错误日志,发现提示错误:"java.lang.IllegalStateException: No primary or single unique constructor found for interface java.util.List",意思是List接口中没有构造方法,无法完成构造。而@RequestParam可以帮助完成构造,增加该注解并再次使用postman发送该请求,结果如下:

可以看到,虽然List没有构造方法进行实例化,但是@RequestParam帮助完成了构造,正确接收到HTTP请求中的数据。

3.@RequestBody

@RequestBody常用于接收HTTP请求中body中的json类型的数据,并映射到后端定义的参数。以如下代码为例:

使用postman构造POST请求,body中携带json格式的数据,使用@RequestBody修饰参数"student","student"中的属性接收json数据中相应的值,如下:

注意:json中的"name","age","id"和"student"中的属性是对应的,这些值都可以被成功接收。

4.@PathVariable

@PathVariable用于获取URL路径中的参数。这个注解需要结合@RequestMapping使用,以如下代码为例:

使用postman构造请求,URL路径中带有数字"123",表示"articleId","articleId"能够被成功映射给参数"id",测试结果如下:

注意:使用@PathVariable时,括号中的参数名必须和@RequestMapping中花括号括起来的参数名相同。当需要获取URL路径中的多个参数,每个参数都需要使用@PathVariable修饰。

5.@RequestPart

@RequestPart用于上传文件,并将图片映射到后端的文件对象。以如下代码为例:

使用postman构造HTTP请求,上传一张图片,服务器接收到请求后,获取图片并绑定参数"file",获取图片名称并返回,如下图:

6.@CookieValue

@CookieValue用于获取HTTP请求中的Cookie,并赋值给方法参数,以如下代码为例:

修改浏览器中的Cookie,添加Cookie "username",并将值修改为"admin",使用浏览器访问"127.0.0.1:8080/request/getCookie",getCookie()方法中的参数"cookie"拿到Cookie并返回字符串,结果如下:

还可以使用servletAPI中的HttpServletRequet对象调用getCookies()方法获取所有Cookie。

7.@SessionAttribute

@SessionAttribute用于获取会话中的属性,并赋值给方法的参数,以如下代码为例:

程序启动后,先使用浏览器访问URL "127.0.0.1:8080/request/setSession",设置会话的属性"username"为"admin";再通过浏览器访问URL "127.0.0.1:8080/request/getSession",获取属性"username"的值,能够成功获取到设置的值并返回。运行结果如下:

获取Session中的属性也可以通过servletAPI的方式,使用HttpServletRequest对象调用getSession()方法,获取session对象,再调用getAttribute()方法,获取属性。或者使用框架直接获取HttpSession对象,再调用getAttribute()方法获取属性。

8.@RestController

@RestController是复合注解,功能等于@Controller + @ResponseBody;

@Controller用于定义控制器,Spring框架启动时加载,把对象交给Spring管理;

@ResponseBody定义返回的数据为非视图,返回一个text/html信息;

简单来说,@Controller修饰类,类里面的方法返回一个html页面/视图;@ResponseBody修饰类,类里面的方法不会返回html页面,只会返回后端计算出来的响应数据。这样的目的是降低前端代码和后端代码耦合性,使得前后端分离,前后端维护各自的代码时,不会相互影响。

@ResponseBody既可以修饰类,也可以修饰方法。修饰类就表示类中所有的方法返回的都是数据,修饰方法就表示该方法返回的是数据。以如下代码为例:

上述代码中类使用@Controller修饰,使用浏览器访问URL "127.0.0.1:8080/resp/getIndex",返回一个静态页面,如下:

使用浏览器访问URL "127.0.0.1:8080/resp/getIndex2",返回响应数据,如下:

http://www.dtcms.com/wzjs/408239.html

相关文章:

  • 网站建设小程序和app抖音优化排名
  • 鄂州网站建设价格软文媒体发稿平台
  • 官方网站建设公百度推广费用怎么算
  • 做网站用什么服务器销售的技巧与口才
  • 网站的建设与预算网站优化推广
  • 网站优化效果查询郑州网站关键词优化公司哪家好
  • 北京今天最新疫情武汉服装seo整站优化方案
  • 网站的手机版m站怎么做山东seo费用多少
  • 广州知名网站建设公司家电企业网站推广方案
  • 网站首页模板代码不收费的小说网站排名
  • 软件生命周期6个阶段郴州seo快速排名
  • 手机wordpress怎么保存图片高州网站seo
  • 手机微网站素材百度搜索引擎地址
  • 平顶山网站网站建设星链友店
  • 怎么建设在线视频网站seo兼职外包
  • 网上玩时时彩的网站怎么做代理5188大数据官网
  • 小说网站模板html企业如何进行网络营销
  • 武汉网站制作服务seo怎么优化
  • 招代理的网站要怎么做的浏览器看b站
  • 顺义区做网站的公司站长工具关键词排名怎么查
  • 网站优化计划书深圳seo网站推广方案
  • 科技有限公司可以做网站建设吗?重庆seo技术教程
  • 北京营销型网站太原建站seo
  • 可以网上做单的网站有哪些百度站长工具网站提交
  • 做视频网站用什么模板百度渠道开户
  • 淘客网站后台怎么做网络营销的案例有哪些
  • 企业网站主要有哪四种类型seo搜索排名优化
  • 怎么制作网站栏目页主页自助建站系统代理
  • 北京大学两学一做网站美国婚恋网站排名
  • 郑州做网站比较好公司珠海seo快速排名