日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

SSH框架的简单搭建步骤

發(fā)布時(shí)間:2025/7/25 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SSH框架的简单搭建步骤 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

l MyEclipse6.5

l Tomcat5.5.26

l MySQL5.0

l?數(shù)據(jù)庫(kù)腳本程序

CREATE TABLE user (

?????? id int(11) NOT NULL auto_increment,

?????? username varchar(50) default NULL,

?????? password varchar(50) default NULL,

?????? PRIMARY KEY (id)

);

INSERT INTO user VALUES ('1', 'admin', 'admin');

環(huán)境的搭建這里就不寫了,估計(jì)大家應(yīng)該很熟悉,不會(huì)的可以上網(wǎng)看一下,有很多這樣的資料。

3.Go!讓我們開始創(chuàng)建工程

打開MyEclipse,需要注意的是這里應(yīng)該處于MyEclipse?Java?Enterprise視圖;新建一個(gè)Web Project,輸入適當(dāng)?shù)墓こ堂?#xff0c;這里我們輸入ssh,Finish即可。

確定之后MyEclipse會(huì)生成名為SSH的項(xiàng)目,其中生成的目錄結(jié)構(gòu)如下所示:

4.添加Struts1.2框架支持

在ssh工程上面右擊,在彈出的菜單中選擇MyEclipse -> Add Struts Capabilities…,添加Struts的支持。

在彈出的對(duì)話框中選擇Struts 1.2,修改Base package for new classes成所需的包名,其余保持原狀,Finish即可

完成后的結(jié)構(gòu)為:

5.添加Spring2.0框架支持

在ssh工程上面右擊,在彈出的菜單中選擇MyEclipse -> Add?spring?Capabilities…,添加Spring框架支持

由于Spring采取最小化庫(kù)發(fā)布的方式,使得Spring的庫(kù)文件彼此都是分離的,因而我們需要自己選擇需要的庫(kù),需要引用的如下圖:

選擇好后Next,在窗口中選擇Browse,選擇ssh工程下面的WEB-INF文件夾,然后Finsh。

6.配置數(shù)據(jù)源

在MyEclipse右上角選擇MyEclipse Database Explorer,打開數(shù)據(jù)庫(kù)管理視圖。

在左側(cè)的DB Browser點(diǎn)擊右鍵,選擇New…,打開Database Driver對(duì)話框。

在Database Driver對(duì)話框中按照如下配置選擇數(shù)據(jù)庫(kù)驅(qū)動(dòng)。首先選擇Driver Template,在這里我們選擇MySQL。Driver Name是以后配置時(shí)使用的驅(qū)動(dòng)名字,用以區(qū)分驅(qū)動(dòng),這里使用MySQL即可。然后根據(jù)實(shí)際情況填寫URL,User name和Password。點(diǎn)擊Add JARs添加數(shù)據(jù)庫(kù)驅(qū)動(dòng)文件。為方便配置,可以選擇Save password保存密碼。配置完畢后Finish即可。

7.Spring與hibernate的整合

當(dāng)配置完數(shù)據(jù)源后,就可以添加Hibernate支持了。切換到MyEclipse?Java?Enterprise視圖,在ssh工程上面右擊,在彈出的菜單中選擇MyEclipse -> Add Hibernate Capabilities…,添加Hibernate的支持。

我們選擇Hibernate3.2,全部按照默認(rèn)設(shè)置即可,然后點(diǎn)擊Next;

在對(duì)話框中選擇Spring configuration file,表示我們希望將Hibernate托管給Spring進(jìn)行管理,這是將Hibernate與Spring進(jìn)行整合的基礎(chǔ)。然后點(diǎn)擊Next;

在出現(xiàn)的對(duì)話框中選擇Existing Spring configuration file。因?yàn)槲覀円呀?jīng)添加了Spring的配置文件,所以這里選擇的是已存在的配置文件。MyEclipse會(huì)自動(dòng)找到存在的那個(gè)文件。然后在SessionFactory ID中輸入Hibernate的SessionFactory在Spring配置文件中的Bean ID的名字,這里我們輸入sessionFactory即可。然后點(diǎn)擊Next;

在出現(xiàn)的對(duì)話框中的Bean Id里面輸入數(shù)據(jù)源在Spring中的Bean ID的名字,這里我們輸入dataSource。然后在DB Driver里面選擇我們剛剛配置好的ssh,MyEclipse會(huì)將其余的信息自動(dòng)填寫到表格里面。然后點(diǎn)擊Next;

在出現(xiàn)的對(duì)話框中取消Create SessionFactory class。點(diǎn)擊Finish即可。

此時(shí)MyEclipse會(huì)自動(dòng)打開Spring的配置文件,文件內(nèi)容為:

此時(shí),切換到MyEclipse DataBase Explorer視圖,右鍵打開數(shù)據(jù)庫(kù)連接,在需要使用的數(shù)據(jù)表格上面點(diǎn)擊右鍵,選擇Hibernate Reverse Engineering...。這里我們使用剛剛建立在test數(shù)據(jù)庫(kù)中添加的user表。

??

在打開的對(duì)話框中修改Java src folder為我們建立的/ssh/src,這里需要選擇到src文件夾,并且需要填寫Java package,這是MyEclipse生成的類所在的包,我們將其取名為user。然后選擇Java Data Object,建立POJO類。然后選擇Java Data Access Object。其中,POJO類是數(shù)據(jù)庫(kù)表格所對(duì)應(yīng)的Java類,JDO類是MyEclipse自動(dòng)生成的對(duì)數(shù)據(jù)庫(kù)的一些操作。這里會(huì)封裝一些常用的操作,簡(jiǎn)化我們的編寫。填寫完成后點(diǎn)擊Next。

在出現(xiàn)的對(duì)話框中選擇ID Generator為native,然后點(diǎn)擊Finish即可。

此時(shí)ssh項(xiàng)目的目錄結(jié)構(gòu)如下所示。其中的User.Java是MyEclipse生成的使用面向?qū)ο蟮腏ava語言對(duì)數(shù)據(jù)庫(kù)表格進(jìn)行的抽象,User.hbm.xml是將數(shù)據(jù)庫(kù)表格中的字段和POJO類的屬性進(jìn)行映射的定義,UserDAO.java封裝了一些MyEclipse自動(dòng)生成的對(duì)數(shù)據(jù)庫(kù)的操作。

這時(shí)我們修改一下文件目錄,使之更好的組織。我們建立一個(gè)dao包,將DAO類與POJO類分開。然后我們?cè)趕truts包下面建立action和form包,用來管理Struts的Action和Form。為了將實(shí)現(xiàn)與接口進(jìn)行解耦,我們建議在dao包下面添加接口,然后建立dao.impl包,將實(shí)際的DAO類放在這里。DAO類是直接與數(shù)據(jù)庫(kù)打交道的類,為了對(duì)業(yè)務(wù)邏輯進(jìn)行封裝,我們將業(yè)務(wù)全部寫在service類里面,和dao一樣,我們先建立service包,里面添加業(yè)務(wù)接口,具體的實(shí)現(xiàn)放在service.impl里面。

將UserDAO.java移動(dòng)到dao的impl包下面,并在dao包下建立接口IUserDAO,內(nèi)容為:

?

package com.ssh.dao;

import java.util.List;

import com.ssh.user.User;

public interface IUserDAO {

??? public User findById(Integer id);

??? public List findByUsername(Object username);

??? public void save(User user);

}

在service中建立接口IUserService.java,在service中impl中建立UserService.java

?

IUserService.java

package com.ssh.service;

import com.ssh.user.User;

public interface IUserService {

?????? public User getUserById(Integer id);

?????? public User getUserByUsername(String username);

?????? public void addUser(User user);

}

??

?

UserService.java

package com.ssh.service.impl;

import java.util.List;

import com.ssh.dao.IUserDAO;

import com.ssh.service.IUserService;

import com.ssh.user.User;

public class UserService implements IUserService {

??? private IUserDAO userDAO;

??? public void addUser(User user) {

?????? userDAO.save(user);

??? }

??? public User getUserById(Integer id) {

?????? return userDAO.findById(id);

??? }

??? public User getUserByUsername(String username) {

?????? List list = userDAO.findByUsername(username);

?????? if (list.size() == 0) {

?????????? return null;

?????? } else {

?????????? return (User) list.get(0);

?????? }

??? }

??? public IUserDAO getUserDAO() {

?????? return userDAO;

??? }

??? public void setUserDAO(IUserDAO userDAO) {

?????? this.userDAO = userDAO;

??? }

}

??

此時(shí)的整體工程結(jié)構(gòu)為:

此時(shí)的applicationContext內(nèi)容需要配置bean內(nèi)容為:

?

<bean id="UserDAO" class="com.ssh.dao.impl.UserDAO">

??? <property name="sessionFactory">

?????? <ref bean="sessionFactory" />

??? </property>

</bean>

8.整合Struts和Spring

Struts和Spring整合方式其核心是讓Struts能夠訪問到交給Spring進(jìn)行托管的類,這個(gè)我在網(wǎng)上看到了一個(gè)方式,自我認(rèn)為很好,因此只要我們可以讓Struts從Spring獲得需要的類就可以了。 為了達(dá)到這個(gè)目標(biāo),我們創(chuàng)建一個(gè)類BaseAction:

?

package com.ssh.struts.action;

import org.springframework.web.context.WebApplicationContext;

import org.springframework.web.context.support.WebApplicationContextUtils;

import org.springframework.web.struts.ActionSupport;

public class BaseAction extends ActionSupport {

???????? protected Object getBean(String id) {

?????????????????? WebApplicationContext ctx = WebApplicationContextUtils

???????????????????????????????????? .getWebApplicationContext(this.servlet.getServletContext());

?????????????????? return ctx.getBean(id);

???????? }

}

為了讓W(xué)eb容器能夠初始化Spring,我們需要修改web.xml文件,增加以下內(nèi)容:

?

<context-param>

?????????????????? <param-name>contextConfigLocation</param-name>

?????????????????? <param-value>/WEB-INF/applicationContext.xml</param-value>

???????? </context-param>

???????? <servlet>

?????????????????? <servlet-name>SpringContextServlet</servlet-name>

?????????????????? <servlet-class>

??????????????????????????? org.springframework.web.context.ContextLoaderServlet

?????????????????? </servlet-class>

?????????????????? <load-on-startup>1</load-on-startup>

???????? </servlet>

9.啊,讓看看我們工作是否有效

通過上面的配置,我們已經(jīng)能夠讓這三個(gè)框架來協(xié)同作戰(zhàn)了,讓我們現(xiàn)在來測(cè)試一下。

首先創(chuàng)建基于Struts的JSP頁(yè)面。打開WEB-INF下面的struts-config.xml,單擊右鍵,選擇New -> Form, Action and JSP。

在彈出的對(duì)話框中添加User case,然后點(diǎn)擊Add生成Properties代碼。這會(huì)由MyEclipse自動(dòng)生成相應(yīng)的Form代碼。輸入完成后選擇JSP選項(xiàng)卡,選上Create JSP form,修改路徑,然后點(diǎn)擊Next。

在出現(xiàn)的對(duì)話框中修改Path,將Superclass更改為前面定義的BaseAction,然后將Input Source修改為自己需要的路徑。完成后Finish即可。

然后在struts-config.xml點(diǎn)擊右鍵,選擇New -> Forward,準(zhǔn)備創(chuàng)建一個(gè)ActionForward。

在彈出的對(duì)話框中,選擇Local Action Forward,通過Browser填寫Action Path,然后填寫Name和Path,完成后點(diǎn)擊Finish即可。

在LoginAction中添加如下代碼

?

public ActionForward execute(ActionMapping mapping, ActionForm form,

?????????? HttpServletRequest request, HttpServletResponse response) {

?????? LoginForm loginForm = (LoginForm) form;

?????? String username = loginForm.getUsername();

?????? String password = loginForm.getPassword();

?????? ActionForward forward = mapping.getInputForward();

?????? IUserService service = (IUserService) getBean("userService");

?????? User userFromDB = service.getUserByUsername(username);

?????? if (userFromDB.getPassword().equals(password)) {

?????????? forward = mapping.findForward("suc");

?????? }

?????? return forward;

??? }

login.jsp內(nèi)容

?

<%@ page language="java" pageEncoding="ISO-8859-1"%>

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>

<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>

<html>

??? <head>

?????? <title>JSP for LoginForm form</title>

??? </head>

??? <body>

?????? <html:form action="/login">

?????????? password : <html:password property="password"/><html:errors property="password"/><br/>

?????????? username : <html:text property="username"/><html:errors property="username"/><br/>

?????? ??? <html:submit/><html:cancel/>

?????? </html:form>

??? </body>

</html>

Ok,這時(shí)我們可以啟動(dòng)Tomcat進(jìn)行查看頁(yè)面了

10.黎明前的黑暗

上面的工作完成以后理論上應(yīng)該可用,但是當(dāng)你運(yùn)行的事后卻發(fā)現(xiàn)會(huì)有一個(gè)非常詭異的異常出現(xiàn)

這個(gè)問題本來面目是這樣,由于MyEclipse給我們做的事情太全面了,全面到spring和hibernate的包都是重復(fù)引用的。

其解決辦法就是干掉多余的包,在Tomcat 5.5\webapps\ssh\WEB-INF\lib下的asm-2.2.3.jar就可以了,在重啟Tomcat我們看看我們干了這么長(zhǎng)時(shí)間的成果吧,

真令人失望又失敗了,呵呵有如下異常:

哎,誰叫俺的腦子不好使能,忘了加入bean的初始化,在applicationContext.xml中加入如下內(nèi)容就可以了

?

<bean name="userService" class="com.ssh.service.impl.UserService">

??? <property name="userDAO">

?????? <ref bean="UserDAO" />

??? </property>

</bean>

歷經(jīng)千難萬阻,我們終于看到了一個(gè)想看的巨破巨簡(jiǎn)陋的界面,呵呵,就到這里吧,估計(jì)大家要瘋了。

轉(zhuǎn)載于:https://www.cnblogs.com/andriod2016/articles/6524914.html

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的SSH框架的简单搭建步骤的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。