目录
- 1、视图层(html、jsp)
- 2、控制层(Action方法)
- 3、服务层:将模块对象请求的服务封装起来
- 4、DAO层:采⽤Hibernate框架封装对数据库的访问
- struts2架构:MVC设计模式实现的Web应用程序框架,处理视图层请求的action
- web.xml:拦截器,拦截访问action的请求
- struts.xml:核心文件
- 具体Action处理方法
- Hibernate框架(对象关系映射):负责跟数据库的交接。通过持久化数据对象,进行对象关系的映射。
- 主配置文件:hibernate.cfg.xml
- SessionFactory:Session是Hibernate最重要的对象,可以保存、更新对象到数据库
- Spring框架:负责实体bean的业务逻辑处理,管理struts和hibernate
- applicationContext.xml :Spring最基本的配置信息(数据源,SessionFactory和事务处理等)
- c3p0连接池连接数据库
- 服务器(Web):TomCat、Apache
- 1)Apache:普通服务器,本身只支持html静态网页,可与Tomcat连通。
- 2)Tomcat:java应用服务器(动态解析,如JSP),是一个servlet容器
- Servlet:服务器端的Java应用程序,可以生成动态的Web页面。
- 3)Apache和Tomcat整合使用:
SSH是基于MVC的开发(模型-视图-控制器),控制器相当于struts.xml
1、视图层(html、jsp)
静态html页面或动态jsp页面,用于视图的显示,并可以接受用户输入数据。
2、控制层(Action方法)
在Action方法中处理前端的网页请求并返回结果。
3、服务层:将模块对象请求的服务封装起来
4、DAO层:采⽤Hibernate框架封装对数据库的访问
struts2架构:MVC设计模式实现的Web应用程序框架,处理视图层请求的action
由来:单纯用servlet来进行网页动态化会很麻烦,每个网页都要对应一个servlet(实现了servlet接口的java类)。
struts2框架底层封装了Servlet的相关内容,因此可以直接用Action(处理动态化网页数据的java类,对应于javaweb的servlet)
web.xml:拦截器,拦截访问action的请求
struts.xml:核心文件
位置在src下面,文件名称叫struts.xml
主要配置Struts项目的一些全局的属性,用户请求和响应Action之间的对应关系,以来及配置Action中可能用到的参数,以及处理结果的返回页面。
具体Action处理方法
封装为几个模块的Action类
用户模块中的退出方法:
1)前端
<%if(user!=null){ %>
<li>你好,<font style="color:red;"><%out.print(user.getUser_name()); %></font></li>
<li><a href="Logout.action">【退出】</a></li>
<%}else{ %>
2)xml文件,定义响应Action与返回网页
<action name="Logout" method="Logout" class="com.java1234.action.UserAction">
<result name="success">/index.jsp</result>
</action>
3)Action方法处理客户端退出请求
Hibernate框架(对象关系映射):负责跟数据库的交接。通过持久化数据对象,进行对象关系的映射。
并以对象的角度来访问数据库,通过封装JDBC,使得开发人员可以以面向对象编程的思想来操控数据库,
我们编写javaBean(对象类)时,都同时建立一个对象映射hbm.xml。一般它和JavaBean对象放在同一目录下
主配置文件:hibernate.cfg.xml
SessionFactory:Session是Hibernate最重要的对象,可以保存、更新对象到数据库
SessionFactory–>Session的工厂,也可以说代表了hibernate.cfg.xml这个文件…hibernate.cfg.xml的就有这么一个节点
openSession方法
创建一个Session对象
getCurrentSession方法
创建Session对象或取出Session对象
Session
Session是Hibernate最重要的对象,Session维护了一个连接(Connection),只要使用Hibernate操作数据库,都需要用到Session对象
通常我们在DAO层中都会有以下的方法,Session也为我们提供了对应的方法来实现!
Spring框架:负责实体bean的业务逻辑处理,管理struts和hibernate
Spring,使用基本的实体JavaBean来完成以前只能用EJB完成的事情。
使用Spring,意味着一个对象的创建再也不是自己new出来的,而是全权交给了IOC容器去实例化。
applicationContext.xml :Spring最基本的配置信息(数据源,SessionFactory和事务处理等)
c3p0连接池连接数据库
1、先建立db.properties文件
user=root
password=myg0820
driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://47.93.102.163:3306/javaee?useUnicode=yes&characterEncoding=UTF-8
#useUnicode=true&characterEncoding=UTF-8
initPoolSize=5
maxPoolSize=10
再在applicationContext中定义数据源
<!-- 配置对属性文件访问的支持 -->
<context:property-placeholder location="classpath:db.properties"/>
<!-- 定义数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${driverClass}"></property>
<property name="jdbcUrl" value="${url}"></property>
<property name="user" value="${user}"></property>
<property name="password" value="${password}"></property>
<property name="initialPoolSize" value="${initPoolSize}"></property>
<property name="maxPoolSize" value="${maxPoolSize}"></property>
</bean>
服务器(Web):TomCat、Apache
1)Apache:普通服务器,本身只支持html静态网页,可与Tomcat连通。
jsp等动态网页需要Tomcat来处理。
2)Tomcat:java应用服务器(动态解析,如JSP),是一个servlet容器
可以认为是apache的扩展,但是可以独立于apache运行。
Servlet:服务器端的Java应用程序,可以生成动态的Web页面。
它担当客户请求与服务器响应的中间层。,Servlet由Web服务器进行加载,该Web服务器必须包含支持答Servlet的Java虚拟机。
Servlet对客户端的java类开接口,实现servlet接口的java类也可以称之为servlet。
Tomcat与客户端直接打交道,他监听了端口,请求过来后,根据url等信息,确定要将请求交给哪个servlet去处理,然后调用那个servlet的service方法,service方法返回一个response对象,tomcat再把这个response返回给客户端。
Java Servlet 是运行在带有支持 Java Servlet 规范的解释器的 web 服务器上的 Java 类。
Servlet 可以使用 javax.servlet 和 javax.servlet.http 包创建,
3)Apache和Tomcat整合使用:
如果客户端请求的是静态页面,则只需要Apache服务器响应请求;
如果客户端请求动态页面,则是Tomcat服务器响应请求,将解析的JSP等网页代码解析后回传给Apache服务器,再经Apache返回给浏览器端。
这是因为jsp是服务器端解释代码的,Tomcat做动态代码解析,Apache回传解析好的静态代码,Apache+Tomcat这样整合就可以减少Tomcat的服务开销。