一次简单的SSH框架体验之旅

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小时内全部搞定。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180624G0EE7100?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券