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

dede电影网站模板下载it培训网

dede电影网站模板下载,it培训网,wordpress 多说 社交登陆,永久免费不收费的软件appHTTP协议 简介 Hyper Text Transfer Protocol#xff0c;超文本传输协议#xff0c;规定了浏览器和服务器之间数据传输的规则 http协议基于TCP协议#xff1a;面向连接#xff0c;安全基于请求-响应模型#xff1a;一次请求对应一次响应HTTP协议是无状态的协议#xff…HTTP协议 简介 Hyper Text Transfer Protocol超文本传输协议规定了浏览器和服务器之间数据传输的规则 http协议基于TCP协议面向连接安全基于请求-响应模型一次请求对应一次响应HTTP协议是无状态的协议对事务处理没有记忆能力。每次请求-响应都是独立的优点是速度快缺点是多次请求间不能共享数据 请求协议 请求行请求数据第一行请求方式get、post、资源路径、协议 请求头第二行开始格式keyvalue 常见请求头: Host请求的主机名User-Agent浏览器版本Accept表示浏览器能接受的资源类型如text/image/Accept-Language表示浏览器偏好的语言服务器可以据此返回不同语言的网页Accept-Encoding表示浏览器可以支持的压缩类型例如gzip、deflateContent-Type请求主题的数据类型Content-Length请求主体的大小单位字节 请求体post请求存放请求参数 请求方式-GET请求参数在请求行中没有请求体。GET请求大小在浏览器中是有限制的。 请求方式-POST请求参数在请求体中POST请求大小是没有限制的。 请求数据获取 浏览器端发送请求数据后服务器端需要接受并获取请求数据。Web服务器Tomcat对http协议的请求数据进行解析并进行了封装HttpServletRequest在调用Controller方法的时候传递给了该方法。这样就使得程序员不必直接对协议进行操作让web开发更加便捷。 响应协议 响应行响应数据第一行协议、状态码、描述 响应头第二行开始格式keyvalue 常见响应头 Content-Type表示响应内容的类型例如text/htmlapplication/json Content-Length表示改响应内容的长度 Content-Encoding表示改响应压缩算法例如gzip Cache-Control指示客户端应如何缓存例如max-age300表示可以最多缓存300秒 Set-Cookie告诉浏览器为当前页面所在的域设置cookie 响应体最后一部分存放响应数据 响应数据设置 web服务器对HTTP协议的响应数据进行了封装HttpServletResponse并在调用Controller方法的时候传递给了该方法。 分层解耦 三层架构 对代码进行拆分的原因是要遵循单一职责原则便于复用和后期维护 分层解耦 拆分完三层架构之后会发现Service调用DaoController调用Service都是通过在本层new一个另外一层的对象来实现功能的调用这样三层之间的耦合度就比较高下面需要进行解耦合。 解耦合主要是通过Spring框架两项关键的技术控制反转Inversion Of Control\IOC和依赖注入Dependency Injection \DI 控制反转IOC对象的创建控制权由程序自身转移到外部容器这种思想为控制反转 依赖注入DI容器为应用程序提供运行时所以来的资源称之为依赖注入 Bean对象IOC容器中创建、管理的对象称之为Bean 下面是如何具体实现分层解耦 将Dao及Service层的实现类交给IOC容器管理Component注解为Controller及Service注入运行时依赖的对象Autowired注解 UserController的代码 RestController public class UserController {Autowiredprivate Userservice userservice;RequestMapping(/list)public ListUser list(){ListUser userList userservice.findAll();return userList;}}UserServiceImpl的代码 Component public class UserServiceImpl implements Userservice {Autowiredprivate UserDao userDao;Overridepublic ListUser findAll() {ListString lines userDao.findAll();//2.解析数据封装成对象 -- 集合ListUser userList lines.stream().map(line - {String[] parts line.split(,);Integer id Integer.parseInt(parts[0]);String username parts[1];String password parts[2];String name parts[3];Integer age Integer.parseInt(parts[4]);LocalDateTime updateTime LocalDateTime.parse(parts[5], DateTimeFormatter.ofPattern(yyyy-MM-dd HH:mm:ss));return new User(id, username, password, name, age, updateTime);}).collect(Collectors.toList());return userList;} }UserDaoImpl的代码 Component public class UserDaoImpl implements UserDao {public ListString findAll(){//1.加载并读取文件InputStream in this.getClass().getClassLoader().getResourceAsStream(user.txt);ArrayListString lines IoUtil.readLines(in, StandardCharsets.UTF_8, new ArrayList());return lines;} } IOC 衍生注解是为了将类划分到三层架构哪一层就是用对应的衍生注解 代码中声明bean的四大注解想要生效还需要被组件扫描注解ComponentScan扫描 虽然在上面代码中注解ComponentScan没有被显示配置但实际上已经包含在启动类声明注解SprintBootApplication中默认扫描的范围时启动类所在包及其子包。 DI 基于**Autowired**进行依赖注入的常见方式有三种 第一种属性注入 RestController public class UserController {Autowiredprivate UserService userService; }优点代码简洁、方便快速开发 缺点隐藏了类之间的依赖关系可能破坏类的封装性 第二种构造函数注入 RestController public class UserController {private final UserService userService;Autowiredpublic UserController(UserService userService) {this.userService userService;} }优点能清晰地看到类的依赖关系、提高代码的安全性 缺点代码繁琐、如果构造参数过多可能会导致构造函数臃肿 第三种setter注入 RestController public class UserController {private UserService userService;Autowiredpublic setUserUserService(UserService userService) {this.userService userService;} }优点保证了类的封装性依赖关系更清晰 缺点代码繁琐 实战中很多企业会选择基于属性的注入第一种和第二种用的更多一点 Autowired是根据类型注入的 如果一个类型有多个Bean对象则是不允许的会直接报错 需要指定具体注入哪个Bean对象 Resoure和Autowired Resoure是javeee中提供的注解Autowired是Spring框架中提供的注解 Resoure默认是按名称注入的Autowired默认是按类型注入
http://www.dnsts.com.cn/news/51723.html

相关文章:

  • 淘客网站备案教程广东省建设工程质量安全协会网站
  • 专门做卫生间效果图的网站广告搜索引擎
  • 清河做网站哪家好企业建设网页
  • 网站建设好后的手续交接seo排名诊断
  • 荣耀手机商城官方网站登录入口运营培训班学费大概多少
  • 神华科技网站建设设计公司企业标志
  • 做外贸有哪些好的网站有哪些开发公司购买的小区内娱乐设施进什么科目
  • 网站设计导航代理公司的经营范围
  • 小孩子做手工做游戏的网站网站备份了怎么恢复
  • 在谷歌上做网站广告要多少钱潍坊作风建设网站
  • 仿古建筑公司网站网站做好是需要续费的吗
  • 网络网站建设公司排名网业安全防护如何关闭
  • 网站托管怎么做等保优化大师免费下载安装
  • 在家百度统计网站打不开百度网盘官方
  • 微网站建设包含哪些内容网站建设服务联享科技
  • 谢家华做网站阿里建站官网
  • 免费做四年级题的网站wordpress如何修改成中文字体
  • dede网站更新如何同步腾讯微博更新飞飞cms官网
  • 免费平面设计模板网站徐州网站建设xzqjwl
  • 站长之家模板正规网店加盟代理
  • 郑州做定制网站的公司大兴网站建设公司电话
  • 建立中英文网站摄影网站图片
  • 优化排名推广技术网站深圳小程序app定制开发
  • 网站建设公司有多少钱平面设计师网上接单
  • 做网站代理怎么赚钱做技术开发的网站
  • 手表怎么在网站做推广程序员一般找哪种女人
  • 个人网站做接口可以么防止服务器上的网站被进攻
  • 深圳宝安大型网站建设wordpress文章自动加p
  • 重庆网站建设及优化直播网站建设费用
  • php网站开发实例源码网站建设好公司好