锘??xml version="1.0" encoding="utf-8" standalone="yes"?>少妇精品在线,中文字幕视频一区,国产精品蜜月aⅴ在线http://www.aygfsteel.com/xiaohu-3983/灝忚檸鐨勫皬灝忔敹闆?/description>zh-cnWed, 18 Jun 2025 09:46:06 GMTWed, 18 Jun 2025 09:46:06 GMT60struts涓巗pring鏁村悎錛堝緢涔呬互鍓嶏級http://www.aygfsteel.com/xiaohu-3983/archive/2007/12/15/167954.html灝忚檸铏?/dc:creator>灝忚檸铏?/author>Sat, 15 Dec 2007 07:25:00 GMThttp://www.aygfsteel.com/xiaohu-3983/archive/2007/12/15/167954.htmlhttp://www.aygfsteel.com/xiaohu-3983/comments/167954.htmlhttp://www.aygfsteel.com/xiaohu-3983/archive/2007/12/15/167954.html#Feedback0http://www.aygfsteel.com/xiaohu-3983/comments/commentRss/167954.htmlhttp://www.aygfsteel.com/xiaohu-3983/services/trackbacks/167954.htmlSpring 鍜?Struts鐨勬暣鍚堜嬌鐢?
Spring 鍜?Struts鐨勬暣鍚堟湁3縐嶆柟寮忥細
1錛氶氳繃Spring鐨凙ctionSupport綾?
2錛氶氳繃Spring鐨凞elegatingRequestProcessor綾?
3錛氶氳繃Spring鐨凞elegatingActionProxy綾?


a: 閫氳繃Spring鐨凙ctionSupport綾?(瀵瑰簲宸ョ▼錛歋pringStruts)
鏂規硶鏄疉ction綾諱笉鍐嶇戶鎵縎truts鐨凙ction鑰屾槸緇ф壙Spring鎻愪緵鐨凙ctionSupport錛?
鐒跺悗鍦ˋction涓幏寰桽pring鐨凙pplicationContext.
緙虹偣鏄疉ction鍜孲pring鑰﹀悎鍦ㄤ竴璧鳳紝鑰屼笖Action涓嶅湪Spring鎺у埗涔嬪唴銆備篃涓嶈兘澶勭悊澶氫釜鍔ㄤ綔鍦ㄤ竴涓狝ction涓殑鎯呭喌銆?

姝ラ錛?
1錛氬姞鍏pring.
2: 鍔犲叆struts
3錛氫慨鏀箂truts閰嶇疆鏂囦歡struts-config.xml鏂囦歡娉ㄥ唽ContextLoaderPlugIn鎻掍歡銆?
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/>
</plug-in>
4:鍒涘緩Action鏃訛細
(1) 澶勶紝閫氳繃浠?Spring 鐨?ActionSupport 綾昏屼笉鏄?Struts 鐨?Action 綾昏繘琛屾墿灞曪紝鍒涘緩浜嗕竴涓柊鐨?Action銆?
(2) 澶勶紝浣跨敤 getWebApplicationContext() 鏂規硶鑾峰緱涓涓?ApplicationContext銆備負浜嗚幏寰椾笟鍔℃湇鍔★紝鎴戜嬌鐢ㄥ湪
(3) 澶?鏌ユ壘涓涓?Spring bean銆?
//(1)
public class LoginAction extends ActionSupport {

public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;
// TODO Auto-generated method stub
//(2)
ApplicationContext ac = this.getWebApplicationContext();//鑾峰緱ApplicationContext
//(3)
LoginInterface li = (LoginInterface)ac.getBean("loginInterface");//鑾峰緱Bean
boolean you = li.checkUser(loginForm.getName(),loginForm.getPassword());
if(you){
request.setAttribute("msg","welcome");
return mapping.findForward("show");
}
else{
request.setAttribute("msg","failed");
return mapping.findForward("show");
}
}

}
applicationContext.xml:
<beans>
<bean id="loginInterface" class="spring.LoginImp"/>

</beans>

b: 閫氳繃Spring鐨凞elegatingRequestProcessor綾?(瀵瑰簲宸ョ▼錛歋pringStruts2)
鏂規硶鏄疭pring鐨凞elegatingRequestProcessor浠f浛Struts鐨凴equstProcessor錛?
鎶奡truts鐨凙ction緗簬Spring鐨勭殑鎺у埗涔嬩笅
緙虹偣鏄紑鍙戜漢鍛樺彲浠ヨ嚜宸卞畾涔塕equestProcessor榪欐牱灝遍渶瑕佹墜宸ユ暣鍚圫truts鍜孲pring銆?

姝ラ錛?
1錛氬姞鍏pring.
2: 鍔犲叆struts
3錛氫慨鏀箂truts閰嶇疆鏂囦歡struts-config.xml鏂囦歡娉ㄥ唽ContextLoaderPlugIn鎻掍歡銆?
<struts-config>
<form-beans >
<form-bean name="loginForm" type="com.yourcompany.struts.form.LoginForm" />
</form-beans>

<action-mappings >
<action
attribute="loginForm"
input="/login.jsp"
name="loginForm"
path="/login"
scope="request"
type="com.yourcompany.struts.action.LogAction">
<forward name="show" path="/show.jsp" />
</action>

</action-mappings>
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"></controller>
<message-resources parameter="com.yourcompany.struts.ApplicationResources" />
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/>
</plug-in>
</struts-config>
4:鍒涘緩Action鏃訛細
public class LogAction extends Action {
private LoginInterface logInterface;

public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;
// TODO Auto-generated method stub
boolean you = logInterface.checkUser(loginForm.getName(),loginForm.getPassword());
if(you){
request.setAttribute("msg","welcome");
return mapping.findForward("show");
}
else{
request.setAttribute("msg","failed");
return mapping.findForward("show");
}
}
public void setLogInterface(LoginInterface logInterface) {
this.logInterface = logInterface;
}

}

applicationContext.xml:
<beans>
<bean id="loginInterface" class="spring.LoginImp"/>
<!--瑕佸拰Struts鐨勮礬寰勫搴?->
<bean name="/login" class="com.yourcompany.struts.action.LogAction">
<property name="logInterface">
<ref bean="loginInterface"/>
</property>
</bean>
</beans>
c: 閫氳繃Spring鐨凞elegatingActionProxy綾?(瀵瑰簲宸ョ▼錛歋pringStruts3)
鏂規硶鏄疭pring鐨凞elegatingActionProxy浠f浛Struts鐨凙ction錛?
鎶奡truts鐨凙ction緗簬Spring鐨勭殑鎺у埗涔嬩笅
榪欑鏂瑰紡鏈鐏墊椿寮哄ぇ銆傚茍涓斿畠鍙互鍒╃敤 Spring AOP 鐗規х殑浼樼偣銆?

姝ラ錛?
1錛氬姞鍏pring.
2: 鍔犲叆struts
3錛氫慨鏀箂truts閰嶇疆鏂囦歡struts-config.xml鏂囦歡娉ㄥ唽ContextLoaderPlugIn鎻掍歡銆?
<struts-config>
<data-sources />
<form-beans >
<form-bean name="loginForm" type="com.yourcompany.struts.form.LoginForm" />
</form-beans>
<action-mappings >
<action
attribute="loginForm"
input="/form/login.jsp"
name="loginForm"
path="/login"
scope="request"
type="org.springframework.web.struts.DelegatingActionProxy">
<forward name="show" path="/show.jsp" />
</action>
</action-mappings>
<message-resources parameter="com.yourcompany.struts.ApplicationResources" />
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/>
</plug-in>
</struts-config>

4:鍒涘緩Action鏃訛細
public class LogAction extends Action {
private LoginInterface logInterface;

public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;
// TODO Auto-generated method stub
boolean you = logInterface.checkUser(loginForm.getName(),loginForm.getPassword());
if(you){
request.setAttribute("msg","welcome");
return mapping.findForward("show");
}
else{
request.setAttribute("msg","failed");
return mapping.findForward("show");
}
}
public void setLogInterface(LoginInterface logInterface) {
this.logInterface = logInterface;
}

}

applicationContext.xml:
<beans>
<bean id="loginInterface" class="spring.LoginImp"/>
<!--瑕佸拰Struts鐨勮礬寰勫搴?->
<bean name="/login" class="com.yourcompany.struts.action.LogAction">
<property name="logInterface">
<ref bean="loginInterface"/>
</property>
</bean>
</beans>


-----------------------------------------------------------------------------------------------

Struts(1.1) + Spring + Hibernate(2.1)鐨勬暣鍚堜嬌鐢?



寮鍙戝伐鍏?Eclipse3.1,MyEclipse4.0 ,Tomcat5.0.28,mysql-4.0.18


寮鍙戞楠わ細
1錛氬垱寤簑eb projectSSHlogin 鍔犲叆struts1.1

鍒涘緩loginForm閫夋嫨DynaValidatorForm錛屽姞鍏assword錛寀sername錛屽垱寤簀sp鏂囦歡鎵撲笂閽╋紝灝嗚礬寰勬敼涓?login.jsp錛岀劧鍚庝笅涓姝ワ紝鏀筁oginAction鐨処nput source鏀逛負/login.jsp錛屽姞鍏?<forward name="ok" path="ok.jsp" />鐐瑰嚮瀹屾垚

瀹屾垚鍚庝慨鏀箂truts-config.xml鏂囦歡鍔犲叆
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
</plug-in>
鎷瘋礉validator-rules.xml鍜寁alidation.xml鍒癢EB-INF鐩綍涓?鍦╲alidation.xml鏂囦歡涓姞鍏?
<form-validation>
<formset>
<form name="loginForm">
<field property="username" depends="required">
<arg0 key="prompt.username" />
</field>
<field property="password" depends="required">
<arg0 key="prompt.password" />
</field>
</form>
</formset>
</form-validation>
validator-rules.xml鏂囦歡鐩存帴鑰冧竴涓氨琛屻?
緙栬緫璧勬簮鏂囦歡“ApplicationResources.properties”
澧炲姞浠ヤ笅鍐呭
prompt.username=User Name
prompt.password=User Password
errors.required={0} is required.


淇敼LoginAction.java鏂囦歡鐨別xecute鏂規硶錛屽唴瀹瑰涓?
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
DynaValidatorForm loginForm = (DynaValidatorForm) form;
String username=loginForm.getString("username");
String password=loginForm.getString("password");
if(username.equals("test")||password.equals("test")){
return mapping.findForward("indexGo");
}else{
return mapping.getInputForward();
}
}
濂戒簡錛岀幇鍦ㄥ彲浠ュ惎鍔═omcat榪涜嫻嬭瘯浜嗗鏋滀笉杈撳叆浠諱綍鏁版嵁鑰岀洿鎺ユ彁浜よ〃鍗曠殑璇濆氨鍙互鐪嬪埌鏁堟灉浜嗐?

濂戒簡錛屽鏋滄病鏈変粈涔堥棶棰樼殑璇濆氨緇х畫寰涓嬬湅鍚э紝濡傛灉鏈夐棶棰樼殑璇濆氨寰楀線涓婄湅浜哵_^

2錛氬姞鍏pring妗嗘灦
鍦ㄨ繖閲屾垜灝哠pring鎵鏈夌殑鍖呭叏閮ㄥ姞杞借繘鍘伙紝鍥犱負鎴戣繕涓嶇煡閬撳叿浣撶敤鍒板摢浜涚被錛屽叏閮ㄥ姞榪涘幓鏂逛究鐐?

鍗曢夋閫夌浜屼釜錛岃繖鏍風殑璇濇墍鏈夌殑綾誨簱鍜屾爣絳劇瓑閮藉皢鎷瘋礉鍒伴」鐩腑鍘伙紝榪欐牱鏂逛究浠ュ悗鐨勫竷緗?
涓嬩竴姝ュ悗鏄垱寤洪厤緗枃浠訛紝灝嗘枃浠舵斁鍒?#8220;WebRoot/WEB-INF”鐩綍涓嬶紝鏂囦歡鍚嶇О涓?#8220;applicationContext.xml”


閰嶇疆struts-config.xml鏂囦歡錛屾坊鍔狅紙spring錛夌殑鎻掍歡

<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />
</plug-in>


淇敼LoginAction閰嶇疆

鍘燂細
<action
attribute="loginForm"
input="/login.jsp"
name="loginForm"
path="/login"
scope="request"
validate="true"
type="com.test.struts.action.LoginAction" >
<forward name="ok" path="ok.jsp" />
</action>

</action-mappings>

鏀逛負錛?
<action
attribute="loginForm"
input="/login.jsp"
name="loginForm"
path="/login"
scope="request"
validate="true"
type="org.springframework.web.struts.DelegatingActionProxy">
<forward name="ok" path="ok.jsp" />
</action>
</action-mappings>


榪欓噷灝嗕嬌鐢╯pring鐨勪唬鐞嗗櫒鏉ュAction榪涜鎺у埗

褰撴彁浜ゅ埌/login.do鏄皢鎺у埗鏉冧氦緇欎簡spring錛岀劧鍚庣敱spring鏉ュ喅瀹氭槸鍚﹁漿鍥炲埌struts鐨凙ction

鐜板湪鏉ラ厤緗畇pring

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
<bean name="/login" class="com.test.struts.action.LoginAction" singleton="false"></bean>
</beans>

濂戒簡錛岀幇鍦ㄥ彲浠ュ惎鍔═omcat榪涜嫻嬭瘯浜嗗鏋滄病鏈変粈涔堥棶棰樼殑璇濆氨緇х畫寰涓嬬湅鍚э紝濡傛灉鏈夐棶棰樼殑璇濆氨寰楀線涓婄湅浜哵_^


3錛氬垱寤篐ibernate妗嗘灦 hiberante2.1

寤虹珛鏁版嵁搴撳湪 榪欓噷鎴戜嬌鐢ㄧ殑鏄痬ysql4.1.18

CREATE TABLE `user` (
`ID` int(11) NOT NULL auto_increment,
`USERNAME` varchar(50) NOT NULL default '',
`PASSWORD` varchar(50) NOT NULL default '',
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

娣誨姞璁板綍 insert into user (USERNAME,PASSWORD) values ('test','test')

鍦ㄩ厤緗晫闈腑閰嶇疆鏁版嵁搴撶殑榪炴帴閮ㄤ喚錛岄噸瑕佺殑鏄偣鍑婚摼鎺ュ皢jdbc椹卞姩鎷瘋礉鍒發ib鐩綍涓?
浣跨敤MyEclipse鐨勬暟鎹瓺atabase Explorer宸ュ叿鍒涘緩User.hmb.xml銆丄bstractUser.java銆乁ser.java鏄犲皠鏂囦歡

鍒涘緩UserDAO.java銆乁serDAOImp.java
UserDAO.java錛?

public interface UserDAO {

public abstract boolean isValidUser(String username, String password);

}

UserDAOImp.java錛?

import java.util.List;

import org.springframework.orm.hibernate.support.HibernateDaoSupport;

public class UserDAOImp extends HibernateDaoSupport implements UserDAO {

private static String hql = "from User u where u.username=? and password=?";

public boolean isValidUser(String username, String password) {

String[] userlist=new String[2];
userlist[0]=username;
userlist[1]=password;

List userList = this.getHibernateTemplate().find(hql,userlist);

if (userList.size() > 0) {

return true;

}

return false;

}

}



淇敼LoginAction.java鏂囦歡錛屼嬌鐢╱serDao鐨勬柟娉曟潵榪涜鐢ㄦ埛楠岃瘉
package com.test.struts.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.validator.DynaValidatorForm;

import com.test.UserDAO;

public class LoginAction extends Action {

private UserDAO userDAO;

public UserDAO getUserDAO() {
return userDAO;
}

public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
DynaValidatorForm loginForm = (DynaValidatorForm) form;
// TODO Auto-generated method stub
String username = (String) loginForm.get("username");
String password = (String) loginForm.get("password");
loginForm.set("password", null);
if (userDAO.isValidUser(username,password)) {
return mapping.findForward("ok");
} else {
return mapping.getInputForward();
}
}
}


鐜板湪鍓╀笅鏈鍚庣殑spring閰嶇疆浜?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/newdb</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value></value>
</property>
</bean>

<!-- 閰嶇疆sessionFactory, 娉ㄦ剰榪欓噷寮曞叆鐨勫寘鐨勪笉鍚?-->
<bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
<property name="dataSource">
<ref local="dataSource" />
</property>
<property name="mappingResources">
<list>
<value>hibernate/po/St.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>

<bean id="transactionManager" class="org.springframework.orm.hibernate.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>

<bean id="userDAO" class="com.test.UserDAOImp">
<property name="sessionFactory">
<ref local="sessionFactory" />
</property>
</bean>

<bean id="userDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="target">
<ref local="userDAO" />
</property>
<property name="transactionAttributes">
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="is*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>

<bean name="/login" class="com.test.struts.action.LoginAction" singleton="false">
<property name="userDAO">
<ref bean="userDAOProxy" />
</property>
</bean>
</beans>
!!!
閰嶇疆sessionFactory涔熷彲浠ュ啓鎴愶細

<bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
<property name="configLocation">
<value>hibernate.cfg.xml</value>
</property>
</bean>

鐜板湪鍙互榪涜嫻嬭瘯浜嗭紒


娉ㄦ剰瑕佹妸spring-hibernate.jar鎴栬呮妸spring.jar鍔犲埌宸ョ▼lib閲孾b][/b]



]]>
主站蜘蛛池模板: 弋阳县| 花莲市| 翼城县| 客服| 阜康市| 民和| 普陀区| 称多县| 金山区| 措美县| 名山县| 宜君县| 台前县| 天门市| 措勤县| 旬阳县| 遂宁市| 德保县| 桓台县| 唐河县| 连云港市| 中阳县| 盐池县| 桂平市| 潢川县| 阜宁县| 西昌市| 张北县| 布尔津县| 广安市| 包头市| 青川县| 西乌珠穆沁旗| 乌拉特中旗| 普定县| 成都市| 门头沟区| 塘沽区| 永定县| 清远市| 久治县|