轉載請標明原文地址: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>