第一章
1.什么是javaee
Javaee是一个开发分布式企业级应用的规范和标准.
2.为什么要学习javaee?
为了程序的易维护性和可扩展性.
3.javaee包括的技术
Javaee与框架之间的关系
应用程序-à框架集-àjavaee
MVC框架
M:数据层,C控制层,V表示层
第二章
What is servlet ?
Servlet是一个java程序,是在服务器端运行用来处理客户端请求并作出响应的程序.
Why we user servlet?
请求流关键要素:HTTP方法、要访问的页面、表单参数。
响应流关键要素:状态码、内容类型、内容。
HTML是HTTP响应的一部分。对于HTML中的img元素又会发出一次请求,我们应该尽量减少请求的次数。
How to use servlet?
1.servlet的生命周期
加载和实例化---初始化---服务---销毁
在我们创建好一个servlet之后,Eclipse会自动为我们创建一个web.xml文件,该文件里配置有servlet
例子:
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>SelectServlet</servlet-name>
<servlet-class>servlet.SelectServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/servlet/LoginServlet</url-pattern>
</servlet-mapping>
(注意:上下两个name值必须相等)
重定向:
Response..sendRedirect(“你要定向的地址”);----注意,重定向后,会丢失数据,浏览器地址改变
转发
request.getRequestDispatcher("/one/loginShow.jsp").forward(request,response);---不丢失数据,浏览器地址不变
//获取客户端请求元素
request.getParameter("uname");
//存储数据
Request.setAttribute(“aa”,aa);
//获取数据
Request.getAttribute(“aa”,aa);
第三章
创建会话
HttpSession session = request.getSession(false);
//存储数据
session.setAttribute(“aa”,aa);
//获取数据
session.getAttribute(“aa”,aa)
关闭会话
1. 关闭浏览器
2. 调用invalidate()方法,删除session对象和数据;
3. 两次访问时间大于色色死哦难定义的非活动时间间隔---可以自己在项目中配置时间间隔,也可以在tomcat中配置时间间隔,如果两者都存在,以项目中配置的时间间隔为准
第四章
1格式化问题
decimalFormat(“要格式化的格式”).format(要格式化的元素);
常用的集合类和接口
1. List接口
Arraylist类和linkedlist类
2. set接口
hashset(无序,不可重复元素)类和treeset类(可以人工排序)
上面两个接口都继承collection接口
Map接口
Hashmap类(线程不同步) <比较> hashtable(线程同步)
Properties类
第五章
MVC设计模式
Mà对应模式是javaBean
Và对应模式是jsp或html
Cà对应模式是Servlet
使用mvc设计模式可以大大提高程序的维护性和扩展性
关于mvc各个层的总结:
PO:
persistant object持久对象
最形象的理解就是一个PO就是数据库中的一条记录。
好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象。
-------------------------------------------------------------------------------
BO:
business object业务对象
主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。
比如一个简历,有教育经历、工作经历、社会关系等等。
我们可以把教育经历对应一个PO,工作经历对应一个PO,社会关系对应一个PO。
建立一个对应简历的BO对象处理简历,每个BO包含这些PO。
这样处理业务逻辑时,我们就可以针对BO去处理。
--------------------------------------------------------------------------------
VO :
value object值对象
ViewObject表现层对象
主要对应界面显示的数据对象。对于一个WEB页面,或者SWT、SWING的一个界面,用一个VO对象对应整个界面的值,VO是在servlet中new出来的。
--------------------------------------------------------------------------------
DTO :
Data Transfer Object数据传输对象
主要用于远程调用等需要大量传输对象的地方。
比如我们一张表有100个字段,那么对应的PO就有100个属性。
但是我们界面上只要显示10个字段,
客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端,
这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果用这个对象来对
应界面显示,那此时它的身份就转为VO
POJO :
plain ordinary java object 简单java对象
个人感觉POJO是最常见最多变的对象,是一个中间对象,也是我们最常打交道的对象。
一个POJO持久化以后就是PO
直接用它传递、传递过程中就是DTO
直接用来对应表示层就是VO
--------------------------------------------------------------------------------
DAO:
data access object数据访问对象
这个大家最熟悉,和上面几个O区别最大,基本没有互相转化的可能性和必要.
主要用来封装对数据库的访问。通过它可以把POJO持久化为PO,用PO组装出来VO、DTO
VO与PO的比较:
VO是业务对象 ,由业务逻辑使用,它存活的目的就是为数据提供一个生存的地方。
PO 则是数据对象的表现,它可以简化对象数据与物理数据的转换 。
VO由new关键字创建,由GC回收。
PO则是向数据库中添加新数据时创建,删除数据库中数据时删除,并且它只能存活在一个数据库连接中,断开连接即被销毁。
VO的属性根据当前的业务不同而不同。
PO的属性则是跟数据库表的字段一一对应。PO对象需要实现序列化接口。
PO与VO的关系:
首先说PO和VO吧,它们的关系应该是相互独立的,一个VO可以只是PO的部分,也可以是多个PO构成,同样也可以等同于一个PO(当然我是指他们的属性)。正因为这样,PO独立出来,数据持久层也就独立出来了,它不会受到任何业务的干涉。又正因为这样,业务逻辑层也独立开来,它不会受到数据持久层的影响,业务层关心的只是业务逻辑的处理,至于怎么存怎么读交给别人吧!不过,另外一点,如果我们没有使用数据持久层,或者说没有使用hibernate,那么PO和VO也可以是同一个东西,虽然这并不好。
VO与FormBean(HTML表单的封装)的关系:
其次,让我们看看FormBean和VO,如果简单地讲,我们是可以不需要FormBean的,它只是struts带来的一部分,而VO是无论如何不能舍弃的。如果让FormBean直接到业务层(它本来应该生活在控制层),那么会带来什么?View和Model就出现了强耦合,如果想改一下view的表示,整个业务逻辑都得改.
第六章
3种链接数据库方式
单例模式
自定义异常处理