java基础常见问题解析(七)javaWeb基础知识

javaWeb基础知识

  • javaWeb的虚拟目录

虚拟目录 是指在开发中用到的目录结构层次,但这些在部署的时候有些并不真实存在;

比如在进行javaWeb项目开发的过程中,我们会用到的WebRoot : 是虚拟目录 (存放jsp页面)
和 src : 虚拟目录 ,这些目录名称在javaWeb项目部署到web服务器上的时候其实根本不存在,所以称为虚拟目录

Web项目部署到Tomcat后不存在 ,所以叫虚拟目录。而实际访问过程中是按照实际路径来访问 项目的

classpath: 代表WEB-INF/classes目录下的
访问地址要按照部署web项目的实际路径来进行访问

  • HTTP常见错误码:

404:服务器已连接启动,地址栏输入错误,或者请求资源不存在

200:请求成功,正常获得服务器的返回-OK

500:服务器已连接启动,请求资源存在,资源已被解析,但解析报错

302:重定向的返回状态码:—-sendRedirect();-属于正常状态码

一般上返回码的定义

2开头:成功
3开头:重定向
4开头:请求错误
5开头:服务器错误

  • Request、Session、Application生命周期分析

这里写图片描述

Request:每次请求都会生成不同的request,
Response:每次响应都会生成不同的response,
Application:可以实现跨机访问,主要服务器不停止,所有用户都可以访问到
Session:与每个用户的sessionId有关,有30分钟的失效期(服务器停止session会序列化到服务器,服务器重启session会反序列化到内存中,加载原来的session数据 所以Session的生命周期与服务器停止不停止没有关系)

Application和Session的生命周期有交集关系,不是并集关系

  • *JDBC、JDBCTemplate、MyBatis、Hiberante 比较与分析

JDBC:java连接数据库的API,可以为多种关系数据库提供统一访问,它由一组用java语言编写的类和接口组成,JDBC提供了一种基准,以此可以构建更高级的工具和接口,是数据库开发人员能够编写数据库应用程序

优点:
运行期快捷高效
缺点:
编辑器代码量大,繁琐异常处理,不支持数据库跨平台

JDBCTemplate:
针对数据查询提供了多个重载的模板方法,你可以根据需要选用不同的模板方法,如果你的查询很简单,仅仅是传入相应的sql或相关参数,然后取得一个单一的结果,那么你可以选择一组便利的模板方法

优点:运行期高效,内嵌在Spring框架中,支持基于AOP的声明式事务
缺点:必须依赖于Spring框架结合在一起使用,不支持数据库的跨平台、默认没有缓存

MyBatis(中量级的封装 比JDBCTemplate封装的更好 优势明显) 使用最广
前身就是Ibatis ,apache的开源项目
最主要的优点:动态、复杂的SQL构建 Dynamic

MyBatis主要完成两件事
1.根据JDBC规范建立与数据库的连接
2.通过Annotation/XML+JAVA反射技术,实现java对象与关系数据库之间的互相转化。resultMapClass

MyBatis优缺点

优点:高效,支持动态、复杂SQL的构建,支持与Spring整合和Aop事务、结果集也做了轻量级的Mapper封装,支持缓存(支持第三方缓存框架)
缺点:不支持数据库跨平台,还是需要自己写SQL语句

数据库的跨平台和数据库的性能不可能同时满足,正因为不支持数据库跨平台,sql语句靠自己写,所以写起来比较灵活

Hibernate(Jboss公司)
Jboss 三大产品 :Jboss容器 、Hibernate、JPPM(工作流框架)

最大优势:根据底层数据库 可以自动生成SQL语句,在损害性能的基础之上来实现跨平台移植

是一个开放源代码的对象映射框架,它对jdbc进行了非常轻量级的对象封装,使得java程序员可以随心所欲的使用对象编程思想来操纵数据库,Hibernate可以应用在任何使用jdbc的场合,既可以在java的客户端程序使用,也可以在Servlet/jsp的web应用中使用

Hibernate核心接口一个6个
Session、session多例
SessionFactory、通过Configuration生成 –单例
Transaction、事务
Query、基于HQL语言 使得查询语言面向对象化
Criteria 主要基于面向对象的查询语言(真正的)–开发人员比较生疏,使用都比hql要低
Configuration 加载hibernate配置文件 加载完毕返回一个对象

通过这些接口不仅可以对持久化对象进行存取,还能进行事务控制

Criteria是一种比hql更面向对象的查询方式,它可使用Criterion和Projection设置查询条件,可以设置FetchMode(联合查询抓取的模式)设置排序方式,还可以设置FlushMode(冲刷Session的方式)和LockMode

JTA:分布式事务(java事务API)
它和他的同胞java事务服务(JTS)为javaEE平台提供了分布式事务服务

以上框架同样都支持分布式事务

你可能感兴趣的:(java基础知识点)