知识点总结

Java 发表评论


一、JSP
1. JSP概念
JSP是基于Java Servlet的Web开发技术;
跨平台(Java的字节码与平台无关),JSP和JavaBean的代码不需要重新编译。
2. 运行机制
 JSP文件第一次被请求时,JSP容器先把该文件转换为Java源文件(Java Servlet源程序);
 转换成功后,JSP容器使用javac将生成的Java源文件编译成相应的字节码文件*.class;
 Servlet容器加载*.class创建一个该Servlet的实例(常驻内存),并执行Servlet的jspInit( )方法;
 执行_jspService( )来处理客户端请求。对每一个请求,JSP容器会创建一个新线程处理它。
 由于系统资源不足等原因,JSP容器会将Servlet从内存移除,此时会先调用jspDestroy( )方法。
 然后,Servlet实例被加入“垃圾收集”处理。
 请求处理完成后,响应对象由JSP容器接收,并将HTML格式响应信息发送回客户端。
3. JSP指令:<%@ page %>; <%@ include %>; <%@ taglib %>
4. JSP脚本元素:<%! 声明 %>; <%= 表达式 %>; <% JSP Scriptlets %>
5. JSP动作元素:; …
6. 转发VS重定向
 转发在服务器端进行,不会引起客户端的二次请求,浏览器地址栏不变化;
 重定向会停止当前页面的执行,将客户端请求转交给另一页面。重定向会丢失所有的请求参数,而且会丢失Action的处理结果。
7. 与include指令
 Include动作元素在执行时对所包含文件进行处理,当被包含文件内容变化时,JSP页面运行时可看到变化后的结果;
 Include指令包含的是静态文件,当被包含文件内容变化时,JSP页面运行时仍显示变化前的内容。
8. JSP内置对象
request; response; session; application; page; pageContext; config; exception; out
9. request.setCharacterEncoding(“utf-8”);
10. response.sendRedirect(“*.jsp”);可跳转到任何一个地址页面 <—> 只能在本网站内跳转。
11. Servlet生命周期
Servlet运行在Servlet容器中,由容器来管理其生命周期:
(1) 加载和实例化。
加载Servlet之后,容器通过Java反射机制来创建Servlet实例。
(2) 初始化。
实例创建后,容器调用Servlet的init( )方法初始化该对象。对于每个Servlet实例,生命周期内只会调用一次。
(3) 执行。
客户端请求到来后,容器首先创建ServletRequest和ServletResponse对象,然后自动调用Servlet的service( )方法来响应请求。
(4)清理。
当servlet实例需要从服务中移除时(不在需要或重新装入),容器调用destroy( )方法释放实例所占用的资源,并将实例中的数据保存到持久的存储设备中。之后,被垃圾回收器回收。
12.

二、Spring

三、Struts
1. MVC
 MVC思想:将系统的各个组件进行分类,然后分隔到不同的层中,各层之间以松散耦合方式组合在一起,保证了良好的封装性。
 MVC将应用分成Model(模型)、View(视图)、Controller(控制)三层;
 模型层:代表企业数据和其对应的业务逻辑,控制着对数据的处理和更新。模型层接收视图层(通过控制器传送到的)的请求数据,并返回处理结果更新视图层。
 视图层:模型层中各个模型的具体表现形式。常常采用“观察者模式”,视图对模型层中的对应模型进行注册,一旦模型数据发生改变,就会通知视图层进行相应的改变。
 控制层:连接模型层Model与View视图层。
2. 概述
Struts2框架并不是Struts1的升级(相对Struts1:性能高效、松耦合、低侵入),而是一个全新的框架。它将Struts技术与WebWork技术结合起来。
3. 工作流程
 用户发出一个HttpServletRequest请求;
 请求经过一系列的过滤器Filter;
 调用FilterDispatcher(控制器核心)。通过询问ActionMapper来确定是否需要调用某个Action;若需调用某个Action,则FilterDispatcher把请求转交给ActionProxy处理。
 ActionProxy通过“配置管理器”询问框架的配置文件struts.xml,从而找到需调用的Action类。
 ActionProxy创建一个ActionInvocation实例。在Action执行前后,ActionInvocation实例根据配置文件加载与Action相关的所有拦截器Interceptor;
 一旦Action执行完毕,ActionInvocation实例根据struts.xml中的配置找到对应的返回结果。
 最后,HttpServletResponse响应通过web.xml文件中配置的过滤器返回。
4. Struts2角度理解MVC
 Model:业务逻辑组件;
 Controller:系统核心控制器(FilterDispatcher)和业务逻辑控制器(Action)。FilterDispatcher(体现了J2EE核心设计模式中的“前端控制器模式”) 是起过滤作用的类,能根据请求自动调用相应的Action;Action负责调用相应的业务逻辑组件来完成处理。
 View:通常指JSP页面。
5. 用户实现的Action类仅仅是Struts 2的Action代理的代理目标。用户实现的业务控制器(Action)则包含了对用户请求的处理。用户的请求数据包含在HttpServletRequest对象里,而用户的Action类无需访问HttpServletRequest 对象。拦截器负责将HttpServletRequest里的请求数据解析出来,并传给业务逻辑组件Action实例。
6. 核心文件
 web.xml:struts2框架要先依赖于过滤器FilterDispatcher来截获Web程序的HTTP请求,再做进一步处理。这就必须在web.xml文件中来配置FilterDispatcher过滤器。
 struts.properties:管理框架中定义的大量常量。
 struts.xml:主要用来配置Action和HTTP请求的对应关系,以及配置逻辑视图和物理视图资源的对应关系。
7. Action与Servlet API
HttpServletRequest、HttpSession和ServletContext三个接口分别对应JSP内置对象中的request、session和application.
 通过ActionContext类访问
Static ActionContext getContext( ); Map getApplication( ); Map getSession();
void put(Object key,Object value)
 通过特定接口访问
ServletRequestAware:实现该接口后,可直接访问HttpServletRequest实例;
ServletResponseAware:实现该接口后,可直接访问HttpServletResponse实例;
ServletContextAware:实现该接口后,可直接访问ServletContext实例。
 通过ServletActionContext类访问
8. ModelDriven接口
对实现了该接口的Action,只需定义相应的Model,Struts2框架就会自动将用户提交的HTTP信息赋给相应的Model。
9.

四、Hibernate
1. 工作原理
 Hibernate的初始化,创建Configuration对象。
1) 从配置文件Hibernate.cfg.xml中读取配置信息,存放到Configuration对象(内存)中;
2) 根据配置文件中的mapping元素加载所有实体类对应的映射文件到Configuration对象中。
 通过已创建的Configuration实例构建SessionFactory实例。
将Configuration对象内的配置信息存入SessionFactory的内存(属性)中。SessionFactory充当数据存储源的代理,并负责创建Session对象。(得到SessionFactory对象后,Configuration对象的使命就结束了。)
SessionFactory实例对应应用程序中的数据源,全局唯一;是线程安全的,可被多个线程共享;是重量级的。
 创建Session实例,建立数据库连接。
Session通过SessionFactory打开,用来操作实体对象,并把这些操作转换成对数据库中数据的增、删、查、改操作。
Hibernate在处理Session时使用了“延迟加载”机制,只在真正访问数据库时才从连接池中获取数据库连接。Session不是线程安全的,常用管理方案是使用ThreadLocal模式。
 创建Transaction实例,开始一个事物。
一个Transaction对象对应的事物可以包括多个操作。在使用Hibernate进行增加、删除和修改操作时必须先创建Transaction对象。
 利用Session的方法进行持久化操作,将实体对象持久化到数据库中。
 提交操作结果并结束事物。
 关闭Session,与数据库断开连接。
2. C3P0连接池
Hibernate对C3P0连接池提供了内嵌支持。
3. Hibernate二级缓存属性
Hibernate共有两级缓存:
第一级是Session级的缓存,是事务范围的缓存,可由Hibernate自动管理;
第二级是由SessionFactory管理的进程级缓存,可在hibernate.cfg.xml配置文件中进行配置和更改,而且可以动态加载和卸载。
4. Hibernate本身并没有提供事务管理功能,默认使用底层JDBC的事务管理。

  1. 五、Mysql

六、操作系统

七、计算机网络

八、JVM

上一篇:
下一篇:

发表评论

邮箱地址不会被公开。 必填项已用*标注

昵称 *