目录

  • 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

ssh 技术架构 ssh架构图_ssh 技术架构

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)

ssh 技术架构 ssh架构图_ssh 技术架构_02

web.xml:拦截器,拦截访问action的请求

ssh 技术架构 ssh架构图_ssh 技术架构_03

struts.xml:核心文件

位置在src下面,文件名称叫struts.xml

主要配置Struts项目的一些全局的属性,用户请求和响应Action之间的对应关系,以来及配置Action中可能用到的参数,以及处理结果的返回页面。

ssh 技术架构 ssh架构图_ssh 技术架构_04

具体Action处理方法

封装为几个模块的Action类

ssh 技术架构 ssh架构图_ssh 技术架构_05


用户模块中的退出方法:

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方法处理客户端退出请求

ssh 技术架构 ssh架构图_xml_06

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返回给客户端。

ssh 技术架构 ssh架构图_服务器_07


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的服务开销。