转载请标明原文地址
一、什么是SSH?
SSH是JavaEE中三种框架(Struts+Spring+Hibernate)的集成框架,是目前比较流行的一种Java Web开源框架。
SSH主要用于Java Web的开发。现在SSH有SSH1和SSH2两种,区别在于Struts的版本是struts1.x还是2.x。本文介绍的是SSH1。
二、Struts Spring Hibernate各起什么作用?
Struts:控制逻辑关系。
Spring:解耦。
Hibernate:操作数据库。
三、学习SSH的一些建议
SSH适合开发一些中、大型的企业级网站。功能强大,性能也高。但是学习成本也高,麻烦也不少,不擅长做小型网站或便捷开发。
如果你熟悉Java并准备做动态网站的开发,SSH值得学习,如果你不熟悉Java,或没有一定的编程经验,只想做个简单的个人网站或者论坛。PHP也许更适合你。
四、准备工作
俗话说:“工欲善其事必先利其器”。让我们看看在搭建SSH前需要准备哪些工具吧。
1.JDK
做Java开发第一步当然是Java开发环境了,JDK是必备的,本文中用的是jdk-8u111。
2.MyEclipse
[下载地址1] [下载地址2] [MyEclipse安装教程]
搭建SSH最好用的开发工具了,本文中用的是MyEclipse 10。
3.MySQL
完整的动态网站需要一个数据库。注意安装时设置的密码千万别忘了。本文中用的是MySQL 5.5.53。
4.Navicat for MySQL
[下载地址1] [下载地址2] [Navicat for MySQL安装教程]
MySQL可视化开发工具,主要用他来操作数据库。本文中用的是Navicat for MySQL 10.1.7
5.JDBC
数据库连接池,这是Java连接数据库必备的jar包。本文中用的是mysql-connector-java-5.0.8-bin.jar。
安装顺序:JDK > MyEclipse > MySQL > Navicat for MySQL
网站结构和开发工具作用如下图:
五、搭建SSH步骤
开发工具下载安装完毕后,正式进入搭建步骤。
1.新建web项目。打开MyEclipse 选择 新建 > Web Project。
2.项目名称(Project Name)命名为“SSH”,点击“完成”。若弹出对话框,选“是”就可以。
3.新建web项目后结构如下,可以看到在网站根目录下自动生成了一个首页index.jsp。
4.双击打开index.jsp,把“This is my JSP page.”改成“首页”。Ctrl + S 保存。可以看到出现如下提示:
5.这里出现了一个编码问题,页面默认的编码为ISO-8859-1,不支持中文字符,无法保存,我们需要更改jsp页面的编码格式。我们先把这个提示关掉。
在顶部菜单栏选择 窗口 > 首选项 > MyEclipse > JSP > Files and Editors > JSP,把编码改为ISO 10646/Unicode(UTF-8) > 应用 > 确定。
6.更改工作空间的编码格式。在顶部菜单栏选择 窗口 > 首选项 > 常规 > 工作空间 > 文本文件编码选择其他 > 其他选项里选择UTF-8 > 应用 > 确定。
编码问题是一个很常见的问题,为避免出现这类问题我们尽量将工作空间的所有编码格式统一,无论前台后台还是数据库,否则会引发许多问题,例如中文乱码。
7.这样设置后,我们的工作空间编码就比较统一了,再生成的JSP页面就是UTF-8编码格式了,能够很好的支持中文字符,不过之前生成的JSP页面编码格式要我们手动更改。
打开index.jsp,把第一行代码中pageEncoding="ISO-8859-1"改为pageEncoding="UTF-8"。Ctrl+S保存页面。更改后页面代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>首页</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> 首页<br> </body> </html>
8.部署网站,测试网站是否可以正常访问。点击菜单栏上的部署按钮。
9.在弹出框中点击“Add”按钮添加要部署的Web项目。
10.在弹出框中服务器选项“Server”选择“MyEclipse Tomcat”,使用MyEclipse自带的Web服务器,点击“完成”。
11.可以看到下方的部署状态“Successfully deployed”。部署成功,点击“确定”。
12.点击运行服务器图标启动服务器。
13.如果在控制台出现“Server startup in xxxx ms”,则证明服务器启动成功,注意Tomcat默认使用的端口是8080,如果该端口被占用的话则启动失败。
14.打开浏览器,在地址栏输入我们的网址:http://127.0.0.1:8080/SSH ,可以看到页面上显示“首页”,证明网站部署成功,首页可以正常访问。
15.停止服务器。在控制台中点击红色的正方形图标停止服务器。
16.添加Struts1框架。右键项目选择 MyEclipse > Add Struts Capabilities...。
17.在弹出框的下方“Base package for new class”处把“com.yourcompany.struts”改成“com.ssh.struts”, 点击完成。
18.可以看到我们的项目目录下出现了“WEB-INF”文件夹,证明Struts框架添加成功。
19.添加Spring框架。右键项目选择 MyEclipse > Add Spring Capabilities...。
20.在弹出框中选择以下6个包,点击“下一步”。
21.在弹出框中点击“Browse”更改路径为SSH项目下的WEB-INF文件夹,点击“完成”。
22.展开WEB-INF文件夹可以看到多出了3个文件,并在文件夹上多出了一个"S"标志,证明Spring框架添加成功。
23.添加Hibernate框架。在添加Hibernate框架前我们需要准备好数据库。
新建数据库。打开Navicat for MySQL。在“连接”窗口空白处右键选择“新建连接”。
24.在弹出框中填写连接名为“mysql”,密码填写安装MySQL时设置的密码(如果安装时设置的密码忘了,只能卸载重装MySQL了)。
25.点击“连接测试”,如果提示“连接成功”,则证明数据库连接成成功,否则按照提示查找错误。点击“确定”关闭弹出框。
26.双击“mysql”打开连接,右键“mysql”选择“新建数据库”。
27.在数据名中填写“ssh”,字符集选择“utf8”,点击“确定”。
28.双击“ssh”打开数据库,在展开的列表中右键“查询”选择“新建查询”;
29.新建user表。把以下代码粘贴到弹出框中,点击“运行”按钮。
DROP TABLE IF EXISTS `user`; CREATE TABLE `user` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘ID‘, `username` varchar(40) CHARACTER SET utf8 NOT NULL COMMENT ‘用户名‘, `password` varchar(40) COLLATE utf8_unicode_ci NOT NULL COMMENT ‘密码‘, `nickname` varchar(40) CHARACTER SET utf8 NOT NULL COMMENT ‘昵称‘, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT=‘用户信息表‘; INSERT INTO `user` VALUES (‘1‘, ‘admin‘, ‘1234‘, ‘冰封百度‘);
30.右键SSH下的“表”点击“刷新”。
31.可以看到出现了“user”表,并且表中有一条数据,数据库建立完毕。
32.导入JDBC包。打开该项目所在文件夹,在项目根目录下新建“lib”文件夹,并把下载的mysql-connector-java-5.0.8-bin.jar粘贴进来。
33.返回MyEclipse,右键SSH项目点击“刷新”,可以看到jar包已经导入。
34.连接数据库。在顶部菜单栏中选择 窗口 > 打开透视图 > MyEclipse Database Exlporer。
35.在DB Browser窗口空白处右键选择“New”新建一个数据库连接。
36.在弹出的窗口中填写如下选项:
Driver template: | MySQL Connector/J |
Diver name: | ssh |
Connection URL: | jdbc:mysql://127.0.0.1:3306/ssh |
User name: | root |
Password | 你设置的MySQL密码 |
点击“Add JARs”找到SSH项目下的mysql-connector-java-5.0.8-bin.jar。
勾选“Save password”保存数据库密码。
37.点击“Test Driver”测试数据库是否可以正常连接。
如果提示“Database connection successfully established.”则证明数据库连接成功,否则请与上一步填写的值比对。点击“完成”关闭窗口。
38.双击打开ssh数据库。逐层展开后会发现我们建立的user表,证明数据库连接成功。
39.添加Hibernate框架。点击右上角的MyEclipse图标返回JavaEE透视图。
40.右键SSH项目,选择MyEclipse->Add Spring Capabilities。
41.在弹出框中直接点击“下一步”。
42.配置中选择第二项“Spring configuration file”。把Spring框架与Hibernate框架整合到一起,然后点击“下一步”。
43.在配置中选第二项“Existing Spring configuration file”,使用Spring框架的配置文件,点击“下一步”。
44.DB Driver选择在添加Spring框架时配置的数据库驱动ssh,点击“下一步”。
45.取消勾选“Create SessionFactory class”,点击“完成”关闭窗口。
46.最后项目结构和applicationContext.xml内容如下,SSH框架搭建完毕。
下一篇文章我们将基于这个工程制作一个简单的注册登陆页,并解决一些SSH框架实际应用中遇到的问题。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"> </property> <property name="url" value="jdbc:mysql://127.0.0.1:3306/ssh"></property> <property name="username" value="root"></property> <property name="password" value="admin"></property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> </props> </property> </bean></beans>