转载请标明原文地址:http://www.cnblogs.com/zhangyukof/p/6762554.html
一、什么是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”,J2EE选择“Java EE 6.0”,点击“完成”。若弹出对话框,选“是”就可以。
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.最后项目结构如下,SSH框架搭建完毕,注意在使用Tomcat服务器时,Struts的Form提交不支持中文,表单提交后会出现乱码,需要在web.xml中配置编码过滤器。
下一篇文章《JSP注册登陆页教程》我们将基于这个工程制作一个简单的注册登陆页,并解决一些SSH框架实际应用中遇到的问题。
applicationConext.xml:
<?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>
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.0" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<!-- 中文乱码过滤器 Start -->
<!-- 在使用Tomcat服务器时,Struts的Form提交不支持中文,需要添加编码过滤器 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 中文乱码过滤器 End -->
<display-name />
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>