愛睡覺的小耗子
          ——等待飄雪的日子...努力,努力,再努力!
          posts - 9,  comments - 33,  trackbacks - 0

             剛接觸struts不久,公司又要我學(xué)spring,然后把兩者結(jié)合起來用。于是我在網(wǎng)上找了很多的有關(guān)struts+spring的例子,但基本上都是struts+spring+hibernate的,而我們公司不用hibernate。后來,我就在struts的基本上,再學(xué)習(xí)怎么把spring加入的例子,然后根據(jù)它的原理重新編寫一本書上用struts實(shí)現(xiàn)的例子。

          一、運(yùn)行環(huán)境

          1、eclipse-SDK-3.2

          2、MyEclipse GA5.0

          3apache-tomcat-5.5.20

          4、Strust1.2

          5、Spring1.2

          二、該工程所需文件

          1、index.jsp

          2、login.jsp

          3reinput_blank.jsp

          4reinput_error.jsp

          5、success.jsp

          6LoginActio.java

          7、LoginForm.java

          8struts-config.xml

          9、applicationContext.xml

          三、步驟

          1、建工程

             創(chuàng)建一個名為Welcome_SSWeb Project

             File -> New -> Project -> Web Project , “next” Project Name”Welcome_SS” ,“finish”;

          2、導(dǎo)入struts

             選擇Welcome_SS工程,右鍵->Myeclipse (或選菜單欄上Myeclipse) -> Add struts Capabilities……,選擇struts1.2,然后finish;

          3、導(dǎo)入spring

             選擇Welcome_SS工程,右鍵->Myeclipse (或選菜單欄上Myeclipse) -> Add spring Capabilities……,在默認(rèn)基礎(chǔ)上,再選擇Spring 1.2 AOP Libraries - <MyEclipse-Library>Spring 1.2 Web Libraries - <MyEclipse-Library>,然后finish;

          (為什么要選這兩個,我也還沒有弄清楚)

          注:可能還要在lib文件夾下加幾個spring包,
          spring.jar,
          spring-1.2.6.jar,
          spring-aop.jar,
          spring-beans.jar,
          spring-context.jar,
          spring-core.jar,
          spring-orm.jar,
          spring-remoting.jar,
          spring-support.jar,
          spring-web.jar,
          spring-webmvc.jar

          4、編寫代碼(頁面及其所需的類)

          Ø         index.jsp

          選擇Welcome_SS工程下的WebRoot -> New -> JSP,取名為index.jsp,Finish;

           輸入以下代碼

           1 
           2 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
           3 <html>
           4   <head>   
           5     <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
           6   </head>  
           7   <body><div align="center"> 
           8     Welcome here!<br>.<href="login.jsp">sign in</a></div> 
           9   </body>
          10 </html>
          11 

          Ø         login.jsp

          選擇Welcome_SS工程下的WebRoot -> New -> JSP,取名為login.jsp,Finish;

           輸入以下代碼

           1 <%@ page contentType="text/html;charset=gb2312"%>
           2 <%@ page import="java.util.*,java.sql.*,java.text.*,java.io.*"%>
           3 
           4 <html>
           5 <body>
           6 <div align="center"><form name="form1" method="post" action="login.do"> 
           7 Welcome Here! <br><br>
           8 username:<input type="text" name="username"><br> 
           9 password:<input type="text" name="password"><br> 
          10 <input type="submit" name="submit1" value="submit">
          11 <input type="reset"  name="submit2" value="reset" onclick="deleteAllMessage()"><br>
          12 </form></div>
          13 </body>
          14 </html>

          Ø         reinput_blank.jsp

          選擇Welcome_SS工程下的WebRoot -> New -> JSP,取名為reinput_blank.jspFinish;

           輸入以下代碼

           1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
           2 
           3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
           4 <html>
           5     <body>
           6    <div align="center"><form name="form1" method="post" action="login.do"><font color="#ff0000">*用戶名和密碼都不能為空!</font><br><br>
           7     username:<input type="text" name="username" > <br>
           8     password:<input type="text" name="password" > <br>
           9     <input type="submit" name="submit1" value="submit">
          10     <input type="reset" name="submit2" value="reset" onclick="deleteAllMessage()">
          11     </form></div>
          12     </body> 
          13 </html>
          14 

          Ø         reinput_error.jsp

          選擇Welcome_SS工程下的WebRoot -> New -> JSP,取名為reinput_error.jspFinish;

           輸入以下代碼

           1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
           2 
           3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
           4 <html>
           5     <body>
           6    <div align="center"><form name="form1" method="post" action="login.do"><font color="#ff0000">*用戶名或密碼不正確!</font><br><br>
           7     username:<input type="text" name="username" > <br>
           8     password:<input type="text" name="password" > <br>
           9     <input type="submit" name="submit1" value="submit">
          10     <input type="reset" name="submit2" value="reset" onclick="deleteAllMessage()">
          11     </form></div>
          12     </body> 
          13 </html>
          14 

          Ø         success.jsp

          選擇Welcome_SS工程下的WebRoot -> New -> JSP,取名為success.jsp,Finish;

           輸入以下代碼
           1 <%@ page language="java"  pageEncoding="utf-8"%>
           2 
           3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
           4 <html>
           5   <head>   
           6     <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
           7   </head>
           8   <body>
           9     <%=request.getAttribute("message")%>!<br>
          10     .<href="login.jsp">sign in</a><br>
          11     .<href="index.jsp">sign out</a>  
          12   </body>
          13 </html>
          14 
          15 
          Ø         LoginAction.jsp

          選擇Welcome_SS工程下的src -> com -> yourcompany -> struts下,New->files :action,再在這個文件夾下New->Java,取名為LoginAction.java,Finish;

           輸入以下代碼

           1 
           2 package com.yourcompany.struts.action;
           3 
           4 import java.util.Locale;
           5 
           6 import javax.servlet.http.HttpServletRequest;
           7 import javax.servlet.http.HttpServletResponse;
           8 import javax.servlet.http.HttpSession;
           9 
          10 import org.apache.struts.action.Action;
          11 import org.apache.struts.action.ActionForm;
          12 import org.apache.struts.action.ActionForward;
          13 import org.apache.struts.action.ActionMapping;
          14 import org.apache.struts.util.MessageResources;
          15 
          16 import com.yourcompany.struts.form.LoginForm;
          17 
          18 public class LoginAction extends Action {
          19     
          20     private String message;
          21     
          22     public String getMessage() {
          23         return message;
          24     }
          25 
          26     public void setMessage(String message) {
          27         this.message = message;
          28     }    
          29     
          30     public ActionForward execute(ActionMapping mapping,
          31             ActionForm form,
          32             HttpServletRequest request,
          33             HttpServletResponse response)            
          34         LoginForm userform = (LoginForm) form;        
          35         if(userform.getUsername().equals("")||(userform.getPassword().equals(""))){
          36             return mapping.findForward("reinput_blank");
          37         }
          38         else if(userform.getUsername().equals("success")&&(userform.getPassword().equals("success"))){
          39             request.setAttribute("message",getMessage()+userform.getUsername());
          40             return mapping.findForward("success");
          41         }
          42             else{
          43                 return mapping.findForward("reinput_error");        
          44             }
          45         }
          46     }
          47 

          Ø         LoginForm.jsp

          選擇Welcome_SS工程下的src -> com -> yourcompany -> struts下,New->files :form,再在這個文件夾下New->Java,取名為LoginAction.java,Finish;

           輸入以下代碼

           1 
           2 package com.yourcompany.struts.form;
           3 
           4 import javax.servlet.http.HttpServletRequest;
           5 import org.apache.struts.action.ActionErrors;
           6 import org.apache.struts.action.ActionForm;
           7 import org.apache.struts.action.ActionMapping;
           8 
           9 public class LoginForm extends ActionForm {
          10 
          11     /** username property */
          12     private String username;
          13     private String password;
          14     public String getPassword() {
          15         return password;
          16     }
          17     public void setPassword(String password) {
          18         this.password = password;
          19     }
          20     public String getUsername() {
          21         return username;
          22     }
          23     public void setUsername(String username) {
          24         this.username = username;
          25     } 
          26 }

          5、根據(jù)前一步的代碼,進(jìn)行配置文件的編寫(struts-config.xmlapplicationContext.xml

          選擇Welcome_SS工程下的WebRoot -> WEB-INF -> struts-config.xml

          輸入下面代碼:

           1 <?xml version="1.0" encoding="UTF-8"?>
           2 <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
           3 
           4 <struts-config>
           5   <data-sources />
           6   <form-beans >
           7     <form-bean name="loginForm" type="com.yourcompany.struts.form.LoginForm" />
           8   </form-beans>
           9 
          10   <global-exceptions />
          11   <global-forwards />
          12   <action-mappings >
          13     <action
          14       attribute="loginForm"
          15       input="/login.jsp"
          16       name="loginForm"
          17       path="/login"
          18       scope="request"
          19       type="org.springframework.web.struts.DelegatingActionProxy">
          20       <forward name="success" path="/success.jsp" />
          21       <forward name="reinput_blank" path="/reinput_blank.jsp"/>
          22       <forward name="reinput_error" path="/reinput_error.jsp"/>
          23     </action>
          24 
          25   </action-mappings>
          26 
          27   <message-resources parameter="com.yourcompany.struts.ApplicationResources" />
          28   
          29   <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
          30 <set-property property="contextConfigLocation" value="/WEB-INF/classes/applicationContext.xml" />
          31 </plug-in>
          32   
          33 </struts-config>
          34 
          35 

          選擇Welcome_SS工程下的src -> applicationContext.xml

          輸入下面代碼:

           1 <?xml version="1.0" encoding="UTF-8"?>
           2 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
           3 <beans>
           4   <bean name="/login" class="com.yourcompany.struts.action.LoginAction">
           5   <property name="message">
           6   <value>Welcome_</value>
           7   </property>
           8   </bean>
           9 </beans>
          10 

          6、Web Service(這里即Tomcat)布署及啟動

          (全面的可以參照我的另一篇隨筆:Myeclipse中Tomcat的兩種布署方式)

          a.apache-tomcat-5.5.20"conf下,找到server.xml,打開,在</Host>前面添加一句

           <Context path="/wess" debug="0" docBase="C:\Documents and   Settings\tt\workspace\Welcome_SS\WebRoot" reloadable="true"></Context>

          注:C:\Documents and Settings\tt\workspace\Welcome_SS是該工程的存儲路徑。

          b.Myeclipse中的工具欄上找到一個像機(jī)箱似形狀的按鈕,點(diǎn)擊,則打開服務(wù)器Tomcat.

          7、運(yùn)行
          IE 瀏覽器里輸入http://localhost:8080/wess,即可運(yùn)行!成功登陸的條件是用戶名和密碼都為success的時候。

          posted on 2007-11-23 10:41 Harriet 閱讀(4318) 評論(9)  編輯  收藏 所屬分類: Struts+Spring

          FeedBack:
          # re: 自己編寫的一個用struts+spring實(shí)現(xiàn)的登陸實(shí)例
          2007-11-23 17:10 | 支持
          我運(yùn)行成功的,但是spring里面的message沒有注射成功,頁面顯示是nullsuccess! 樓主能幫忙看一下么?  回復(fù)  更多評論
            
          # re: 自己編寫的一個用struts+spring實(shí)現(xiàn)的登陸實(shí)例
          2007-11-23 17:20 | Harriet
          @支持
          你看一下你的LoginAction.jsp有沒有錯?LoginAction.jsp里定義的message就是用來從applicationContext.xml中的bean取參的。
          applicationContext.xml中的property name值要為message
          你都對了嗎  回復(fù)  更多評論
            
          # re: 自己編寫的一個用struts+spring實(shí)現(xiàn)的登陸實(shí)例
          2007-11-23 17:32 | 支持
          這些都對了,并且自己寫個類讀取applicationContext.xml的內(nèi)容也沒有問題
          public static void main(String args[]) {
          BeanFactory factory = new XmlBeanFactory(new ClassPathResource("Test/applicationContext.xml"));
          LoginAction login = (LoginAction) factory.getBean("login");
          System.out.println(login.getMessage() + "");
          }
          以前寫的spring都是用main運(yùn)行的,從來沒有在網(wǎng)頁上運(yùn)行過,這回有問題了  回復(fù)  更多評論
            
          # re: 自己編寫的一個用struts+spring實(shí)現(xiàn)的登陸實(shí)例
          2007-11-23 17:43 | Harriet
          @支持
          如果你是原封不動地copy代碼過去的話,應(yīng)該是沒問題的。
          如果還有改的話,呵呵,我是struts和spring的初學(xué)者,可能有點(diǎn)難度哦~一起探討吧  回復(fù)  更多評論
            
          # re: 自己編寫的一個用struts+spring實(shí)現(xiàn)的登陸實(shí)例
          2008-03-24 09:18 | 石雨亭
          http://localhost:8080/wess/login
          HTTP Status 404 - /wess/login

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

          type Status report

          message /wess/login

          description The requested resource (/wess/login) is not available.


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

          Apache Tomcat/5.5.17  回復(fù)  更多評論
            
          # re: 自己編寫的一個用struts+spring實(shí)現(xiàn)的登陸實(shí)例
          2008-03-24 11:56 | 石雨亭
          aaaaaa  回復(fù)  更多評論
            
          # re: 自己編寫的一個用struts+spring實(shí)現(xiàn)的登陸實(shí)例
          2008-03-24 11:59 | 石雨亭
          有沒有原文件啊!我這里怎么調(diào)都是錯的.555~~~~~~~~~`404錯誤,500錯誤!  回復(fù)  更多評論
            
          # re: 自己編寫的一個用struts+spring實(shí)現(xiàn)的登陸實(shí)例[未登錄]
          2008-03-25 16:05 | 1
          樓主不覺得Spring沒有什么用嗎?  回復(fù)  更多評論
            
          # re: 自己編寫的一個用struts+spring實(shí)現(xiàn)的登陸實(shí)例
          2008-09-06 07:08 | msn:gmingsoft04@hotmail.com
          <input type="reset" name="submit2" value="reset" onclick="deleteAllMessage()">
          請問下:onclick="deleteAllMessage(),這個函數(shù)在哪里定義的?
          好象你的原意是寫個JavaScript,來清空輸入攔吧  回復(fù)  更多評論
            

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           

          公 告

          心要沉下去,思緒才會浮上來,水平也就上來了


          <2007年11月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章檔案

          相冊

          搜索

          •  

          積分與排名

          • 積分 - 86251
          • 排名 - 669

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 安平县| 嘉兴市| 明星| 黔西| 民和| 安新县| 抚松县| 大关县| 江孜县| 达孜县| 桂平市| 团风县| 嘉祥县| 朝阳县| 徐水县| 遂溪县| 登封市| 禄劝| 夏邑县| 大关县| 确山县| 兴化市| 宜都市| 黔西县| 报价| 方山县| 永顺县| 临夏县| 三明市| 临沭县| 丰都县| 海南省| 柘荣县| 商河县| 赤壁市| 敦化市| 乌兰浩特市| 辰溪县| 宁武县| 双江| 许昌市|