国产AV无码专区亚洲精品,18亚洲男同志videos网站,1区1区3区4区产品亚洲http://www.tkk7.com/seesea/category/33147.htmlJava初學習zh-cnWed, 16 Jul 2014 04:10:21 GMTWed, 16 Jul 2014 04:10:21 GMT60Struts2學習http://www.tkk7.com/seesea/archive/2014/07/16/415883.htmlSeesSeaSeesSeaWed, 16 Jul 2014 02:47:00 GMThttp://www.tkk7.com/seesea/archive/2014/07/16/415883.htmlhttp://www.tkk7.com/seesea/comments/415883.htmlhttp://www.tkk7.com/seesea/archive/2014/07/16/415883.html#Feedback0http://www.tkk7.com/seesea/comments/commentRss/415883.htmlhttp://www.tkk7.com/seesea/services/trackbacks/415883.html
環境沒敢用最新的,MyEclipse用的是8.5的版本,Tomcat最終選擇了6,JDK也是用的7,Struts2的版本2.3.16.3。通常的配置沒什么要記錄的,主要記錄下出問題的地方:
1、Tomcat
從MyEclipse啟動Tomcat一直報錯,后來下載了一個tcnative-1.dll文件才解決,版本要求比較嚴格,對于Tomcat6.0.41而言,這個動態鏈接庫版本要求是1.1.30,1.1.3都不行,不知道有什么區別,將文件拷貝到jre/bin下即可。
2、web.xml文件內容
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app id="WebApp_9" 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">
 3 
 4     <display-name>Struts Test</display-name>
 5 
 6     <filter>
 7         <filter-name>struts2</filter-name>
 8         <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
 9     </filter>
10 
11     <filter-mapping>
12         <filter-name>struts2</filter-name>
13         <url-pattern>/*</url-pattern>
14     </filter-mapping>
15 
16     <welcome-file-list>
17         <welcome-file>index.html</welcome-file>
18     </welcome-file-list>
19 
20 </web-app>
21 
3、struts.xml文件內容
 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE struts PUBLIC
 3     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
 4     "http://struts.apache.org/dtds/struts-2.3.dtd">
 5 
 6 <struts>
 7 
 8    <constant name="struts.enable.DynamicMethodInvocation" value="true" />
 9     <constant name="struts.devMode" value="true" />
10 
11     <package name="default" namespace="/" extends="struts-default">
12 
13         <default-action-ref name="index" />
14 
15         <global-results>
16             <result name="error">/error.jsp</result>
17         </global-results>
18 
19         <global-exception-mappings>
20             <exception-mapping exception="java.lang.Exception" result="error"/>
21         </global-exception-mappings>
22         
23         <action name="action名" class="java包名及類名">
24         <result name="success">/調用的jsp頁面文件p</result>
25         </action>
26     </package>
27 
28     <include file="example.xml"/>
29 
30     <!-- Add packages here -->
31 
32 </struts>
33 
4、調用時發現action名定義了大小寫后,地址欄也要輸入相應的大小寫,否則報錯。這個問題困擾了好久。。。。。


By SeeSea


SeesSea 2014-07-16 10:47 發表評論
]]>
Struts2 action 的 ;jsessionid=xxx 使找不到頁面 Bug 的解決 [轉帖]http://www.tkk7.com/seesea/archive/2008/08/12/221439.htmlSeesSeaSeesSeaTue, 12 Aug 2008 02:40:00 GMThttp://www.tkk7.com/seesea/archive/2008/08/12/221439.htmlhttp://www.tkk7.com/seesea/comments/221439.htmlhttp://www.tkk7.com/seesea/archive/2008/08/12/221439.html#Feedback0http://www.tkk7.com/seesea/comments/commentRss/221439.htmlhttp://www.tkk7.com/seesea/services/trackbacks/221439.html閱讀全文

SeesSea 2008-08-12 10:40 發表評論
]]>
Struts2設置http://www.tkk7.com/seesea/archive/2008/08/06/220459.htmlSeesSeaSeesSeaWed, 06 Aug 2008 08:27:00 GMThttp://www.tkk7.com/seesea/archive/2008/08/06/220459.htmlhttp://www.tkk7.com/seesea/comments/220459.htmlhttp://www.tkk7.com/seesea/archive/2008/08/06/220459.html#Feedback0http://www.tkk7.com/seesea/comments/commentRss/220459.htmlhttp://www.tkk7.com/seesea/services/trackbacks/220459.html 1、下載Struts2的jar包。下載地址:
http://struts.apache.org/2.0.9/index.html
2、解壓縮必要文件到項目中WebRoot\WEB-INF\lib下。灑家最開始引用的為:
commons-logging-1.0.4.jar
ognl-2.6.11.jar
xwork-2.0.4.jar
freemarker-2.3.8.jar
struts2-core-2.0.11.1.jar
3、修改項目中WebRoot\WEB-INF\web.xml文檔,增加如下內容
<filter>
   
<filter-name>struts2</filter-name>
   
<filter-class>
   org.apache.struts2.dispatcher.FilterDispatcher
   
</filter-class>
</filter>
<filter-mapping>
   
<filter-name>struts2</filter-name>
   
<url-pattern>/*</url-pattern>
</filter-mapping> 
4、在項目中WebRoot/WEB-INF/classes下建立struts.xml文件。如果在MyEclipse中,可以直接建立在項目的src目錄中,MyEclipse將自動將其拷貝到發布目錄的相關位置。文件內容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd"
>
    
<struts>
    
<package name="struts2" extends="struts-default">
    
<!--
    此處加入不同的action
    
-->
    
</package>
    
</struts>
   
5、建立jsp文件
如果使用struts的標簽,則需要在jsp文件的第一行后插入:
<%@ taglib prefix="s" uri="/struts-tags" %>
暫時有事,回頭補充。



SeesSea 2008-08-06 16:27 發表評論
]]>
Eclipse發布程序http://www.tkk7.com/seesea/archive/2008/07/24/217213.htmlSeesSeaSeesSeaThu, 24 Jul 2008 08:19:00 GMThttp://www.tkk7.com/seesea/archive/2008/07/24/217213.htmlhttp://www.tkk7.com/seesea/comments/217213.htmlhttp://www.tkk7.com/seesea/archive/2008/07/24/217213.html#Feedback0http://www.tkk7.com/seesea/comments/commentRss/217213.htmlhttp://www.tkk7.com/seesea/services/trackbacks/217213.html 不過導出后遇到一些問題,就是第三方jar文件錯誤,這個找了一下,同樣在BlogJava上有人發表了方法,他推薦的是第一種方法,灑家用的是第二種。原文見http://www.tkk7.com/mimi-van/archive/2007/11/28/163597.html
為了自己閱讀方便,也粘貼一份吧。失敬,失敬!

我存檔的一篇java資料,里面對 -jar 情況下的classpath 有了比較詳細的闡述。

當用java -jar yourJarExe.jar來運行一個經過打包的應用程序的時候,你會發現如何設置-classpath參數應用程序都找不到相應的第三方類,報 ClassNotFound錯誤。實際上這是由于當使用-jar參數運行的時候,java VM會屏蔽所有的外部classpath,而只以本身yourJarExe.jar的內部class作為類的尋找范圍。

**解決方案**

一 BootStrap class擴展方案

Java 命令行提供了如何擴展bootStrap 級別class的簡單方法.
-Xbootclasspath:     完全取代基本核心的Java class 搜索路徑.
                                   不常用,否則要重新寫所有Java 核心class
-Xbootclasspath/a: 后綴在核心class搜索路徑后面.常用!!
-Xbootclasspath/p: 前綴在核心class搜索路徑前面.不常用,避免
                                   引起不必要的沖突.

語法如下:
 (分隔符與classpath參數類似,unix使用:號,windows使用;號,這里以unix為例)
 java -Xbootclasspath/a:/usrhome/thirdlib.jar: -jar yourJarExe.jar

二 extend class 擴展方案

Java exten class 存放在{Java_home}"jre"lib"ext目錄下.當調用Java時,對擴展class路徑的搜索是自動的.總會搜索的.這樣,解決的方案就很簡單了,將所有要使用的第三方的jar包都復制到ext 目錄下.

三 User class擴展方案

當使用-jar執行可執行Jar包時,JVM將Jar包所在目錄設置為codebase目錄,所有的class搜索都在這個目錄下開始.所以如果使用了其他第三方的jar包,一個比較可以接受的可配置方案,就是利用jar包的Manifest擴展機制.
步驟如下:

 1.將需要的第三方的jar包,復制在同可執行jar所在的目錄或某個子目錄下. 比如:jar 包在 /usrhome/yourJarExe.jar 那么你可以把所有jar包復制到/usrhome目錄下或/usrhome/lib 等類似的子目錄下.

 2.修改Manifest 文件

 在Manifest.mf文件里加入如下行

 Class-Path:classes12.jar lib/thirdlib.jar

 Class-Path 是可執行jar包運行依賴的關鍵詞.詳細內容可以參考 http://java.sun.com/docs/books/tutorial/deployment/jar/downman.html 。 要注意的是 Class-Path 只是作為你本地機器的CLASSPATH環境變量的一個縮寫,也就是說用這個前綴表示在你的jar包執行機器上所有的CLASSPATH目錄下尋找相應的 第三方類/類庫。你并不能通過 Class-Path 來加載位于你本身的jar包里面(或者網絡上)的jar文件。因為從理論上來講,你的jar發布包不應該再去包含其他的第三方類庫(而應該通過使用說明來 提醒用戶去獲取相應的支持類庫)。如果由于特殊需要必須把其他的第三方類庫(jar, zip, class等)直接打包在你自己的jar包里面一起發布,你就必須通過實現自定義的ClassLoader來按照自己的意圖加載這些第三方類庫。


以上三種方法推薦第一種,擴展性好,操作起來也最方便.
另外編寫自己的ClassLoader,來動態載入class,是更加復雜和高級技術.限于篇幅,不贅述.有興趣了解可以去google一下custom classloader,或者參考我的另一篇日志:讓classpath參數走開

Java的安全機制隨不同的JDK版本有不同的變化,會影響很多核心CLASS,比如Thread,所以很多大型商業軟件,要求JDK的版本很嚴格.部分原因也在此.這也要求在發布自己編寫的應用時候,不管大小,都要說明開發和測試的JDK版本.


本文所述方法測試基于j2sdk 1.4.2_04-b05

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

附:背景知識

自JDK 1.2以后,JVM采用了委托(delegate)模式來載入class.采用這種設計的原因可以參考http://java.sun.com/docs/books/tutorial/ext/basics/load.html

歸納來講:是基于JVM sandbox(沙盒)安裝模型上提供應用層的可定制的安全機制.


Java虛擬機(JVM)尋找Class的順序

1. Bootstrap classes

屬于Java 平臺核心的class,比如java.lang.String等.及rt.jar等重要的核心級別的class.這是由JVM Bootstrap class loader來載入的.一般是放置在{java_home}"jre"lib目錄下

2. Extension classes

基于Java擴展機制,用來擴展Java核心功能模塊.比如Java串口通訊模塊comm.jar.一般放置在{Java_home}"jre"lib"ext目錄下

3. User classes

開發人員或其他第三方開發的Java程序包.通過命令行的-classpath或-cp,或者通過設置 CLASSPATH環境變量來引用.JVM通過放置在{java_home}"lib"tools.jar來尋找和調用用戶級的class.常用的 javac也是通過調用tools.jar來尋找用戶指定的路徑來編譯Java源程序.這樣就引出了User class路徑搜索的順序或優先級別的問題.

 3.1 缺省值:調用Java或javawa的當前路徑(.),是開發的class所存在的當前目錄
 3.2 CLASSPATH環境變量設置的路徑.如果設置了CLASSPATH,則CLASSPATH的值會覆蓋缺省值
 3.3 執行Java的命令行-classpath或-cp的值,如果制定了這兩個命令行參數之一,它的值會覆蓋環境變量CLASSPATH的值
 3.4 -jar 選項:如果通過java -jar 來運行一個可執行的jar包,這當前jar包會覆蓋上面所有的值.換句話說,-jar 后面所跟的jar包的優先級別最高,如果指定了-jar選項,所有環境變量和命令行制定的搜索路徑都將被忽略.JVM APPClassloader將只會以jar包為搜索范圍.
有關可執行jar有許多相關的安全方面的描述,可以參考http://java.sun.com/docs/books/tutorial/jar/ 來全面了解.

這也是為什么應用程序打包成可執行的jar包后,不管你怎么設置classpath都不能引用到第三方jar包的東西了

關于 什么是 jar文件可以參看以下鏈接:

http://www-128.ibm.com/developerworks/cn/java/j-jar/index.html


灑家測試的環境是:Ubuntu8.04+jdk 1.6+Eclipse 3.2。



SeesSea 2008-07-24 16:19 發表評論
]]>
JAVA實現CRC16校驗http://www.tkk7.com/seesea/archive/2008/07/24/217149.htmlSeesSeaSeesSeaThu, 24 Jul 2008 04:11:00 GMThttp://www.tkk7.com/seesea/archive/2008/07/24/217149.htmlhttp://www.tkk7.com/seesea/comments/217149.htmlhttp://www.tkk7.com/seesea/archive/2008/07/24/217149.html#Feedback2http://www.tkk7.com/seesea/comments/commentRss/217149.htmlhttp://www.tkk7.com/seesea/services/trackbacks/217149.html要求:

CRC循環冗余錯誤校驗計算方法

CRC-16C(循環冗余錯誤校驗)生成CRC-16校驗字節的步聚如下:

(1)裝入一個16位寄存器,所有數位均為1

(2)16位寄存器的高位字節與開始8位字節進行“異或”運算。運算結果放入這個16位寄存器。

(3)把這個16位寄存器向右移1位。

(4a)若向右(標記位)移出的數位是1,則生成多項式1010000000000001和這個寄存器進行“異或”運算。

(4b)若向右移出的數位是0,則返回(3)

(5)重處處(3)(4),直至移出8位。

(6)另外8位與該16位寄存器進行“異或”運算。

(7)重處處(3)-(6),直至該報文所有字節均與16位寄存器進行“異或”運算,并移位8次。

(8)這個16位寄存器的內容即2字節CRC錯誤校驗。

public class CRC {
    
private byte[] CRC=new byte[2];
    
    
byte data;
    
byte[] reg=new byte[2];
    
byte[] ploy=new byte[2];
    
byte Op;
    
    
public CRC(byte[] source){
        
//初始化多項式
        int temp=0xA001;
        ploy
=InttoByteArray(temp,2);
        
//初始化寄存器
        temp=0xFFFF;
        reg
=InttoByteArray(temp,2);
        
        
for(int i=0;i<source.length;i++){
            
//獲取數據
            data=source[i];
            
//與寄存器中數據進行異或操作
            reg[1]=(byte) (reg[1]^data);
            
//移動數據
            for(int j=0;j<8;j++){
                
//獲取數據的最后一位,即被移動出的數據判斷是否與多項式異或
                Op=reg[0];
                
//右移一位
                reg=InttoByteArray(ByteArraytoInt(reg)>>1,2);
                
//如果移出數據為1
                if((Op&0x01)==1){
                    
//與多項式進行異或操作
                    reg[0]=(byte) (reg[0]^ploy[0]);
                    reg[
1]=(byte) (reg[1]^ploy[1]);
                }                
            }
        }
        CRC
=reg;        
    }

    
public byte[] getCRC() {
        
return CRC;
    }
//格式化輔助函數
    private static byte[] InttoByteArray(int iSource, int iArrayLen) {
        
byte[] bLocalArr = new byte[iArrayLen];
        
for ( int i = 0; (i < 4&& (i < iArrayLen); i++) {
            bLocalArr[i] 
= (byte)( iSource>>8*& 0xFF );          
        }
        
return bLocalArr;
    }
    
    
private static int ByteArraytoInt(byte[] bRefArr) {
        
int iOutcome = 0;
        
byte bLoop;
        
        
for ( int i =0; i<bRefArr.length ; i++) {
            bLoop 
= bRefArr[i];
            iOutcome
+= (bLoop & 0xFF<< (8 * i);
          
        }         
        
return iOutcome;
    }    
}

開始把高低位搞混了,以為reg[0]是高位,調整了半天。郁悶!
另外,好像CRC算法也有好多種,我就沒在網上找到用戶要求的這種算法。貌似這個算法是Modbus協議中的CRC校驗方式。有待確認。



SeesSea 2008-07-24 12:11 發表評論
]]>
JAVA基本數據類型與其他語言數據類型之間的轉換方法 (ZT)http://www.tkk7.com/seesea/archive/2008/07/20/216159.htmlSeesSeaSeesSeaSun, 20 Jul 2008 04:02:00 GMThttp://www.tkk7.com/seesea/archive/2008/07/20/216159.htmlhttp://www.tkk7.com/seesea/comments/216159.htmlhttp://www.tkk7.com/seesea/archive/2008/07/20/216159.html#Feedback0http://www.tkk7.com/seesea/comments/commentRss/216159.htmlhttp://www.tkk7.com/seesea/services/trackbacks/216159.html通信格式轉換
Java和一些windows編程語言如c、c++、delphi所寫的網絡程序進行通訊時,需要進行相應的轉換
高、低字節之間的轉換
windows的字節序為低字節開頭
linux,unix的字節序為高字節開頭
java則無論平臺變化,都是高字節開頭  閱讀全文

SeesSea 2008-07-20 12:02 發表評論
]]>
主站蜘蛛池模板: 免费观看无遮挡www的视频 | 亚洲小说区图片区| 狠狠入ady亚洲精品| 在线免费观看亚洲| 国产av无码专区亚洲av果冻传媒 | 免费观看黄网站在线播放| 国产亚洲精品美女久久久| 国产精品亚洲专区无码唯爱网| 成年黄网站色大免费全看| 国产V亚洲V天堂A无码| 免费无码婬片aaa直播表情| 暖暖免费高清日本一区二区三区 | 亚洲一区二区三区写真 | 成人最新午夜免费视频| 亚洲熟妇无码久久精品| 成全动漫视频在线观看免费高清版下载 | 成人免费乱码大片A毛片| 亚洲国产精品日韩| 香蕉视频免费在线播放| 国产日产成人免费视频在线观看| 亚洲欧美日韩综合久久久| 在线观看免费人成视频色| 亚洲国产精品成人综合色在线婷婷| 无码精品国产一区二区三区免费 | 亚洲成人免费在线| 亚洲av日韩av激情亚洲| 久久精品免费视频观看| 国产V亚洲V天堂A无码| 日本卡1卡2卡三卡免费| 亚洲最大成人网色| 67194成手机免费观看| 亚洲一级毛片免费看| 成人男女网18免费视频| 亚洲爆乳精品无码一区二区| 最近最新中文字幕完整版免费高清| 2020年亚洲天天爽天天噜| 久久午夜免费视频| 亚洲国产无线乱码在线观看| www.亚洲色图| 大地影院MV在线观看视频免费| 亚洲最大的成网4438|