gdufo

           

          修改root用戶的密碼

           

          mysql> update mysql.user set password=PASSWORD('afasdf'where User='root';
          mysql
          > flush privileges
          mysql
          > quit

          posted @ 2008-07-04 13:06 gdufo| 編輯 收藏

          設(shè)置Mysql 外部連接

             

          mysql> select host, user, password from user;
          +-----------+------+------------------+
          | host      | user | password         |
          +-----------+------+------------------+
          | localhost | root | 5819aa890aa5c238 |
          | et-erp    | root | 5819aa890aa5c238 |
          | localhost |      |                  |
          | et-erp    |      |                  |
          | %         | root | 5819aa890aa5c238 |
          +-----------+------+------------------+

          >INSERT INTO `user` ( `Host` , `User` , `Password` , `Select_priv` , `Insert_priv` , `Update_priv` , `Delete_priv` , `Create_priv` , `Drop_priv` , `Reload_priv` , `Shutdown_priv` , `Process_priv` , `File_priv` , `Grant_priv` , `References_priv` , `Index_priv` , `Alter_priv` , `Show_db_priv` , `Super_priv` , `Create_tmp_table_priv` , `Lock_tables_priv` , `Execute_priv` , `Repl_slave_priv` , `Repl_client_priv` , `ssl_type` , `ssl_cipher` , `x509_issuer` , `x509_subject` , `max_questions` , `max_updates` , `max_connections` ) VALUES ('192.192.192.192', 'new_user', PASSWORD( 'new_user_password' ) , 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', '0', '0', '0');

          >flush privileges;

          posted @ 2008-07-04 13:04 gdufo| 編輯 收藏

          linux,jdk142,axis14,tomcat安裝

           

          環(huán)境:redhat linux 9.0

                先前沒有安裝過jdk, tomcat, axis,并將三個(gè)軟件copy到/usr/local目錄下

          一、              安裝jdk1.4.2

          1.安裝

          > chmod x j2sdk-1_4_2_04-linux-i586-rpm.bin

          > ./j2sdk-1_4_2_04-linux-i586-rpm.bin   --自動(dòng)解壓,生成rpm 安裝包

          > Do you agree to the above license terms? [yes or no]  y

          > rpm -ivh j2sdk-1_4_2_04-linux-i586.rpm 自動(dòng)安裝在目錄/usr/java/ j2sdk1.4.2

          > cd /usr/java

          > mv j2sdk1.4.2  jdk1.4  更改文件夾名稱

          2.設(shè)置環(huán)境量

          > vi /etc/profile

          在里面加入以下環(huán)境變量,保存并退出。

          export JAVA_HOME=/usr/java/ jdk1.4

          export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/classes12.jar:$JAVA_HOME/lib/classes111.jar

          export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin

          export CATALINA_HOME=/usr/local/tomcat

           

          二、              安裝apache-tomcat-4.1.34.

          > cd /usr/local

          > tar –zxvf apache-tomcat-4.1.34.tar.gz

          > mv apache-tomcat-4.1.34 tomcat --更改文件夾與環(huán)境變量中的一致

          > /usr/local/tomcat/bin/startup.sh –啟動(dòng)服務(wù)

          如啟動(dòng)成功在IE中輸入: http://10.110.4.66:8080,查看是否可以看到歡迎界面,如不能,則查看8080端口是否打開

           

          三、              安裝axis-bin-1_4.tar.gz

          1.安裝axis

          > cd /usr/local

          > tar –zxvf axis-bin-1_4.tar.gz

          >cp -R -f /usr/local/axis-1_4/webapps/axis /usr/local/tomcat/webapps –axis目錄copytomcat目錄下

          >cp -R -f /usr/local/axis/lib/*.jar /usr/local/tomcat/common/lib/ --axis所要的jar文件Copytomcatlib目錄下

          > cp classes12.jar  /usr/local/tomcat/common/lib/  --Oracle驅(qū)動(dòng)Copy

          > cp classes111.jar /usr/local/tomcat/common/lib/   --Oracle驅(qū)動(dòng)Copy

          IE中輸入http://10.110.2.192:8080/axis/happyaxis.jsp 查看是否有問題

          2.配置axis

          a. tomcat tomcat-users.xml增加管理員用戶

          <role rolename="manager"/>

          <role rolename="admin"/>

          <user username="gdufo" password="gdufo" roles="admin,manager"/>

          b.重啟tomcat

          c.配置連接池

            登陸http://10.110.4.66:8080/admin/login.jsp 用戶名:gdufo 密碼:gdufo

          在菜單樹中選擇tomcat server/Host(local host)/Context(/axis)/Resource/DataSource 中選擇”create a new datasource”中填入相關(guān)參數(shù)

          JNDI Name: dbc/axis

          Data Source URL: jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.110.1.3)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=PROD)(SERVER=DEDICATED)))

          JDBC Driver Class: oracle.jdbc.driver.OracleDriver

          User Name: name

          Password:xxxx

          Max. Active Connections: 20

          Max. Idle Connections:2

          Max. Wait for Connection:5000

          點(diǎn)擊”save””commit changes”

          posted @ 2008-07-04 11:42 gdufo 閱讀(348) | 評(píng)論 (0)編輯 收藏

          linux,apache,mysql,php安裝手冊(cè)

           環(huán)境:redhat linux 9.0

                先前沒有安裝過Apache, Mysql, Php.

          一、              安裝Apache 1.3

          >tar -zxvf apache_1.3.37.tar.gz

          >cd apache_1.3.37

          修改src/include/httpd.h 增大最大線程數(shù)

          #define HARD_SERVER_LIMIT 256

          改成

          #define HARD_SERVER_LIMIT 2560

           

          >./configure --prefix=/usr/local/apache --enable-module=so --enable-module=rewrite --enable-shared=max

          >make

          >make install

          >/usr/local/apache/bin/apachectl start  啟動(dòng)它

          #這里我們通過enable-module參數(shù)告訴設(shè)置腳本,我們需要啟動(dòng)sorewrite模塊,so模塊是用來提DSO支持的apache核心模塊,而rewrite模塊則是用意實(shí)現(xiàn)地址重寫的模塊,由于rewrite模塊需要DBM支持,如果在初次安裝時(shí)沒有編譯進(jìn)apache,以后需要用到時(shí)需要重新編譯整個(gè)apache才可以實(shí)現(xiàn)。為此除非你可以確定以后不會(huì)用到rewrite模塊,否則還是建議你在第一次編譯的時(shí)候把rewrite模塊編譯好。

          enable-shared=max 這個(gè)參數(shù)的作用時(shí)編譯apache時(shí),把除了so以外的所有apache的標(biāo)準(zhǔn)模塊都編譯成DSO模塊。而不是編譯進(jìn)apache核心內(nèi)。

          好了安裝apache很簡單的哦,啟動(dòng)apache看看

          然后用iehttp://127.0.0.1 應(yīng)該能看到熟悉的apache羽毛標(biāo)志。

           

          二、              安裝Mysql4.1.18

          先查看是否安裝了mysql (>rpm –q mysql),如果安裝了就別再安裝

          >tar –zxvf mysql

          >groupadd mysql

          >useradd -g mysql mysql

          >cd /usr/local

          >ln -s FULL-PATH-TO-MYSQL-VERSION-OS mysql

          >cd mysql

          >scripts/mysql_install_db --user=mysql

          >chown -R root .

          >chown -R mysql data

          >chgrp -R mysql .

          >bin/mysqld_safe --user=mysql & 

          >回車

          >cd bin

          >./mysql

          這樣就可以了。

          修改密碼:

          Mysql> update mysql.user set password=PASSWORD('wxbwer') where User='root';

          Mysql> flush privileges;

          然后重啟動(dòng)

           

          以上安裝方法不是以源代碼編繹安裝的,而是通過二進(jìn)制代碼直接實(shí)現(xiàn)。

          三、              安裝PHP (php-4.4.4.tar.gz)

          > tar -zxvf php-5.2.0.tar.gz

          > cd php-4.4.4

          > ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs=/usr/local/apache/bin/apxs

          如果安裝的是apache2.x,就要用到--with-apxs2

          >make

          >make install

          #我這里由于服務(wù)器需要用到GD庫,所以加了一些支持GD的編譯參數(shù) GD直接用了redhat自帶的GD庫,大家沒有安裝的話可以從安裝盤安裝,注意除了安裝GD以外,還要安裝libjpeglibpng等庫文件。另外--with-mysql=/usr/local/mysql指向你安裝mysql的路徑。--with-apxs指向apacheapxs文件的路徑。

          注:可能會(huì)出現(xiàn)沒有產(chǎn)生libphp4.so文件,建議去網(wǎng)站下最新的4.4.4 版本。或找其它的方法。

           

          四、              配置

          >vi /usr/local/apache/conf/httpd.conf

           在適當(dāng)位置添加(DocumentRoot的下一行就行了)

           AddType application/x-httpd-php .php

          AddType application/x-httpd-php-source .phps

          AddType application/x-httpd-php .php4

          AddType application/x-httpd-php .php3

          DirectoryIndex后面添加index.php

          >cp ../php4.4.4/php.ini-dist /usr/local/php/lib/php.ini

          >vi /usr/local/php/lib/php.ini

          修改php.ini文件
          register_globals = On

          一些情況下將default_charset = "iso-8859-1"改為default_charset=”GBK”

          打開網(wǎng)頁默認(rèn)為GBK編碼。

              >/usr/local/apache/bin/apachectl restart 重啟

          編寫測試頁:

          Test.php

          <?php

             Phpinfo();

          ?>

          如在http://hostname/test.php 就可以看到php的相關(guān)信息,表明安裝成功。

          五、

          設(shè)置Linux自啟動(dòng)(以Apache為例)

          方法1:

          由于Linux版本的不同:自動(dòng)啟動(dòng)的shell腳本放置的位置和名稱也不相同,在redhat、紅旗等版本的Linux中啟動(dòng)腳本放在 /etc/rc.d目錄中,名稱是:rc.local。而SuSE版本的Linux啟動(dòng)腳本是放在/etc/init.d目錄中,名稱 boot.local.

          例如:apache、mysql自動(dòng)啟動(dòng)

          在紅旗、radhat等Linux中如下

          #cd /etc/rc.d

          #vi rc.local

          在rc.local加入:

          /usr/local/apache/bin/apachectl start

          /usr/local/mysql/bin/mysqld_safe --user=mysql &

          SuSE中如下

          #cd /etc/init.d

          #vi boot.local

          在rc.local加入:

          /usr/local/apache/bin/apachectl start

          /usr/local/mysql/bin/mysqld_safe --user=mysql &

          posted @ 2008-07-04 11:39 gdufo| 編輯 收藏

          tomcat管理界面常用設(shè)置 -- 不解壓war文件

          轉(zhuǎn):http://blog.csdn.net/cm4ever/archive/2004/10/24/148930.aspx

          當(dāng)
          1. war文件內(nèi)的WEB-INF/classes目錄下的所有class文件
          2. war文件內(nèi)的/WEB-INF/lib目錄下的所有jar文件
          3. war文件內(nèi)的/WEB-INF目錄下的web.xml文件
          4. war文件內(nèi)的環(huán)境配置文件
          上述四項(xiàng)中的任一項(xiàng)改變后自動(dòng)重載。這樣就無須手工重新deploy,節(jié)省調(diào)試時(shí)間。

          1.登陸管理界面
          http://localhost:8080/admin

          密碼和用戶名在你安裝的時(shí)候設(shè)定的,如果忘記(或沒有)的話,去改tomcat\conf\tomcat-users.xml,添加admin和 manager兩個(gè)role,一個(gè)用戶,該用戶的role為admin和manager就可以了,按原有的xml復(fù)制修改就可以。

          2.設(shè)置步驟
            2.1 點(diǎn)擊左邊框架中Service菜單項(xiàng)左邊的小圓,展開列表 
            2.2 點(diǎn)擊左邊框架中Host (localhost)菜單項(xiàng),右邊框架出現(xiàn)設(shè)置頁
            2.3 把右邊框架中Unpack WARs右邊的下拉列表改為false
            2.4 點(diǎn)擊右邊框架中右上角save按鈕 
            2.5 點(diǎn)擊頂部框架Commit Changes按鈕

          注意:要保證文件不是只讀的



          posted @ 2008-07-02 20:17 gdufo| 編輯 收藏

          不能訪問Tomcat5.5的admin頁面

          轉(zhuǎn)

          Tomcat 5可以通過以運(yùn)行在網(wǎng)頁瀏覽器的配置應(yīng)用程序非常方便地進(jìn)行服務(wù)器的配置。這個(gè)應(yīng)用程序稱為Tomcat Administration Web Application。然而,Tomcat 5.5 以后的binary 核心安裝版不再提供Tomcat Administration Web Application。要安裝后者,需要單獨(dú)下載和安裝。Tomcat 并沒有為Administration Web Application提供一種自動(dòng)整合的安裝程序。本文將講述安裝和配置的詳細(xì)過程。

          第一步,確認(rèn)你的Tomcat 中是否已安裝了Administration Web Application。首先確定Tomcat Service 正在運(yùn)行。然后在瀏覽器中,鍵入 http://localhost:8080/admin,如果看到Tomcat Web Server Administration Tool 的頁面,說明Administration Web Application 已安裝好了。你可以省點(diǎn)時(shí)間,不必讀下文了。如果看到的是
          Tomcat's administration web application is no longer installed by default. Download and install the "admin" package to use it.
          那么這篇文章就算你看對(duì)了,就是專門為你寫的。

          第二步,下載admin package。說實(shí)話,很多人居然找不到在哪里下載。這不怪你們。Apache Tomcat 的下載頁面的指示不是很清楚,當(dāng)然技術(shù)文檔也不甚詳盡。但是人家已經(jīng)給你提供了功能強(qiáng)大的open source 軟件,你還能抱怨什么呢?要怪就怪的工夫沒下到,功夫不夠深。

          仔細(xì)看,http://tomcat.apache.org/download-55.cgi , 在下載頁面的Binary Distributions欄下的第四大項(xiàng),Administration Web Application 即是。

          第三步,當(dāng)解壓下載的Administration Web Application 文件,比如放在c:\tom中,你會(huì)發(fā)現(xiàn)解壓后的文件為 c:\tom\apache-tomcat-5.5.17。 這時(shí)鍵入 http://localhost:8080/admin 去檢驗(yàn)admin,會(huì)發(fā)現(xiàn)Tomcat什么都沒有改變。因?yàn)榻鈮旱腶dmin文件還沒有配置到Tomcat 的系統(tǒng)中。下面的步驟告訴你如何將admin文件配置到Tomcat 的服務(wù)器中。

          第四步,將 c:\tom\apache-tomcat-5.5.17\conf\Catalina\localhost\admin.xml的
          admin.xml 文件拷貝到c:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\Catalina\localhost. 的文件夾中。注意一定要放在正確的路徑的文件夾中。

          第五步,將c:\tom\apache-tomcat-5.5.17\server\webapps中的admin整個(gè)文件夾拷貝到c:\Program Files\Apache SoftwareFoundation\Tomcat5.5\server\webapps 文件夾中。

          第六步,用具有編輯功能的notepad等打開 c:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\中的tomcat-users.xml 文件。在</tomcat-user>最后一行之前,加入下列一行
          <user username="admin" password="tomcat" roles="admin,manager"/>

          注意username/password可以是你喜歡的任意組合,但roles=”admin” 不可隨意改動(dòng)。

          第七步,重啟Tomcat Server,然后打開http://127.0.0.1:8080/進(jìn)入manager里面把a(bǔ)dmin服務(wù)啟動(dòng)起來,然后再進(jìn)入admin模塊里,在web瀏覽器中鍵入 http://localhost:8080/admin, 這時(shí)你如果能看到 Tomcat Server Web Administration Tool 的login界面, 就大功告成。若是還看不到上述頁面,可檢查瀏覽器的代理服務(wù)器的設(shè)定,使之能夠接受localhost。

          還打不開就用下面的終極絕招!

          目錄: E:\Tomcat5.5\conf\web.xml
          <!-- listings Should directory listings be produced if there -->
          <!-- is no welcome file in this directory? [false] -->
          <!-- WARNING: Listings for directories with many -->
          <!-- entries can be slow and may consume -->
          <!-- significant proportions of server resources. -->
          <!-- -->
          .....
          <servlet>
          <servlet-name>default</servlet-name>
          <servlet-class>
          org.apache.catalina.servlets.DefaultServlet
          </servlet-class>
          <init-param>
          <param-name>debug</param-name>
          <param-value>0</param-value>
          </init-param>
          <init-param>
          <param-name>listings</param-name>
          <param-value>true</param-value>
          </init-param>
          <load-on-startup>1</load-on-startup>
          </servlet>
          ......
          false --> true
          這樣就可以瀏覽了,不過整個(gè)Tomcat都是可以瀏覽,有點(diǎn)危險(xiǎn)。
          其他就按你自己的配:
          目錄:E:\Tomcat5.5\conf\Catalina\localhost\jspweb.xml
          <?xml version='1.0' encoding='utf-8'?>
          <Context docBase="/c:/jspweb/" path="/jspweb">
          </Context>
          因該和5.0一樣了,不過你絕對(duì)是浪費(fèi)5.5的安全特性.....
          目錄: E:\Tomcat5.5\conf\web.xml
          <!-- listings Should directory listings be produced if there -->
          <!-- is no welcome file in this directory? [false] -->
          <!-- WARNING: Listings for directories with many -->
          <!-- entries can be slow and may consume -->
          <!-- significant proportions of server resources. -->
          <!-- -->
          .....
          <servlet>
          <servlet-name>default</servlet-name>
          <servlet-class>
          org.apache.catalina.servlets.DefaultServlet
          </servlet-class>
          <init-param>
          <param-name>debug</param-name>
          <param-value>0</param-value>
          </init-param>
          <init-param>
          <param-name>listings</param-name>
          <param-value>true</param-value>
          </init-param>
          <load-on-startup>1</load-on-startup>
          </servlet>
          ......
          false --> true
          這樣就可以瀏覽了,不過整個(gè)Tomcat都是可以瀏覽,有點(diǎn)危險(xiǎn)。
          其他就按你自己的配:
          目錄:E:\Tomcat5.5\conf\Catalina\localhost\jspweb.xml
          <?xml version='1.0' encoding='utf-8'?>
          <Context docBase="/c:/jspweb/" path="/jspweb">
          </Context>
          因該和5.0一樣了,不過你絕對(duì)是浪費(fèi)5.5的安全特性.....

          目錄: E:\Tomcat5.5\conf\web.xml
          <!-- listings Should directory listings be produced if there -->
          <!-- is no welcome file in this directory? [false] -->
          <!-- WARNING: Listings for directories with many -->
          <!-- entries can be slow and may consume -->
          <!-- significant proportions of server resources. -->
          <!-- -->
          .....
          <servlet>
          <servlet-name>default</servlet-name>
          <servlet-class>
          org.apache.catalina.servlets.DefaultServlet
          </servlet-class>
          <init-param>
          <param-name>debug</param-name>
          <param-value>0</param-value>
          </init-param>
          <init-param>
          <param-name>listings</param-name>
          <param-value>true</param-value>
          </init-param>
          <load-on-startup>1</load-on-startup>
          </servlet>
          ......
          false --> true
          這樣就可以瀏覽了,不過整個(gè)Tomcat都是可以瀏覽,有點(diǎn)危險(xiǎn)。
          其他就按你自己的配:
          目錄:E:\Tomcat5.5\conf\Catalina\localhost\jspweb.xml
          <?xml version='1.0' encoding='utf-8'?>
          <Context docBase="/c:/jspweb/" path="/jspweb">
          </Context>
          因該和5.0一樣了,不過你絕對(duì)是浪費(fèi)5.5的安全特性.....

          posted @ 2008-07-02 20:00 gdufo| 編輯 收藏

          Struts2 中文計(jì)劃 翻譯

               摘要:   閱讀全文

          posted @ 2008-07-02 18:06 gdufo| 編輯 收藏

          eclipse的tomcatplugin下載地址


          http://www.eclipsetotale.com/tomcatPlugin.html#A3

          posted @ 2008-07-02 09:30 gdufo| 編輯 收藏

          Struts2與Velocity模板

          Velocity是一種基于JAVA的模板引擎,開發(fā)人員使用簡單的模板語言就可以快速開發(fā)顯示層,它使得顯示層與程序代碼分離,在早期的Webwork版本中,所有UI標(biāo)簽均使用Velocity模板引擎生成,可以在Struts-core-2.0.8.jar中找到template文件夾,其中的archive文件夾下存放著原有的vl文件!

          Struts2中查找vm文件的順序先查找Web應(yīng)用程序,再查找類路徑。如果你需要使用vm作為顯示層,只需要在配置文件中指定resulttype屬性為velocity,然后將<param>location屬性指定到一個(gè)以vm結(jié)尾的資源上就可以了!

          1.Struts2中的Velocity中文亂碼的處理方式:

          因?yàn)樵?/span>Velocity-1.4.jar中的org.apache.velocity.runtime.defaults中定義的velocity.properties中定義的input.encoding=ISO8859-1output.encoding=ISO8859-1,通常最好在VM文件中使用%{getText(‘’)}調(diào)用國際化資源文件的內(nèi)容就不會(huì)產(chǎn)生亂碼。

          2.Velocityvm文件必須要經(jīng)過Action才可以訪問,以便被程序解析,不可以直接訪問vm文件。

          3.vm文件中使用Struts2的標(biāo)簽只需要在原有標(biāo)簽前加#s就可以了,參數(shù)之間使用””分隔!

          (1.)例如下面是一個(gè)表單的定義:

          #sform(“action=Student” namespace=”/ilkj/student”)

                 #stextfield(“label=%{getText(‘student.label.name’)}” “name=student.name”)

                 #spassword(“label=%{getText(‘student.label.password’)} ” name=student.age”)

                 #ssubmit(“value=getText(‘globale.label.submit’)”)

          #end

          (2.)下面是取出session中的一個(gè)參數(shù)的值

          #sproperty(“value=#session.information” “default=noValue”)

          (3.)下面是訪問Action中的屬性

          ${student.name},當(dāng)然你也可以簡單寫成$student.name的形式。

          4.Velocity的內(nèi)建變量:

          stack---ValueStack,可以使用${stack.findString(‘OGNL表達(dá)式’)}取值

          action---最近執(zhí)行的Action,例如${action.getStudent().getName()}或者也可以直接寫${action.student.name}

          response---HttpServletRequest

          request---HttpServletResponse

          session---HttpSession

          application---ServletContext

          base---生成應(yīng)用的上下文,相當(dāng)與request.getContextPath()

          5.注釋語法

          (1.)單行注釋:##

          (2.)多行注釋:#* ... ... *#

          6.暫停執(zhí)行

          #stop---停止執(zhí)行后面的模板內(nèi)容

          7.轉(zhuǎn)義字符

          Velocity使用 \ 轉(zhuǎn)義字符,例如email被定義為andrew830314@163.com#set($email=’andrew830314@163.com’)),你還想輸出$email而不被Velocity解析,那么你可以使用 \$email

          8.引入其他文件

          #include(“”),如果是JSP或者vm文件將會(huì)顯示內(nèi)容,其他文本文件顯示文本,二進(jìn)制會(huì)顯示亂碼,引入多個(gè)文件使用 , 間隔,#parse(“”)引入一個(gè)本地的vm文件,與#include(“”)不同,#parse(“”)只能引入一個(gè)文件,并且#parse(“”)可以訪問父模板里的變量。

          9.模板代碼復(fù)用

          #macro(代碼段名稱 $參數(shù)1 ... ...)

                 ... ...

          #end

          只要使用#代碼段名稱($參數(shù)1 ... ...)就可以使用這段代碼,當(dāng)然你也可以不使用任何參數(shù)

          10.判斷語句

          #if(邏輯表達(dá)式)

          注意:在Velocity中使用==判斷兩個(gè)變量是否相等,而不是使用equals(“”)方法。

          #else

          #end

          從上面我們還可以總結(jié)出,Velocity模板引擎使用#表示一種命令,例如#set是給某個(gè)變量設(shè)置值,使用$引用變量,使用()表示參數(shù),使用{}表示作用范圍。

          另外需要注意的時(shí)候,Velocity只會(huì)按照gettXXX()解析變臉變量,例如student.name實(shí)際上找到的student.getName()方法,你可以試著在Action寫一個(gè)變量而不使用getXXX()方法,看看會(huì)不會(huì)在vm中取到值,答案是變量會(huì)被原樣輸出。

          Velocity使用的都是對(duì)象,即使你定義#set ($count=1)也會(huì)被包裝成Integer使用。

          另外,修改vm文件需要重新啟動(dòng)服務(wù)器,如果在開發(fā)階段,我們可以設(shè)置struts.properties中的struts.devMode=true避免每次重新啟動(dòng)服務(wù)器。

          最后我們思考一下,如果貨幣$2.95會(huì)被Velocity引擎直接輸出,還是去查找2.95這個(gè)變量?如果你在思考這個(gè)問題,說明你的JAVA基礎(chǔ)不過關(guān)哦!因?yàn)?/span>JAVA中的變量不能以數(shù)字開頭的哦!因此你不必?fù)?dān)心貨幣$2.95會(huì)被當(dāng)作變量解析!另外,如果Velocity引擎未找到變量也會(huì)原樣輸出,例如${student.name}如果未找到會(huì)直接原樣輸出,這也是為什么我們直接訪問JSP的時(shí)候會(huì)看到大量的${}被原樣輸出。如果變量不存在,你想讓它不輸出,可以這樣寫$!{}

          posted @ 2008-06-29 19:34 gdufo 閱讀(7389) | 評(píng)論 (1)編輯 收藏

          Struts Menu 祥解

          http://blog.csdn.net/phevose/archive/2007/06/02/1635563.aspx

          官方英文版向?qū)В?a >http://struts-menu.sourceforge.net/userguide.html

          一、從1.X升級(jí)到2.X需要做以下事情:
          1、改變你的taglib聲明中的URI。
           <% at taglib uri="" prefix="menu" %>
          2、改變<plug-in>,使用新的包名"net.sf.navigator." 。
           <plug-in className="net.sf.navigator.menu.MenuPlugIn">
          3、改變你的menu-config.xml文件,使用新的包名"net.sf.navigator." 。
           <Displayer name="Simple"
             type="net.sf.navigator.displayer.SimpleMenuDisplayer"/>
          http://struts-menu.sf.net/tag

          二、快速開始:
          1、下載最新的struts-menu版本;
          2、解包到本地目錄;
          3、下載Tomcat或者其它Servlet容器;
          4、把struts-menu.war包放入Tomcat安裝目錄的wabapps目錄下,并重啟Tomcat服務(wù)。
          5、打開htpp://localhost:8080/struts-menu/

          三、把Struts Menu整合到你的應(yīng)用程序中:
          Struts Menu能夠被輕易的整合到你的Struts應(yīng)用程序中,它也可以整合到一個(gè)非Struts的應(yīng)用程序中,但是我不喜歡這樣做,所以在此沒有提供相應(yīng)的教程。這里將一步步的帶你整合這個(gè)標(biāo)簽庫。
          你需要把struts-menu.jar放到你的WEB-INF/lib目錄下。然后使用URI標(biāo)簽聲明你的JSP文件中想使用的這個(gè)標(biāo)簽庫。
          如果使用Struts Menu 2.1,你還需要 Jakarta's Standard Tag Library JAR包放入你的WEB-INF/lib目錄下。下載地址:http://ibiblio.org/maven/taglibs/jars/standard-1.0.4.jar,這個(gè)文件包括例程WAR包文件和二進(jìn)制發(fā)布包。
          1、放入struts-menu.jar包到你的應(yīng)用程序的WEB-INF/lib目錄中。
          2、在你的struts-config.xml文件中加入plug-in設(shè)置。

           <plug-in className="net.sf.navigator.menu.MenuPlugIn">
             
          <set-property property="menuConfig"
               value
          ="/WEB-INF/menu-config.xml"/>
           
          </plug-in>


          3、你將需要在你的應(yīng)用程序的/WEB-INF/menu-config.xml文件中定義你的菜單,這里提供一個(gè)簡單的片斷:

           <Menu name="contactMenu" title="Contact" location="?Contact">
             
          <Item name="email" title="E-Mail" location="?EMail"/>
             
          <Item name="phone" title="Phone" location="?Phone"/>
           
          </Menu>


            更多全面的例程,請(qǐng)查看應(yīng)用程序的web/WEB-INF目錄中的menu-config.xml文件,你可以截取一段作為你需要的菜單。完整的屬性列表,可以查看MenuBase class's javadocs(http://struts-menu.source......avigator/menu/MenuBase.html)。
          4、在你的JSP文件的頂部加入taglib聲明:
           

          <% at taglib uri="" prefix="menu" %>


          5、在你的JSP文件中要放置菜單的位置加入taglib代碼:

           <menu:useMenuDisplayer name="TabbedMenu"
             bundle
          ="org.apache.struts.action.MESSAGE">
             
          <menu:displayMenu name="Home"/>
             
          <menu:displayMenu name="About"/>
           
          </menu:useMenuDisplayer>


          屬性name="TabbedMenu"被定義在menu-config.xml文件的頂部:

           <Displayer name="TabbedMenu"
          type
          ="net.sf.navigator.displayer.TabbedMenuDisplayer"/>

          http://struts-menu.sf.net/tag

          (譯注:其實(shí)到此步即可在你的JSP文件中添加相應(yīng)的菜單了,只不過是沒有結(jié)合Velocity。在menu-config.xml文件的頭部可以定義多個(gè)Displayer,每個(gè)Displayer都有name和type屬性,name屬性與JSP文件中menu:useMenuDisplayer標(biāo)簽的name屬性相對(duì)應(yīng),即表明使用何種樣式,具體的樣式定義便在type屬性中定義,type屬性中是一個(gè)class。在menu-config.xml文件中的菜單定義中的name屬性則與JSP文件中的menu:displayMenu標(biāo)簽的name屬性相對(duì)應(yīng)。)

          使用定制的Velocity模版實(shí)施你的菜單,你需要整合Velocity到你的WEB應(yīng)用程序中。如果需要這樣做的話,請(qǐng)完成下面的步驟:
          1、確定你的menu-config.xml文件有“Velocity”的displayer定義:

           <Displayer name="Velocity" 
               type
          ="net.sf.navigator.displayer.VelocityMenuDisplayer"/>


          2、加入Velocity的JARs包到你的WEB-INF/lib目錄中,下載velocity-1.4-rc1.jar(http://www.ibiblio.org/ma......y/jars/velocity-1.4-rc1.jar)和velocity-tools-view-1.0.jar(http://www.ibiblio.org/ma......velocity-tools-view-1.0.jar)。
          3、加入globalMacros.vm(http://cvs.sourceforge.net/viewcvs.py/*checkout*/struts-menu/navigator/web/WEB-INF/classes/globalMacros.vm?content-type=text%2Fplain&rev=1.1(右鍵另存為))到你的WEB-INF/lib目錄中。
          4、改變你的JSP文件中displayer的值為“Velocity”,“config”屬性指向一個(gè)文件(如config="/templates/tabs.html")或者如果tabs.htm在你的WEB-INF/classes目錄中的話,則可設(shè)config="tabs.html"。

          這里提供了一些使用Velocity的displayer例子,可在sample application(http://demo.raibledesigns.com/struts-menu/index.jsp)中查看。它總是在你的菜單需要的時(shí)候顯示CSS,JavaScript和圖像文件。下面有一些在當(dāng)前的Struts Menu中用到的Velocity模版的例子的鏈接:
           CoolMenus: Demo(http://demo.raibledesigns......menu/velocity-coolmenu4.jsp),
          Template(http://struts-menu.sourceforge.net/templates/coolmenus.html
           NiceTabs: Demo, Template
           Tabs: Demo, Template
           XTree: Demo, Template

          所有相關(guān)的有用的文件如果你需要的話都可以在下面的站點(diǎn)上下載:
           Images (http://struts-menu.sourceforge.net/menu-images/
           Stylesheets (http://struts-menu.sourceforge.net/styles/
           Scripts (http://struts-menu.sourceforge.net/scripts/
           Templates (http://struts-menu.sourceforge.net/templates/

          更多的基于roles的顯示/隱藏菜單的信息,請(qǐng)查看FAQs(http://struts-menu.sourceforge.net/faq.html)。

          四、在Struts之外使用Struts Menu:
          在2.2版中,Menu Repository能夠使用MenuContextListener載入:

           <!--
              - Loads the menu-config.xml for struts-menu at startup,
              - by default from "/WEB-INF/menu-config.xml".
              - To override this, add a context-param named "menuConfigLocation"
              - web.xml file.
              
          -->
           
          <listener>
               
          <listener-class>net.sf.navigator.menu.MenuContextListener</listener-class>
           
          </listener>

           

          或者如果你使用Spring,甚至更容易。僅僅需要加入下面的部分到你的applicationContext.xml文件中:

           <bean id="menu" class="net.sf.navigator.menu.MenuLoader">
             
          <property name="menuConfig">
               
          <value>/WEB-INF/menu-config.xml</value>
             
          </property>
           
          </bean>
           
          <!-- The menuConfig property is an optional attribute.  It is set to
               /WEB-INF/menu-config.xml by default. 
          -->


          感謝Dan Luputan提供MenuLoader類的源代碼。

          五、從源文件編譯:
          要從源文件編譯這個(gè)項(xiàng)目,執(zhí)行下面的步驟:
          1、下載并安裝Maven(http://maven.apache.org/);
          2、創(chuàng)建一個(gè)環(huán)境變量MAVEN_HOME指出你的Maven的安裝目錄,然后添加$MAVEN_HOME/bin到你的PATH變量中;
          3、操縱這個(gè)目錄你可以擴(kuò)展源代碼,執(zhí)行“maven.jar”創(chuàng)建target/struts-menu.jar。

          要展開struts-menu例程,需要下面的步驟:
          1、下載和安裝Tomcat;
          2、創(chuàng)建一個(gè)環(huán)境變量CATALINA_HOME指出你的Tomcat的安裝目錄;
          3、執(zhí)行“maven deploy”把應(yīng)用程序展開到Tomcat中;
          4、打開http://localhost:8080/struts-menu在你喜愛的瀏覽器中。

          如果你喜歡使用Eclipse開發(fā)項(xiàng)目,請(qǐng)參考此份開發(fā)向?qū)В?a >http://struts-menu.sourceforge.net/devguide.html)。

           

          struts-menu2.3做動(dòng)態(tài)菜單

          1 web.xml
          struts-menu2.3版本不用建立在struts框架之上,但需要struts的jar包
          要做的是在web.xml文件中配置一個(gè)監(jiān)聽

           

              <context-param>
                  
          <param-name>menuConfigLocation</param-name>
                  
          <param-value>/WEB-INF/menu-config.xml</param-value>
              
          </context-param>
              
          <listener>
                  
          <listener-class>net.sf.navigator.menu.MenuContextListener</listener-class>
              
          </listener>


          其中context-param是可選的,/WEB-INF/menu-config.xml是struts-menu的默認(rèn)配置文件的路徑,如果要改變文件的名字或路徑要改寫context-param

          2 menu-config.xml

          需要配置菜單的顯示樣式,如下:

           

          <?xml version="1.0" encoding="UTF-8" ?>

          <MenuConfig>

            
          <Displayers>
              
          <Displayer   name="DropDown"
                           type
          ="net.sf.navigator.displayer.DropDownMenuDisplayer"/>
              
          <Displayer   name="Simple"
                           type
          ="net.sf.navigator.displayer.SimpleMenuDisplayer"/>
              
          <Displayer   name="CoolMenu"
                           type
          ="net.sf.navigator.displayer.CoolMenuDisplayer"/>
              
          <Displayer   name="CoolMenu4"
                           type
          ="net.sf.navigator.displayer.CoolMenuDisplayer4"/>
              
          <Displayer   name="MenuForm"
                           type
          ="net.sf.navigator.example.PermissionsFormMenuDisplayer"/>
              
          <Displayer   name="ListMenu"
                           type
          ="net.sf.navigator.displayer.ListMenuDisplayer"/>
              
          <Displayer   name="TabbedMenu"
                           type
          ="net.sf.navigator.displayer.TabbedMenuDisplayer"/>
              
          <Displayer   name="Velocity"
                           type
          ="net.sf.navigator.displayer.VelocityMenuDisplayer"/>
            
          </Displayers>

          </MenuConfig>


          3 dynamicmenu.jsp

          menu的數(shù)據(jù)結(jié)構(gòu)
              MenuRepository:包含了所有的菜單數(shù)據(jù),它的里面保存菜單的形式是二維表的形式。一個(gè)菜單就是一條記錄
              MenuComponent: 代表一個(gè)菜單,也就是二維表中的一條記錄,父菜單和子菜單在這里區(qū)分,如果它的getParent()方法返回為空,那么它就是頂級(jí)菜單,它下面的子菜單設(shè)置它為父菜單方法:setParent(MenuComponent parent),該菜單的下面還可以有子菜單。
              最后要做的是把所有設(shè)置好的菜單項(xiàng),用repository.addMenu(mc) 方法加入到repository中。那么一個(gè)級(jí)聯(lián)菜單就做好了,示例代碼:

           

          MenuRepository repository=new MenuRepository();
              MenuComponent mc
          =new MenuComponent();
              mc.setName(
          "myMenu");
              mc.setTitle(
          "File");
              MenuComponent copy
          =new MenuComponent();
              copy.setTitle(
          "copy");
              copy.setParent(mc);
              MenuComponent open
          =new MenuComponent();
              
              open.setTitle(
          "Open");
              open.setParent(mc);
              MenuComponent close
          =new MenuComponent();
              close.setTitle(
          "New");
              close.setParent(mc);
              MenuComponent case1 
          = new MenuComponent();
              case1.setParent(close);
              case1.setTitle(
          "case1");
              repository.addMenu(mc);
              repository.addMenu(open);
              repository.addMenu(close);
              repository.addMenu(copy);

          下面是菜單的顯示:

           MenuRepository defaultRepository = (MenuRepository)
              application.getAttribute(MenuRepository.MENU_REPOSITORY_KEY);
              repository.setDisplayers(defaultRepository.getDisplayers());

          上面代碼的含義:
              取得菜單的顯示樣式,設(shè)置給repository,也就是上面menu-config.xml中設(shè)置的八種樣式。

              pageContext.setAttribute("net.sf.navigator.menu.MENU_REPOSITORY",repository);
          把菜單裝入到.jsp文件中,賦值給屬性"net.sf.navigator.menu.MENU_REPOSITORY" 然后jsp的menu標(biāo)簽就會(huì)從該屬性中取得菜單的顯示樣式和數(shù)據(jù)

          =================
          使用Struts Menu實(shí)現(xiàn)權(quán)限管理


          Struts Menu也是Matt Raible的作品,我以前一直在找能夠在Java里面指定實(shí)現(xiàn)頁面上樹形菜單和下拉菜單的東西,我去年找到一個(gè)JS的東西,可以從XML文件中讀取結(jié)構(gòu),我使用XSLT來生成顯示的菜單,后來感覺不靈活,也沒有用到項(xiàng)目上,2004年11月開始接觸AppFuse,發(fā)現(xiàn)里面有個(gè)Struts Menu,從例子看起來外觀還不錯(cuò),用起來,發(fā)現(xiàn)更不錯(cuò),可以在配置文件中指定那些角色可以看到當(dāng)前的鏈接,如果roles中沒有指定的角色進(jìn)入系統(tǒng)后,則自動(dòng)隱藏。我在去年的一個(gè)小項(xiàng)目用了一下,發(fā)現(xiàn)還行,至少不用我把邏輯嵌入到一堆JS里面。

          因?yàn)榻衲晟习肽暌獙?duì)以前的一個(gè)系統(tǒng)進(jìn)行升級(jí),要根據(jù)用戶或者角色的權(quán)限把一些菜單隱藏起來,如果使用Struts Menu的roles的話,則角色是寫死在代碼里面的,就是"硬編碼"(hardcode),而且這里的角色是Application Server上配置的,在Tomcat上配置還算簡單,在WebLogic等大型的服務(wù)器程序上配置,必須使用他們提供的Console軟件,否則,要自己寫好幾個(gè)文件,比較繁瑣,而且這些角色是在安裝是就指定的,如果用戶以后想添加新的角色名字,還要修改應(yīng)用服務(wù)器的配置文件(不管是手工,還是代碼處理)。

          如果你的系統(tǒng)負(fù)責(zé)處理權(quán)限,如生成用戶、角色,還要為角色、用戶指定有操作哪些模塊的哪些操作,一個(gè)系統(tǒng)很可能有幾十個(gè)或者上百個(gè)角色(往極端情況去想,呵呵),那么如果能夠動(dòng)態(tài)的控制顯示哪些菜單項(xiàng)是我們系統(tǒng)中必須解決的問題,而Struts Menu完全勝任這樣的要求,具體實(shí)現(xiàn)可以參看Struts Menu的下載文件中的文檔,需要重點(diǎn)看的是http://demo.raibledesigns.com/struts-menu/dynamicMenu.jsp(動(dòng)態(tài)構(gòu)建菜單結(jié)構(gòu))和http://struts-menu.sourceforge.net/security.html(這篇文章我視而不見,以為沒有用處,謝謝倦兔的提醒,^_^)。這兩篇文章的用法是獨(dú)立的,并不一定都要實(shí)現(xiàn),如果你的菜單項(xiàng)是固定的,短期不會(huì)有所變動(dòng),那么可以寫死到配置文件中,然后用第二篇文章中說的那樣,寫一個(gè)類,實(shí)現(xiàn)接口PermissionsAdapter,isAllowed方法中傳入菜單項(xiàng)的名字,然后決定是否顯示該項(xiàng)菜單,

          String[] menus = request.getParameterValues("menuNames");

          注釋:menuNames是從數(shù)據(jù)庫中讀出的記錄的集合(數(shù)組),你也可以用其他機(jī)構(gòu),

          然后放入使用request.setAttribute("menuNames", String[] 變量) 放入request中。

          PermissionsAdapter permissions = new SimplePermissionsAdapter(menus);//menus是菜單名字的數(shù)組
          request.getSession().setAttribute("YourAdapter", permissions);} //"YourAdapter"隨便起的名字,

          posted @ 2008-06-26 21:16 gdufo| 編輯 收藏

          僅列出標(biāo)題
          共19頁: First 上一頁 11 12 13 14 15 16 17 18 19 下一頁 

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          Hibernate

          友情鏈接

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 司法| 桃园市| 黄陵县| 平原县| 大宁县| 铜梁县| 铅山县| 县级市| 鲁山县| 平度市| 无锡市| 徐闻县| 布拖县| 静宁县| 榆社县| 临江市| 黄浦区| 洞头县| 哈尔滨市| 东丰县| 嘉义县| 阿坝县| 方城县| 阿荣旗| 育儿| 西和县| 寻乌县| 开远市| 苍山县| 维西| 汤阴县| 伊宁县| 团风县| 平凉市| 上饶市| 东明县| 普格县| 永平县| 砚山县| 咸阳市| 正定县|