昆山做网站,上海最近热点事件,星巴克网站建设,廊坊网络推广公司目录 IDEA第一课#xff08;熟悉里面内容#xff09;
建立连接 -RequestMapping 路由映射
请求
1.传递单个参数编辑
2.多个参数编辑
3.传递数组
4.传递一个集合#xff0c;但是这里我们传递的时候发生了500的错误
简单介绍JSON
回顾Cookie和S…目录 IDEA第一课熟悉里面内容
建立连接 -RequestMapping 路由映射
请求
1.传递单个参数编辑
2.多个参数编辑
3.传递数组
4.传递一个集合但是这里我们传递的时候发生了500的错误
简单介绍JSON
回顾Cookie和Session
Cookie和Session的区别
获取Cookie的两种方式
设置Session的方式
获取Session的问题
获取Http请求中的Header信息 IDEA第一课熟悉里面内容 resources资源目录 static /static 静态文件 templates 主要是配置相关的代码 /templates模版 application .properties SpringBoot项目的配置文件-十分重要 test测试代码注意这里是放的开发人员的测试代码与测试人员无关 作为一名开发人员需要对自己的代码质量负责不能完全依赖测试QA 功能开发之后需要先自测自测通过才交给测试人员 注意⚠️文件夹的颜色也是有区别-蓝色与绿色的java。当然可以在下图去设置 在当前页面我们和前面学的Servlet不同首先Spring自己带Tomcat。 其次和我们之前前往的路径也不同原因就是看下面的日志他写的ContentPath为即空。 现在的Spring完全就不需要我们自己去下载Tomcat给我们进行的一个封装但是实际使用的还是http协议 Spring Boot是帮助我们快速构建项目的 Springmvc是其中Boot的一个模块能用这个项目进行jAVAweb项目开发就是一个Springmvc的一个项目是基于Servlet进行改进的 MVC其实可以看成一种思想通过Spring进行实现称为SpringMVC,但是当前阶段MVC概念又发生了一些变化后端人员不涉及前端页面的开发所以也就没有view层view现在又有了一层解释之前返回的视图现在更像是返回视图的数据。 学习SpringMVC 建立连接 -RequestMapping 路由映射 访问地址类的路径方法路径(比如下面在类的前面添加了一个RequestMapping那么类也会有路径了/可以省略但是推荐不要省略标准-前加/后不加 RequestMapping支持Post和Get都可以 RequestMapping(/hello)
RestController
public class HelloController {
//此时就限定必须使用Get这个方法
//注解没有写属性名字默认就是valueRequestMapping(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;} 以上写的就是在web交互也就可以说是SpringMVC 注意哈url后面的问号查询字符串 3.传递数组 当我们请求中同一个参数有多个的时候 4.传递一个集合但是这里我们传递的时候发生了500的错误 5开头的通常是服务端发生错误 4开头的往往是客户端发生错误 如果看到5开头的错误第一反应去看后端日志后端日志从下往上看一段一段的看先看最后一段的首行 他的意思是他的默认是传递一个数组而不是一个集合所以需要一个注释来声明它是一个集合,这样他就会可以用集合了 RequestMapping(/m6)public String m7(RequestParam ListString listParam){return 接收到的参数ListParam:listParam长度listParam.size();}简单介绍JSON 本质上是一个字符串表示对象的字符串通常称为JSON字符串 假如要传递注解就要使用一个RequestBody 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没有记忆功能现在请求和过一会的请求同样的请求参数得到的结果是一样的-处理逻辑是一样 Cookie(相当于是一个学生证能够查到你的信息 理解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,aaaaaa;}设置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相当于是一个keyString userAgent request.getHeader(User-Agent);return userAgentuserAgent;
}
RequestMapping(/getHeader2)
public String getHeader(RequestHeader(User-Agent)String userAgent){return userAgentuserAgent;
}