SSH框架搭建 詳細圖文教程
轉載請標明原文地址
一、什麼是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
搭建SSH最好用的開發工具了,本文中用的是MyEclipse 10。
3.MySQL
完整的動態網站需要一個數據庫。注意安裝時設定的密碼千萬別忘了。本文中用的是MySQL 5.5.53
4.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表。把以下程式碼貼上到彈出框中,點選“執行”按鈕。
1 2 3 4 5 6 7 8 9 10 |
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>