一竿殘照.金棣 @ blogJava.net

          腳往哪兒,路往哪兒

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            5 Posts :: 0 Stories :: 8 Comments :: 0 Trackbacks

             這篇文章講述搭建筆者(一個(gè)門外漢)學(xué)習(xí)webwork的第一步-----搭建webwork環(huán)境,并測(cè)試第一個(gè)程序.

          [過程]
             1.安裝j2sdk.略
             2.安裝tomcat,略
             3.解壓webwork2.1.7,略
             
             
             4.為tomcat安裝webwork支持
                拷貝webwork2.1.7.jar和${webwork_home}\core\*.jar到${tomcat_home}\sharedlib目錄中.
             5.撰寫login.jsp,loginsucess.jsp,loginfailed.jsp,LoginAction.java.
                我們登錄login.jsp,輸入用戶名,post之后,請(qǐng)求將提交給LoginAction處理,如果成功則返回login-success.jsp,否則返回loginfailed.jsp
                我使用的eclipse3.0.1,并安裝了eclipseWork插件(不過整個(gè)過程)沒有合理的使用它,郁悶),
                login.jsp

          <html>
          <head>
          <title>WebWork Tutorial - Lesson 3 - Example 1</title>
          </head>

          <body>

          <p>
          Click the [post] button below to Login.
          </p>

          <form action="login.action" method="post">
          <p>user:<input type="text" name="user" value="" /></p>
          <p>password:<input type="password" name="password" value="" /></p>
          <p><input type="submit" value="post" /></p>
          </form>

          </body>
          </html>

          login-success.jsp


          <%@ taglib uri="webwork" prefix="ww" %> 
          <html>
           
          <head>
           
          <title>welcome to salary</title>
           
          </head>
           
          <body>
           

          <font color="green">


          <ww:property value="user" /> has logon [SalaryQueryModule]

          </font>

          <br>



          </body> 
          </html>

          login-failed.jsp


          <%@ taglib uri="webwork" prefix="ww" %> 
          <html>
           
          <head>
           
          <title>failed login</title>
           
          </head>
           
          <body>
           
          <font color="red">

          error login by [
          <ww:property value="user" /> ],invalid user or pwd
          </font>

          <br>
          </body> 
          </html>

          web.xml,位于web-inf目錄下

          <?xml version="1.0" encoding="UTF-8"?>
          <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
              xmlns:xsi
          ="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation
          ="http://java.sun.com/xml/ns/j2ee 
              http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
          >


              
          <display-name>My WebWork Application</display-name>
              
          <servlet>
                  
          <servlet-name>webwork</servlet-name>
                  
          <servlet-class>
                      com.opensymphony.webwork.dispatcher.ServletDispatcher
                  
          </servlet-class>

                  
          <load-on-startup>1</load-on-startup>
              
          </servlet>
              
          <servlet-mapping>
                  
          <servlet-name>webwork</servlet-name>
                  
          <url-pattern>*.action</url-pattern>
              
          </servlet-mapping>
              
              
          <taglib>
                  
          <taglib-uri>webwork</taglib-uri>
                  
          <taglib-location>
                      /WEB-INF/lib/webwork-2.1.7.jar
                  
          </taglib-location>
              
          </taglib>
          </web-app>

          xwork.xml位于web-inf\classes目錄下

          <!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN"
          "http://www.opensymphony.com/xwork/xwork-1.0.dtd"
          >


          <xwork>
              
          <!-- Include webwork defaults (from WebWork JAR). -->
              
          <include file="webwork-default.xml" />
              
              
          <!-- Configuration for the default package. -->
              
          <package name="default" extends="webwork-default">
                  
          <!-- Default interceptor stack. --> 
                  
          <default-interceptor-ref name="defaultStack" />
           
                  
                  
          <!-- Action: Lesson 03: HelloAction. -->

                  
          <action name="login" class="com.cdpgc.salary.LoginAction">
                      
          <result name="failed" type="dispatcher">login-failed.jsp</result>
                      
          <result name="success" type="dispatcher">login-success.jsp</result>
                  
          </action>
              
          </package>
          </xwork>

          LoginAction.java

           1/*
           2 * Created on 2005-8-4
           3
           *
           4
           * TODO To change the template for this generated file go to
           5
           * Window - Preferences - Java - Code Style - Code Templates
           6 */

           7package com.cdpgc.salary;
           8

           9
          import com.opensymphony.xwork.ActionSupport;
          10

          11
          /*
          12
           * @author codemyth
          13
           * 
          14
           * TODO To change the template for this generated type comment go to Window -
          15
           * Preferences - Java - Code Style - Code Templates
          16 */

          17public class LoginAction extends ActionSupport {
          18

          19
              String user;
          20
              String password;
          21

          22    
          /*
          23     * (non-Javadoc)
          24
               * 
          25
               * @see com.opensymphony.xwork.Action#execute()
          26     */

          27    public String execute() throws Exception {
          28        // TODO verify user-password

          29        if (user.equals("bbb"))
          30            return
           super.SUCCESS;
          31        else

          32            return "failed";
          33    }

          34    /**
          35
               * @return Returns the user.
          36     */

          37    public String getUser() {
          38        return
           user;
          39    }
           
          40    
          /**
          41
               * @param user
          42
               *            The user to set.
          43     */

          44    public void setUser(String user) {
          45        this.user =
           user;
          46    }

          47    /**
          48
               * @return Returns the password.
          49     */

          50    public String getPassword() {
          51        return
           password;
          52    }

          53    /**
          54
               * @param password
          55
               *            The password to set.
          56     */

          57    public void setPassword(String password) {
          58        this.password =
           password;
          59    }

          60}

          61

          6.發(fā)布代碼
             我們可以直接制定tomcat到開發(fā)環(huán)境中讀取,在${tomcat_home}\conf\catalina\localhost   目錄新建一個(gè)文件example.xml,包含以下內(nèi)容

          <Context path="/salary" docBase="D:/tools/Develop/ide/eclipse-SDK-3.0.2-win32/eclipse/workspace/salary/webroot" unpackWAR="True" /> 

          這是一個(gè)tomcat支持的xml片斷 Fragment,它的名稱無所謂,tomcat會(huì)讀取它并將該docbase指定的目錄作為名叫salary的虛擬目錄.

          整個(gè)過程是這樣的
          1.login.jsp中點(diǎn)擊submit按紐后,請(qǐng)求將被發(fā)送到web容器的login.action,
          2.web容器檢索web.xml,通過

          <servlet-mapping>
                  
          <servlet-name>webwork</servlet-name>
                  
          <url-pattern>*.action</url-pattern>
              
          </servlet-mapping>

          這一段得到webwork關(guān)鍵字,再通過

              <servlet>
                  
          <servlet-name>webwork</servlet-name>
                  
          <servlet-class>
                      com.opensymphony.webwork.dispatcher.ServletDispatcher
                  
          </servlet-class>

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

          將請(qǐng)求轉(zhuǎn)發(fā)給com.opensymphony.webwork.dispatcher.ServletDispatcher類來處理,這個(gè)類會(huì)讀取xwork.xml文件
          3.通過和最初login.jsp提交的"login.action"中去掉web.xml中的定義的".action", 得到"login",在xwork.xml中的

                  <action name="login" class="com.cdpgc.salary.LoginAction">
                      
          <result name="failed" type="dispatcher">login-failed.jsp</result>
                      
          <result name="success" type="dispatcher">login-success.jsp</result>
                  
          </action>

          找到"login"的定義,并尋找com.cdpgc.salary.LoginAction來處理這個(gè)請(qǐng)求,當(dāng)該對(duì)象的execute()方法返回
          <result>節(jié)點(diǎn)"name"屬性定義的字符串的時(shí)候,將結(jié)果使用某個(gè)jsp來響應(yīng).這里是
          success->login-success.jsp
          failed->login-failed.jsp
          4.兩個(gè)jsp中使用了

          <ww:property value="user" />

          來訪問處理類(com.cdpgc.salary.LoginAction)的屬性,它依賴于

          <%@ taglib uri="webwork" prefix="ww" %>

          定義的標(biāo)簽庫,而這個(gè)標(biāo)簽庫定義中的uri依賴于web.xml中的

              <taglib>
                  
          <taglib-uri>webwork</taglib-uri>
                  
          <taglib-location>
                      /WEB-INF/lib/webwork-2.1.7.jar
                  
          </taglib-location>
              
          </taglib>

          定義的taglib-uri名稱


          另外,在LoginAction.java中webwork會(huì)將發(fā)出請(qǐng)求的form中的值--------在<input type='xxx' name='xxx'>中的值
          填入到自己的屬性中(如果有同名屬性的化),這樣我們可以獲得請(qǐng)求參數(shù).在處理完畢后,同樣可以設(shè)置它,
          而在結(jié)果jsp中,webwork又會(huì)將該值提供給jsp訪問,當(dāng)然還是基于名稱相同.

          在整個(gè)過程中,我沒有使用eclipseWork插件的任何功能,原因是---------我不會(huì)用,曾經(jīng)在項(xiàng)目屬性中設(shè)置過xwork.xml是哪個(gè)xml,但是現(xiàn)在設(shè)置不了了,不知道為什么,并且也不知道如何提高開發(fā)效率,希望有人能幫幫我.謝謝.




                   

          posted on 2005-08-06 08:15 一竿殘照.金棣 @ blogJava.net 閱讀(2180) 評(píng)論(3)  編輯  收藏 所屬分類: webworktomcat

          Feedback

          # re: tomcat+webwok學(xué)習(xí)筆記.配置篇 2005-08-08 00:10 一竿殘照.金棣 @ blogJava.net
          碰到這樣的異常
          Unable to initialize TldLocationsCache: null
          并且刷新頁面有時(shí)候正常,有時(shí)候不正常,看來應(yīng)該tld緩存造成某些時(shí)候正常的現(xiàn)象


          原因是在jsp頁面中使用了標(biāo)簽庫,而web容器未找到指定的標(biāo)簽庫

          將tld文件或jar文件部署到web.xml中指定的位置后,問題解決,
            回復(fù)  更多評(píng)論
            

          # re: tomcat+webwok學(xué)習(xí)筆記.配置篇 2005-08-12 09:51 ken
          偶只使用過eclips 里面的vss插件,hoho
            回復(fù)  更多評(píng)論
            

          # re: tomcat+webwok學(xué)習(xí)筆記.配置篇[未登錄] 2008-11-11 10:23 redcoatjk
          @一竿殘照.金棣 @ blogJava.net
          說的不錯(cuò)..  回復(fù)  更多評(píng)論
            


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 芷江| 洛浦县| 耒阳市| 班戈县| 通州市| 阳新县| 云南省| 彩票| 大安市| 丰县| 屏边| 治多县| 灌阳县| 宁化县| 崇义县| 石景山区| 酉阳| 綦江县| 黑龙江省| 丹凤县| 奉新县| 四川省| 永寿县| 辽源市| 漳州市| 神木县| 西盟| 依兰县| 五常市| 铁力市| 万安县| 蚌埠市| 宝应县| 依兰县| 吉林市| 且末县| 高台县| 三台县| 永修县| 穆棱市| 紫云|