IDEA第一课(熟悉里面内容)
templates 主要是配置相关的代码 /templates模版
application .properties SpringBoot项目的配置文件-十分重要
test测试代码,注意这里是放的开发人员的测试代码,与测试人员无关
现在的Spring完全就不需要我们自己去下载Tomcat,给我们进行的一个封装,但是实际使用的还是http协议
Springmvc是其中Boot的一个模块,能用这个项目进行jAVAweb项目开发,就是一个Springmvc的一个项目,是基于Servlet进行改进的
MVC其实可以看成一种思想,通过Spring进行实现称为SpringMVC,但是当前阶段,MVC概念又发生了一些变化,后端人员不涉及前端页面的开发,所以也就没有view层,view现在又有了一层解释,之前返回的视图,现在更像是返回视图的数据。
建立连接 -@RequestMapping 路由映射
访问地址,类的路径+方法路径(比如下面在类的前面添加了一个RequestMapping,那么类也会有路径了,/可以省略,但是推荐不要省略(标准-前加/后不加)
@RequestMapping("/hello") @RestController public class HelloController { //此时就限定必须使用Get这个方法 //注解没有写属性名字,默认就是value @RequestMapping(value = "/sayhi",method = RequestMethod.GET) public String sayHi(){ return "hi,SpringBoot"; } }
请求
1.传递单个参数
底层逻辑:从请求的参数中,获取参数名为name的值,并且给name赋值
2.多个参数
多个参数也是一样,顺序无所谓,注意⚠️哈我说的是age可以和那个name换
但是如果使用基本基本类型,必须要学会传值,不传值就会报错。所以开发的时候我们统一建议使用包装类
后端参数重命名-必定需要传的(如果使用了重命名-就必须要使用@RequestParam注解里的名字。假如你与注解的名字不同,则会报400的错误
如果我们像下图一样进行改动,那么虽然不会报错,但是会传不过来参数,即默认的空
public String m5(@RequestParam(value = "name",required = false) String username){ return "接收到的参数:"+username; }
3.传递数组
4.传递一个集合,但是这里我们传递的时候发生了500的错误
4开头的往往是客户端发生错误
如果看到5开头的错误,第一反应去看后端日志,后端日志从下往上看,一段一段的看,先看最后一段的首行
他的意思是,他的默认是传递一个数组,而不是一个集合,所以需要一个注释,来声明它是一个集合,这样,他就会可以用集合了
@RequestMapping("/m6") public String m7(@RequestParam List<String> listParam){ return "接收到的参数ListParam:"+listParam+"长度"+listParam.size(); }
简单介绍JSON
本质上是一个字符串,表示对象的字符串,通常称为JSON字符串
public String m4(@RequestBody Person person){ return "接收到的参数:"+person.toString(); }
获取URL中的参数
可以获取一个,也可以获取多个获取多个就要自己去填写,但是说需要注意他们的顺序,而且选择了顺序之后,就需要往请求里面填写东西(不能少填写)
public String m10(@RequestPart MultipartFile file) throws IOException {
System.out.println(file.getOriginalFilename());
file.transferTo(new File("/Users/lcl/Desktop/py/" +file.getOriginalFilename()));
return "success";
}
回顾Cookie和Session
Http是无状态的->http没有记忆功能的,现在的请求和过一会的请求,同样的请求参数,得到的结果是一样的->处理逻辑是一样的,而不是指数据。
Cookie是客户端机制,Session是服务器端机制 ,他们会常常结合在一起使用。
Http是无状态的-http没有记忆功能,现在请求和过一会的请求,同样的请求参数,得到的结果是一样的->处理逻辑是一样
理解Session(服务器机制,根据你的xx,有你的信息就能够查到你)
在计算机领域,会话是一个客户与服务器之间不中断的请求响应,服务器能够识别出来请求来自同一个用户,当一个未知的用户向Web应用程序发送第一个请求时,就开始了一个会话,当用户明确结束会话或服务器有一个时限内,没有收到任何用户的任何请求的时候,会话就结束了。
Cookie和Session的区别
Cookie是客户端保存信息的一种机制,Session是服务器端保存用户信息的一种机制
Cookie和Session之间主要通过SessionId关联起来的,SessionId是Cookie和Session之间的桥梁
Cookie和Session经常会在一起配合使用,但不是必须配合
获取Cookie的两种方式
下面是两种方式拿到Cookie,第一种是拿到全部的Cookie. @RequestMapping("/getCookie") public String getCookie(HttpServletRequest request){ Cookie[]cookies= request.getCookies(); // for(Cookie cookie:cookies){ // System.out.println(cookie.getName()+":"+cookie.getValue()); // } if (cookies!=null) { Arrays.stream(cookies).forEach(cookie -> { System.out.println(cookie.getName() + ":" + cookie.getValue()); }); } return "获取cookie成功"; } //使用注解的第二个方式,只能一个一个拿 @RequestMapping("/getCookie2") public String getCookie2(@CookieValue String bite,@CookieValue String aaa){ return "cookie存取的值"+bite+",aaa"+aaa; }
设置Session的方式
public String setSession(HttpServletRequest request){ HttpSession session= request.getSession(); session.setAttribute("username","zhangsan"); return "success"; }
获取Session的问题
//方法1:(原始版本,刚开始session为空。) @RequestMapping("/getSession") public String getSession(HttpServletRequest request){ HttpSession session= request.getSession(false); if(session!=null){ String username=(String) session.getAttribute("username"); return "登录用户"+username; } return "session为空"; } 方法2: @RequestMapping("/getSession2") //默认是一个必须传递的参数,所以加上false(这样你不传递参数也不会报错) public String getSession2(@SessionAttribute (required = false) String username){ return "username:"+username; } 方法3: Spring有一个内置的对象,和第一种方式相像,可以直接使用HttpSession等同于第一种的那个 request.Session(true) @RequestMapping("/getSession3") //内置对象,在需要的时候,加上即可,不需要的时候可以不写 public String getSesson3(HttpSession session){ String username=(String) session.getAttribute("username"); return "登入用户"+username; }
获取Http请求中的Header信息
@RequestMapping("/getHeader") public String getHeader(HttpServletRequest request){ //User-Agent相当于是一个key String userAgent= request.getHeader("User-Agent"); return "userAgent"+userAgent; } @RequestMapping("/getHeader2") public String getHeader(@RequestHeader("User-Agent")String userAgent){ return "userAgent"+userAgent; }
原文地址:https://blog.csdn.net/weixin_72953218/article/details/134538620
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_12385.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!