作为一个前端开发人员,了解一门服务器端语言,对于提高自己的知识广度是很有帮助的。本文简单介绍服务器端javaEE的SSH2框架相关知识,主要有以下几点
1.SSH2是什么?
2.MVC
3.服务器端代码请求过程
4.服务器端代码逻辑结构
5.具体项目搭建过程
SSH2
Struts2-最早接触到用户请求,下面的url部分就是一个struts2的请求
$.ajax({ type: "GET", url: "/share/picture-json/doShowRelatePictureAction.action", data: { "picId": id }, success: function(result){ //do something } })Hibernate-对象关系映射框架,是对JDBC的轻量级封装,可以运用面向对象的思想操纵数据库。传统的JDBC操作数据库只能针对表的一条条属性,如果表的属性过多时,编写代码会显得非常冗余。如果采用Hibernate,对于一个表的操作只需要操作一个对象即可,编写代码会非常方便。
Spring-管理Struts2的请求以及简化对数据库的访问,并能通过Ioc(依赖注入)和AOP(面向切面)特性快速进行项目开发
MVC
MVC原理图
MVC与MVVM
MVC
mvc是一种常用的软件架构,是一种开发模式,其各部分的通信可简单看成以下几步:
(1)View传送指令到controller
(2)Controller完成业务逻辑,改变Model的状态
(3)Model将数据发送给View重新渲染,用户得到反馈
在MVC模式中,通信都是单向的
MVVM
MVVM模式是将Controller换成ViewModel,其有以下特性:
(1)各部分之间通信为双向的
(2)View和Model不直接通信,而是通过ViewModel传递
(3)View只是被动的显示内容,所有业务逻辑放在ViewModel中
服务器端代码请求过程
服务端代码的逻辑结构
逻辑结构图
各部分说明
- Java Resources-包含全部的java源代码,配置文件和引入的jar文件
- src-包括所有的java源文件和配置文件
- configs下包括所有的struts2和spring的配置文件
- yiban下包括所有的java源文件,在源文件中也会分成相应的层,action层(用于接收请求,由Struts2负责),dao层(直接处理数据库),service层(处理具体的业务逻辑)。pojo是对象和数据库表的映射文件。util下是一些公共功能的可复用的java文件。
- Libraries-所有的jar文件,包括tomcat,jre,外部引入的SSH2的jar包
- WebContent-编写的前端展示的文件,css、js、jsp等。其中WEB-INF下的web.xml是至关重要的文件,所有的请求都会经过web.xml然后查找对应的java文件进行处理
具体项目搭建过程
准备工作
- jdk1.7
- IDE: eclipse
- 服务器:tomcat6.0
- 数据库:mysql,保证数据库的服务是启动的
项目搭建
- 新建项目
在eclipse中新建一个web project,此时的project没有ssh2的支持,需要手动引入 - 引入SSH2框架
- 引入Struts2
- 首先在WebContent/WEB-INF/web.xml中添加如下代码段1⃣️,这段代码表示所有的请求都将由Struts2来处理
- 在Java Resources/src目录下添加struts.xml文件,其中添加一些全局设置,比如编码方式,扩展名等。如果在一个xml文件内配置所有的请求,这个文件就会显得很冗长,不方便管理,因此struts2的xml文件是可以拆分的。项目中的src/configs/struts下的xml文件都是关于struts2的配置
- 导入Struts2依赖的jar包,将jar包拷贝到WebContent/WEB-INF/lib下
- 引入Hibernate
- 首先在Java Resources/src下建立hibernate.cfg.xml文件(其实也可以不用建立,因为对Hibernate的配置都交给了Spring,故可省略)
- 导入Hibernate所依赖动jar包,将jar包拷贝到WebContent/WEB-INF/lib下
- 引入Spring
- 首先在WebContent/WEB-INF/web.xml中添加如下代码段2⃣️,这段代码表示添加对Spring的支持。同样可以将Spring的配置文件进行拆分,建立多个方便管理的xml文件,项目中的src/configs/spring下都是spring的配置文件
- 引入Spring依赖的jar包,将jar包拷贝到WebContent/WEB-INfO/lib下
- 引入额外的jar包
- Spring支持Struts2的jar包
- Struts2支持json的jar包
- 连接mysql数据库jar包
- 引入Struts2
- 项目部署到tomcat,测试项目 完整运行
- 数据库设计
- 前端页面设计与代码编写
- 后台逻辑实现
- 测试
- 上线
代码段1⃣️
struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
struts2
/*
代码段2⃣️
contextConfigLocation
/WEB-INF/classes/configs/spring/context_base_beans.xml
/WEB-INF/classes/configs/spring/context_service_beans.xml
/WEB-INF/classes/configs/spring/context_action_beans.xml
org.springframework.web.context.ContextLoaderListener