置頂隨筆

          [置頂]Email驗(yàn)證的正則表達(dá)式

                這個(gè)Email驗(yàn)證的正則表達(dá)式基本符合RFC3521規(guī)范,缺少ipv6部分的驗(yàn)證。

                  Mail=("([\\x20-\\x21\\x23-\\x5B\\x5D-\\x7E]|(\\\\[\\x20-\\x7E]))*"|^[-!#$%&\'*+/0-9=?A-Z\\^_`a-z{|}~]+(.[-!#$%&\'*+/0-9=?A-Z\\^_`a-z{|}~]+)*)@([a-zA-Z0-9]+([\\-\\da-zA-Z]*[a-zA-Z0-9]+)*(\\.[a-zA-Z\\d]+([\\-\\da-zA-Z]*[a-zA-Z0-9]+)*)*|[\\[]((1[0-9][0-9]|25[0-5]|2[0-4][0-9]|0[0-9][0-9]|00[0-9]|[0-9][0-9]|[0-9])\\.(1[0-9][0-9]|25[0-5]|2[0-4][0-9]|0[0-9][0-9]|00[0-9]|[0-9][0-9]|[0-9])\\.(1[0-9][0-9]|25[0-5]|2[0-4][0-9]|0[0-9][0-9]|00[0-9]|[0-9][0-9]|[0-9])\\.(1[0-9][0-9]|25[0-5]|2[0-4][0-9]|0[0-9][0-9]|00[0-9]|[0-9][0-9]|[0-9]))[\\]]|((1[0-9][0-9]|25[0-5]|2[0-4][0-9]|0[0-9][0-9]|00[0-9]|[0-9][0-9]|[0-9])\\.(1[0-9][0-9]|25[0-5]|2[0-4][0-9]|0[0-9][0-9]|00[0-9]|[0-9][0-9]|[0-9])\\.(1[0-9][0-9]|25[0-5]|2[0-4][0-9]|0[0-9][0-9]|00[0-9]|[0-9][0-9]|[0-9])\\.(1[0-9][0-9]|25[0-5]|2[0-4][0-9]|0[0-9][0-9]|00[0-9]|[0-9][0-9]|[0-9])))
                RFC3521中的相關(guān)定義:
                        Domain         = sub-domain *("." sub-domain)
                        sub-domain     = Let-dig [Ldh-str]

             Let-dig        = ALPHA / DIGIT

             Ldh-str        = *( ALPHA / DIGIT / "-" ) Let-dig

             address-literal  = "[" ( IPv4-address-literal /
                              IPv6-address-literal /
                              General-address-literal ) "]"
                              ; See Section 4.1.3

             Mailbox        = Local-part "@" ( Domain / address-literal )

             Local-part     = Dot-string / Quoted-string
                            ; MAY be case-sensitive


             Dot-string     = Atom *("."  Atom)

             Atom           = 1*atext

             Quoted-string  = DQUOTE *QcontentSMTP DQUOTE

             QcontentSMTP   = qtextSMTP / quoted-pairSMTP

             quoted-pairSMTP  = %d92 %d32-126
                              ; i.e., backslash followed by any ASCII
                              ; graphic (including itself) or SPace

             qtextSMTP      = %d32-33 / %d35-91 / %d93-126
                            ; i.e., within a quoted string, any
                            ; ASCII graphic or space is permitted
                            ; without blackslash-quoting except
                            ; double-quote and the backslash itself.

          posted @ 2008-12-19 13:21 范永強(qiáng) 閱讀(6776) | 評論 (4)編輯 收藏

          2008年12月19日

          Email驗(yàn)證的正則表達(dá)式

                這個(gè)Email驗(yàn)證的正則表達(dá)式基本符合RFC3521規(guī)范,缺少ipv6部分的驗(yàn)證。

                  Mail=("([\\x20-\\x21\\x23-\\x5B\\x5D-\\x7E]|(\\\\[\\x20-\\x7E]))*"|^[-!#$%&\'*+/0-9=?A-Z\\^_`a-z{|}~]+(.[-!#$%&\'*+/0-9=?A-Z\\^_`a-z{|}~]+)*)@([a-zA-Z0-9]+([\\-\\da-zA-Z]*[a-zA-Z0-9]+)*(\\.[a-zA-Z\\d]+([\\-\\da-zA-Z]*[a-zA-Z0-9]+)*)*|[\\[]((1[0-9][0-9]|25[0-5]|2[0-4][0-9]|0[0-9][0-9]|00[0-9]|[0-9][0-9]|[0-9])\\.(1[0-9][0-9]|25[0-5]|2[0-4][0-9]|0[0-9][0-9]|00[0-9]|[0-9][0-9]|[0-9])\\.(1[0-9][0-9]|25[0-5]|2[0-4][0-9]|0[0-9][0-9]|00[0-9]|[0-9][0-9]|[0-9])\\.(1[0-9][0-9]|25[0-5]|2[0-4][0-9]|0[0-9][0-9]|00[0-9]|[0-9][0-9]|[0-9]))[\\]]|((1[0-9][0-9]|25[0-5]|2[0-4][0-9]|0[0-9][0-9]|00[0-9]|[0-9][0-9]|[0-9])\\.(1[0-9][0-9]|25[0-5]|2[0-4][0-9]|0[0-9][0-9]|00[0-9]|[0-9][0-9]|[0-9])\\.(1[0-9][0-9]|25[0-5]|2[0-4][0-9]|0[0-9][0-9]|00[0-9]|[0-9][0-9]|[0-9])\\.(1[0-9][0-9]|25[0-5]|2[0-4][0-9]|0[0-9][0-9]|00[0-9]|[0-9][0-9]|[0-9])))
                RFC3521中的相關(guān)定義:
                        Domain         = sub-domain *("." sub-domain)
                        sub-domain     = Let-dig [Ldh-str]

             Let-dig        = ALPHA / DIGIT

             Ldh-str        = *( ALPHA / DIGIT / "-" ) Let-dig

             address-literal  = "[" ( IPv4-address-literal /
                              IPv6-address-literal /
                              General-address-literal ) "]"
                              ; See Section 4.1.3

             Mailbox        = Local-part "@" ( Domain / address-literal )

             Local-part     = Dot-string / Quoted-string
                            ; MAY be case-sensitive


             Dot-string     = Atom *("."  Atom)

             Atom           = 1*atext

             Quoted-string  = DQUOTE *QcontentSMTP DQUOTE

             QcontentSMTP   = qtextSMTP / quoted-pairSMTP

             quoted-pairSMTP  = %d92 %d32-126
                              ; i.e., backslash followed by any ASCII
                              ; graphic (including itself) or SPace

             qtextSMTP      = %d32-33 / %d35-91 / %d93-126
                            ; i.e., within a quoted string, any
                            ; ASCII graphic or space is permitted
                            ; without blackslash-quoting except
                            ; double-quote and the backslash itself.

          posted @ 2008-12-19 13:21 范永強(qiáng) 閱讀(6776) | 評論 (4)編輯 收藏

          2008年8月15日

          Apache HTTP Server 與Tomcat的整合

               既然 Tomcat 本身已經(jīng)可以提供這樣的服務(wù),我們?yōu)?/span>么還要引入 Apache 或者其他的一些專門 HTTP 務(wù)器呢?原因有下面幾個(gè):

          1. 提升態(tài)文件的理性能
          2. 利用 Web 務(wù)器來做負(fù)載均衡以及容錯(cuò)
          3. 的升級應(yīng)用程

          原理:

             tomcat 為一個(gè)servelet容器,apache為一個(gè)web server,兩者之間通信通過mod_jk的模塊(由web服務(wù)器像apache、iis等使用)和Web Server通信Tomcat 認(rèn) AJP Connector 的端口是 8009.整個(gè)過程其實(shí)就是讓apache的httpd.conf文件調(diào)用mod_jk.conf,mod_jk.conf調(diào)用workers.properties,最后配置虛擬主機(jī)。

          文件說明

          mod_jk.conf

          主要定義mod_jk模塊的位置以及mod_jk模塊的連接日志設(shè)置,還有定義worker.properties文件的位置。
          worker.properties
          定義worker的參數(shù),主要是連接tomcat主機(jī)的地址和端口信息。如果Tomcat與apache不在同一臺機(jī)器上,或者需要做多臺機(jī)器上tomcat的負(fù)載均衡只需要更改workers.properties文件中的相應(yīng)定義即可。

          APACHE_HOME為你的安裝目錄 

          整合

          1、準(zhǔn)備下載下列文件

          Jdk1.5
          下載地址: http://java.sun.com
          tomcat 5.5.9
          下載地址:http://jakarta.apache.org
          apache_2.2.4-win32-x86-no_ssl.msi
          下載地址: http://httpd.apache.org/download.cgi
          mod_jkapache-2.2.3.so

          下載地址:http://archive.apache.org/dist/jakarta/tomcat-connectors/

          2安裝Jdktomcatapache,加入mod_jk連接模塊,就是把mod_jkapache-2.2.3.so文件重名mod_jk.so文件并拷到%APACHE_HOME"modules

          3、修改apache的配置文件:

          為了保持httpd.conf文件的簡潔,把jk模塊的配置放到單獨(dú)的文件中來,就在httpd.conf中增加一行調(diào)用
          代碼
           include APACHE_HOMEApache2"conf"mod_jk.conf

          4:配置mod_jk.conf
          請注意使用絕對路徑
          其實(shí)最關(guān)鍵的就是 第一條 第二條 和最后一條,如果要精簡,就保留這三條內(nèi)容就可以了。
          代碼
          # Load mod_jk module

          LoadModule jk_module "E:"Program Files"Apache Software Foundation"Apache2.2"modules"mod_jk.so"

          # Where to find workers.properties

          JkWorkersFile "E:"Program Files"Apache Software Foundation"Apache2.2"conf"workers.properties"

          # Where to put jk logs

          JkLogFile "E:"Program Files"Apache Software Foundation"Apache2.2"logs"mod_jk.log"

          # Set the jk log level [debug/error/info]

          JkLogLevel info

          # Select the log format

          JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

          # JkOptions indicate to send SSL KEY SIZE

          JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

          # JkRequestLogFormat set the request format

          JkRequestLogFormat "%w %V %T"

          # Send servlet for context /examples to worker named ajp13

          #JkMount /servlet/* ajp13

          # Send JSPs for context /examples to worker named ajp13

          JkMount /*.jsp ajp13

          JkMount /*.do ajp13

          上面這一行我們設(shè)置了了 /*.jsp ajp13 就是說把所有.jsp結(jié)尾的文件都由ajp13這個(gè)worker交給tomcat處理了,如果應(yīng)用被映射為一個(gè).do的URL,這樣就會(huì)出錯(cuò).解決方法是再添加如下一行:
          代碼
          JkMount /*.do ajp13

          5:配置apache2"conf"workers.properties
          代碼

          workers.tomcat_home=E:"Program Files"Apache Software Foundation"Tomcat 5.5

          workers.java_home=E:"Program Files"Java"jdk1.5.0_08

          worker.list=ajp13

          worker.ajp13.port=8009

          worker.ajp13.host=localhost #

          worker.ajp13.type=ajp13 #

          worker.ajp13.lbfactor=1 #
          worker.list=ajp13
          worker.ajp13.port=8009
          worker.ajp13.host=localhost #
          本機(jī),若上面Tomcat主機(jī)不為localhost,作相應(yīng)修改
          worker.ajp13.type=ajp13 #類型
          worker.ajp13.lbfactor=1 #代理數(shù),不用修改

          第二部分:虛擬主機(jī)的配置
          舉例配置2個(gè)vhost網(wǎng)站 一個(gè)是 localhost ,另一個(gè)是 www.ok.com
          當(dāng)然www.ok.com 是虛擬的,本地測試時(shí),應(yīng)該修改系統(tǒng)中的hosts文件,添加一行 127.0.0.1 www.ok.com
          1:Apache 虛擬主機(jī)配置:
          Httpd.conf文件最后添加
          代碼
          include D:"server"Apache2"conf"vhost.conf

          而vhost.conf內(nèi)容寫
          代碼
          NameVirtualHost *:80
          <VirtualHost *:80>
          ServerAdmin webmaster at localhost
          DocumentRoot "D:/server/Tomcat/webapps/ROOT"
          ServerName localhost
          ErrorLog logs/localhost-error_log
          CustomLog logs/localhost-access_log common
          </VirtualHost>

          <VirtualHost *:80>
          ServerAdmin webmaster@dummy-host dot example.com
          DocumentRoot D:/server/www/
          ServerName www.ok.com
          ErrorLog logs/ok.com-error_log
          CustomLog logs/ok.com-access_log common
          <Location /server-status> #
          這樣我可以看到apache服務(wù)器狀態(tài)
          SetHandler server-status
          Order deny,allow
          Deny from all
          Allow from localhost
          Allow from www.ok.com
          </Location>
          </VirtualHost>

          2:Tomcat虛擬主機(jī)配置
          添加新的www.ok.com 虛擬主機(jī),在tomcat安裝路徑"conf"server.xml的最后,找到<Engine>段,改為
          代碼
          <Engine>
          <Host name=”localhost” ……>
          </Host>

          <Host name="www.ok.com" debug="0" appBase="D:/server/www/" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
          <Context path="" docBase="." />
          <Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="ok.com_log." suffix=".txt" timestamp="true" />
          </Host>
          </Engine>

          3:測試虛擬主機(jī)效果
          訪問http://localhost/ 應(yīng)該可以看到原來的tomcat默認(rèn)頁面。
          寫一個(gè) index.jsp
          代碼
          <html>
          <title>
          test jsp
          </title>
          <%
          String showMessage="Oh My God!";
          out.print(showMessage);
          %>
          </html>

          放在d:/server/www下面,訪問 http://www.ok.com
          頁面顯示Oh My God! 就成功了

          posted @ 2008-08-15 14:03 范永強(qiáng) 閱讀(839) | 評論 (0)編輯 收藏

          2008年3月5日

          validate客戶端驗(yàn)證不起作用

                  要啟動(dòng)客戶端驗(yàn)證,必須將HTML標(biāo)記庫的javascript標(biāo)記放入在jsp頁面文件中,例如:
                  <html:javascript formName="selectForm"/>.
                  而且要在form標(biāo)簽中這樣寫<html:form action = "/selectAction.do"method = "post" focus="userId" onsubmit="return validateSelectForm(this);">
                  注意DynaValidatorForm(ValidatorForm)和DynaValidatorActionForm(ValidatorActionForm)的區(qū)別。前者主要的視角是formbean,而后者的視角是action。
                  當(dāng)formbean被不同的action使用時(shí),對于不同的action而言,使用的formbean的屬性集合有大有小。此時(shí)如果仍然以formbean為主體,會(huì)造成其他action的不正常使用。因此,struts中提出了DynaValidatorActionForm(ValidatorActionForm)。此時(shí)在validation.xml中的form標(biāo)簽的name屬性改為action的path屬性,又由于action中有attribute和name屬性,validation框架就可根據(jù)這個(gè)action得到對應(yīng)的formbean。
          同時(shí)注意頁面文件的相應(yīng)控件也要改為action的path屬性。例:<html:javascript formName="/selectAction"/>

          posted @ 2008-03-05 13:01 范永強(qiáng) 閱讀(841) | 評論 (3)編輯 收藏

          僅列出標(biāo)題  
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 晋宁县| 武乡县| 革吉县| 鄂尔多斯市| 遵化市| 茌平县| 台安县| 罗甸县| 南丰县| 湖北省| 华宁县| 甘德县| 如皋市| 嵊州市| 钦州市| 内江市| 吴旗县| 石棉县| 上犹县| 南昌市| 清河县| 内江市| 桐城市| 阿图什市| 余庆县| 日照市| 红桥区| 连南| 白山市| 曲麻莱县| 兴化市| 岗巴县| 兴宁市| 新闻| 绥宁县| 永靖县| 娄烦县| 丽水市| 甘南县| 淮阳县| 平邑县|