/*
* http请求:
* 请求行:请求方法
* 头信息
* 空行
* 请求体
*/
System.out.println(“进入doGet方法”);
//获取当前请求的请求方式
String method = request.getMethod();
System.out.println(method);
//获取上下文路径
String path = request.getContextPath();
System.out.println(path);
//获取当前请求路径
StringBuffer sbf = request.getRequestURL();
System.out.println(sbf);
//获取当前请求的具体资源路径
String uri = request.getRequestURI();
System.out.println(uri);
//请求头信息
//getHeaderNames()方法:返回的是报头信息中所有属性名的集合 枚举类型
Enumeration<String> enums = request.getHeaderNames();
while(enums.hasMoreElements()){
//获取枚举中遍历到的属性名
String name = enums.nextElement();
//getHeader方法:根据属性名获取属性值
String value = request.getHeader(name);
System.out.println(name+" : "+value);
}
服务器端跨域配置
/* 允许跨域的主机地址 */
response.setHeader("Access-Control-Allow-Origin", "*");
/* 允许跨域的请求方法GET, POST, HEAD 等 */
response.setHeader("Access-Control-Allow-Methods", "*");
/* 重新预检验跨域的缓存时间 (s) */
response.setHeader("Access-Control-Max-Age", "4200");
/* 允许跨域的请求头 */
response.setHeader("Access-Control-Allow-Headers", "*");
/* 是否携带cookie */
response.setHeader("Access-Control-Allow-Credentials", "true");
开发前后端分离项目: 可在前端实现跨域也可在后端实现跨域
调用第三方脚手架时只能在脚手架端实现跨域
自己开发的服务器端程序可在服务器端实现跨域,前端就不用配
将一个含有好多方法的类变成单例模式的类:
1.将这个类的构造器声明为私有的,(返回值类型与类相同)
2.声明一个私有的静态的类的实例化对象
3.提供一个共有的静态的方法,用来返回该实例化对象,方法的返回值就是(类名)当前类的类型
适合构建单例模式的类:要提供好多个方法的类,每个方法提供一个功能,
当想用这个方法时,就要new对象调方法,但new对象除了调用方法外无意义,
这样的类就适合设计成单例模式的类或者把类中的方法都写成静态的,
工具类中的方法推荐写成静态的,普通的业务类不推荐,推荐用单例模式
单例模式类的好处:省内存,不需要频繁的构建对象
接口最大优点是方便程序的扩展
调用第三方接口,后端往前端返回的数据格式是json
json数据有两中格式:
一类是json对象:{"":"","":""}
一类是json数组:{"":"","":""},{"":"","":""},{"":"","":""}
一个请求过来了想做响应,不管需求是什么,返回的一定是json数据
json数据怎么往回带(响应如何实现):
//1.设定响应内容的类型
response.setContentType(“text/html”);
//2.获取输出流对象
PrintWriter pw = response.getWriter();
pw.print("{“result”:“success”}");
pw.close();
Collection是集合类的上级接口 主要继承他的有List和Set,提供集合容器的使用方法
Collections java集合的工具类,List和Set的子接口,提供操作集合容器的方法
ArrayList 是线性储存,适合随机查询
LinkedList 是链表结构,在插入删除时性能更好
/*
- MVC架构:
- V: View 视图层 前端开发部分
- C: Controller 控制层 Servlet
- 接请求 业务处理 做响应
- M: Model 模型层 业务处理的部分
- Service层:业务层+事务处理
- Dao层:和数据库交互的部分
- Bean层:存放实体类(数据库端一个表就对应一个实体类)
- 整个web连到一起的过程:V–>C–>M
*/
什么是事务处理?事务处理解决的问题是什么?
事务处理是在一次跟数据库交互的过程中,一组DML操作保证同时成功或同时失败
最终目的:保证数据库数据的一致性
什么是DML操作?
更数据库交互时进行数据的增删改操作,会导致数据发生变化,所以有事务处理