SSH是(Struts,Spring,Hibernate)的简称。
Struts进行流程控制,Spring进行业务流转,Hibernate进行数据库操作的封装。(引用自百度百科)
Struts 采用MVC模式,主要是作用于用户交互。
spring 采用IOC和AOP~作用比较抽象,是用于项目的松耦合。
hibernate 是对象持久化框架,其实就是实体类和数据库表建立关系,操作类就会触发相应的sql语句,可以不用写任何sql语句,完成数据库编程(引自百度知道)。
SSH就是Struts +Spring + Hibernate 3个Java框架的集合,Java开发中常用的框架组合。用来开发后台,与前台和数据库进行数据交互。
SSH框架搭建步骤很多,但是不难,因为MyEclipse已经帮我们做了大部分的工作,如果纯手动添加这个框架的话,那真是够复杂的了。不过涉及的知识挺多的,但软件工程专业的学生应该必备此能力。
下面详细介绍一下SSH框架的搭建步骤并且写了一个登录页面,让我们享受一段简单的ssh之旅。
一、前期准备工作
1. 下载并安装jdk(以下链接从略,自行百度即可,如有找不到的,留言回复)
2. 下载并安装MyEclipse
3. 下载并安装MySQL,管理工具使用MySQL Workbench即可。
4. 下载mysql-connector-java-8.0.11.jar,用来连接数据库的驱动程序,必备。
5. 在MySQL中建立一个测试的数据库及数据表,代码如下:
CREATE SCHEMA `testssh` ;
CREATE TABLE`user` (
`id` bigint(20) unsigned NOT NULLauto_increment COMMENT 'ID',
`username` varchar(40) character set utf8 NOTNULL COMMENT '用户名',
`password` varchar(40) collateutf8_unicode_ci NOT NULL COMMENT '密码',
`nickname` varchar(40) character set utf8 NOTNULL COMMENT '昵称',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8COLLATE=utf8_unicode_ci COMMENT='用户信息表';
二、开始搭建
1. 新建一个项目,打开MyEclipse,新建一个web项目,命名为testSSH,点击完成。
然后创建项目即可。
2. 添加Struts框架。右键点击项目,选择configure facets – install structs
加载struts之后,项目结构如下:
3. 添加spring框架,右键点击项目,选择configure facets – install spring
此处仅添加必需的即可,不用全部都加载。
加载了spring之后,项目结构如下,可以看到spring-form.tld和spring.tld已经进来了。
5. 加载hibernate
加载了hibernate之后,项目结构如下:
6. 部署并简单测试。
找到左侧的这个按钮,将项目部署到服务器上去。
将我们的testSSH部署到tomcat上。
然后选择启动服务器:
在浏览器中访问SSH项目地址,别忘了加上Tomcat的默认端口,8080端口。
输入地址:http://localhost:8080/testSSH,Tomcat会访问SSH项目WebRoot下的index.jsp。
此处,需要注意的是,有时候启动服务的时候会提示端口被占用,解决的方法很简单,可以从控制台中来查找占用端口的程序,并且关掉即可。
一般来说,用这两条语句就可以搞定,如果不成功,可以从任务管理器里,寻找pid是7572的进程,然后关掉即可。
另外,还需要注意中文的乱码问题,需要更改两个地方:
把编码改为ISO 10646/Unicode(UTF-8)
Text file encoding改成other: UTF-8
此处pageEncoding要改成UTF-8
这样中文显示就没问题了。
三、写一个登录页面来简单测试一下我们搭建的ssh框架,看看他们起到的作用。
1. 切换到MyEclipse DataBase Explorer视图,通过Spring框架的逆向工程功能把user表逆向成Java实体类。右键user表选择"HibernateReverse Engineering"
简单的讲:此时的目录结构如下,我们可以看到系统生成了3个类,一个配置文件。
User 继承自AbstractUser,是User表的实体类。
UserDAO 封装了一些对数据库的常用操作。
User.hbm.xml 是hibernate-mapping映射配置文件,配置了哪个实体类映射哪个表,配置了实体类的哪个属性映射表里的哪列。
如果这些东西不用hibernate生成,那么我们就要自己写,要浪费很多时间,hibernate的作用就体现出来了。
另外,此处要将driver的文件写进来,否则编译会出错。
2. 写测试页。打开WEB-INF文件夹下的struts-config.xml文件,切换到设计视图(design)。右键->New->Form Action and JSP。
我们查看一下现在的目录结构,并把struts-config.xml切换到Source视图,看看struts框架帮我们干了什么。
可以看到目录里多了3个文件:LoginFrom.java、LoginAction.java、login.jsp。这正是我们在设计视图里选择Form,Action and JSP所配置的文件。而struts-config.xml里也相应的添加了这3个文件的映射配置信息。如果这些不用struts生成的话,就需要我们自己写,会浪费很多时间,struts的作用体现出来了。
这里说一下页面请求的执行顺序:
1、login.jsp用户填写了登录信息并点击了登录按钮,发送了一个请求(loginFrom.do)。
2、struts会通过struts-config.xml找到相应的映射配置(Action name==loginFrom)。
3、把登录表单的属性映射到loginForm.java里(bean)。
4、把loginForm和mapping、request、response一起交给LoginAction处理。
5、LoginAction执行完后的通过mapping找到跳转页面forward(这个下面会提到)。
现在添加两个页面:登录成功页和登录失败页,实现登录后的跳转。
在WebRoot/jsp/下新建两个JSP页。起名为loginSuccess.jsp和loginFailed.jsp。
创建之后,在视图模式中右键点击login.jsp,选择forward,然后链接到新建的loginSuccess和loginFailed。
做好跳转之后,查看structs-config的代码如下:
此处需要格外注意applicationContext文件的位置,否则在运行的时候会报错。
打开loginAction.java,修改代码如下:
然后去网上随便找一找css,对页面进行美化,运行程序,在http://localhost:8080/testSSH/form/login.jsp上就可以看到自己的程序了。
输入用户名和密码,如果成功登录,会跳转到相应的loginSuccess页面上去。
至此,全部搭建过程结束。如果是初次接触,全过程应该在1-2小时内全部搞定。
领取专属 10元无门槛券
私享最新 技术干货