日木av无码专区亚洲av毛片,亚洲AV成人噜噜无码网站,久久精品国产亚洲AVhttp://www.tkk7.com/heyang/category/53159.html何楊的編程點滴zh-cnThu, 11 Apr 2013 00:40:46 GMTThu, 11 Apr 2013 00:40:46 GMT60zt:HTTP長連接http://www.tkk7.com/heyang/archive/2013/04/10/397663.html何楊何楊Wed, 10 Apr 2013 13:16:00 GMThttp://www.tkk7.com/heyang/archive/2013/04/10/397663.htmlhttp://www.tkk7.com/heyang/comments/397663.htmlhttp://www.tkk7.com/heyang/archive/2013/04/10/397663.html#Feedback0http://www.tkk7.com/heyang/comments/commentRss/397663.htmlhttp://www.tkk7.com/heyang/services/trackbacks/397663.htmlhttp://www.cnblogs.com/Mygirl/archive/2012/03/27/2419971.html

     什么是HTTP長連接? HTTP長連接,與一般每次發(fā)起http請求或響應(yīng)都要建立一個tcp連接不同,http長連接利用同一個tcp連接處理多個http請求和響應(yīng),也叫 HTTP keep-alive,或者http連接重用。使用http長連接可以提高http請求/響應(yīng)的性能。

     使用http長連接有很多好處,包括:
更少的建立和關(guān)閉tcp連接,可以減少網(wǎng)絡(luò)流量。 因為已建立的tcp握手,減少后續(xù)請求的延時。 長時間的連接讓tcp有充足的時間判斷網(wǎng)絡(luò)的擁塞情況,方便做出下步操作。

    這些優(yōu)點在使用https連接時更顯著。可以減少多次建立高消耗的SSL/TLS握手。 在HTTP/1.1中,默認使用的是長連接方式。客戶端默認服務(wù)端會保持長連接,即便返回錯誤響應(yīng);除非明確指示不使用長連接。同時,協(xié)議中也指定了客戶 端可以發(fā)送關(guān)閉信號到服務(wù)端來關(guān)閉TCP連接。

    怎樣是連接可以重用? 因為TCP是基于流的協(xié)議,所以HTTP協(xié)議需要有一種方式來指示前一個響應(yīng)的結(jié)束和后一個響應(yīng)的開始來重用已建立的連接。所以,它要求連接中傳輸?shù)男畔?必須有自定義的消息長度。自定義消息長度可以通過設(shè)置 Content-Length 消息頭,若傳輸編碼的實體內(nèi)容塊,則每個數(shù)據(jù)塊的標(biāo)明數(shù)據(jù)塊的大小,而且響應(yīng)體也是以一個特殊的數(shù)據(jù)塊結(jié)束。

    若中間存在代理服務(wù)器將會如何? 因為長連接僅占用一條傳輸鏈路,所以代理服務(wù)器能否正確得與客戶端和服務(wù)器端(或者其他代理服務(wù)器)發(fā)送長連接或非長連接的信號尤為重要。但是HTTP的 客戶端或服務(wù)器端來看,代理服務(wù)器對他們來說是透明的,即便長連接是需要關(guān)注的。

     當(dāng)前的JDK如何處理Keep-Alive? JDK同時支持HTTP/1.1 和 HTTP/1.0。 當(dāng)應(yīng)用程序讀取完響應(yīng)體內(nèi)容后或者調(diào)用 close() 關(guān)閉了URLConnection.getInputStream()返回的流,JDK中的HTTP協(xié)議句柄將關(guān)閉連接,并將連接放到連接緩存中,以便后 面的HTTP請求使用。 對HTTP keep-Alive 的支持是透明的。但是,你也可以通過系統(tǒng)屬性http.keepAlive和http.maxConnections以及HTTP/1.1協(xié)議中的特定的 請求響應(yīng)頭來控制。控制Keep-Alive表現(xiàn)的系統(tǒng)屬性有:
    http.keepAlive=<布爾值> 默認: true 指定長連接是否支持
    http.maxConnections=<整數(shù)> 默認: 5 指定對同一個服務(wù)器保持的長連接的最大個數(shù)。
    影響長連接的HTTP header是: Connection: close 如果請求或響應(yīng)中的Connection header被指定為close,表示在當(dāng)前請求或響應(yīng)完成后將關(guān)閉TCP連接。

     JDK中的當(dāng)前實現(xiàn)不支持緩存響應(yīng)體,所以應(yīng)用程序必須讀取完響應(yīng)體內(nèi)容或者調(diào)用close()關(guān)閉流并丟棄未讀內(nèi)容來重用連接。此外,當(dāng)前實現(xiàn)在清理連接時并未使用阻塞讀,這就意味這如果響應(yīng)體不可用,連接將不能被重用。

    JDK1.5中的新特性 當(dāng)應(yīng)用接收到400或500的HTTP響應(yīng)時,它將忽略IOException 而另發(fā)一個HTTP 請求。這種情況下,底層的TCP連接將不會再保持,因為響應(yīng)內(nèi)容還在等待被讀取,socket 連接未清理,不能被重用。應(yīng)用可以在捕獲IOException 以后調(diào)用HttpURLConnection.getErrorStream() ,讀取響應(yīng)內(nèi)容然后關(guān)閉流。但是現(xiàn)存的應(yīng)用沒有這么做,不能體現(xiàn)出長連接的優(yōu)勢。為了解決這個問題,介紹下workaround。
當(dāng)響應(yīng)體的狀態(tài)碼大于或等于400的時候,workaround 將在一定時間內(nèi)緩存一定數(shù)量的響應(yīng)內(nèi)容,釋放底層的socket連接來重用。基本原理是當(dāng)響應(yīng)狀態(tài)碼大于或等于400時,服務(wù)器端會發(fā)送一個簡短的響應(yīng)體來指明連接誰以及如何恢復(fù)連接。

   

下面介紹一些SUN實現(xiàn)中的特定屬性來幫助接收到錯誤響應(yīng)體后清理連接: 主要的一個是: sun.net.http.errorstream.enableBuffering=<布爾值> 默認: false

     當(dāng)上面屬性設(shè)置為true后,在接收到響應(yīng)碼大于或等于400是,HTTP 句柄將嘗試緩存響應(yīng)內(nèi)容。釋放底層的socket連接來重用。所以,即便應(yīng)用不調(diào)用getErrorStream()來讀取響應(yīng)內(nèi)容,或者調(diào)用 close()關(guān)閉流,底層的socket連接也將保持連接狀態(tài)。
下面的兩個系統(tǒng)屬性是為了更進一步控制錯誤流的緩存行為: sun.net.http.errorstream.timeout=<int> in 毫秒 默認: 300 毫秒

     你如何做可以保持連接為連接狀態(tài)呢? 不要忽略響應(yīng)體而丟棄連接。這樣會是TCP連接閑置,當(dāng)不再被引用后將會被垃圾回收器回收。 如果getInputStream()返回成功,讀取全部響應(yīng)內(nèi)容。如果拋出IOException ,捕獲異常并調(diào)用getErrorStream() 讀取響應(yīng)內(nèi)容(如果存在響應(yīng)內(nèi)容)。
即便你對響應(yīng)內(nèi)容不感興趣,也要讀取它,以便清理連接。但是,如果響應(yīng)內(nèi)容很長,你讀取到開始部分后就不感興趣了,可以調(diào)用close()來關(guān)閉流。值得注意的是,其他部分的數(shù)據(jù)已在讀取中,所以連接將不能被清理進而被重用。
下面是一個基于上面建議的代碼樣例:

try
    URL a = new URL(args[0]); 
    URLConnection urlc = a.openConnection(); 
    is = conn.getInputStream(); 
    int ret = 0; 
    while ((ret = is.read(buf)) > 0) { 
      processBuf(buf); 
    }
    // close the inputstream
    is.close();
} catch (IOException e) {
    try {
        respCode = ((HttpURLConnection)conn).getResponseCode();
        es = ((HttpURLConnection)conn).getErrorStream();
        int ret = 0;
        // read the response body
        while ((ret = es.read(buf)) > 0) {
            processBuf(buf);
        }
        // close the errorstream
        es.close();
    } catch(IOException ex) {
        // deal with the exception
    }
}

  如果你預(yù)先就對響應(yīng)內(nèi)容不感興趣,你可以使用HEAD 請求來代替GET 請求。例如,獲取web資源的meta信息或者測試它的有效性,可訪問性以及最近的修改。下面是代碼片段:

URL a = new URL(args[0]);
URLConnection urlc = a.openConnection();
HttpURLConnection httpc = (HttpURLConnection)urlc;
// only interested in the length of the resource
httpc.setRequestMethod("HEAD");
int len = httpc.getContentLength();


何楊 2013-04-10 21:16 發(fā)表評論
]]>
MySql中LongText字段對應(yīng)Hibernate映射文件的設(shè)置http://www.tkk7.com/heyang/archive/2013/04/02/397323.html何楊何楊Tue, 02 Apr 2013 15:18:00 GMThttp://www.tkk7.com/heyang/archive/2013/04/02/397323.htmlhttp://www.tkk7.com/heyang/comments/397323.htmlhttp://www.tkk7.com/heyang/archive/2013/04/02/397323.html#Feedback0http://www.tkk7.com/heyang/comments/commentRss/397323.htmlhttp://www.tkk7.com/heyang/services/trackbacks/397323.html<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
<hibernate-mapping package="com.ibm.heyang.XXX">
    
<class name="XXXClas" table="XXX_Table">
        
<id name="id" column="ID" >
            
<generator class="increment"/>
        
</id>
        
        
<property name="name" column="name" not-null="true"/>
        
<property name="content" type="text">
            
<column name="content" length = "16777216" />
        
</property>    
    
    
</class>
</hibernate-mapping>

以上length="16777216"
是關(guān)鍵,它會把字段對應(yīng)到MySql的LONGTEXT類型.

以上是受到
http://sonyfe25cp.iteye.com/blog/830566
啟發(fā)的.



何楊 2013-04-02 23:18 發(fā)表評論
]]>
兩個挺實用的字符串拼接操作的函數(shù)http://www.tkk7.com/heyang/archive/2012/12/24/393396.html何楊何楊Mon, 24 Dec 2012 06:29:00 GMThttp://www.tkk7.com/heyang/archive/2012/12/24/393396.htmlhttp://www.tkk7.com/heyang/comments/393396.htmlhttp://www.tkk7.com/heyang/archive/2012/12/24/393396.html#Feedback0http://www.tkk7.com/heyang/comments/commentRss/393396.htmlhttp://www.tkk7.com/heyang/services/trackbacks/393396.html1.StringUtils.join
使用方法:
String result=StringUtils.join(arr,'','');
如果arr=["1","2","3","A","B","C"];
那么result="1,2,3,A,B,C";
這個用在in查詢的場合很好.
如果要顛倒過來,用String[] arr=result.split(",");就好了.
當(dāng)然,String.split也是一個非常實用的函數(shù).

2.MessageFormat.format
使用方法:
String message = "Territory {0} has been transferred to Team {1}.";
Object[] params={"A1","B2"};
String transferMsg = MessageFormat.format(message,params);//Territory A1 has been transferred to Team B2.
這個函數(shù)用于預(yù)設(shè)空缺待填文本的場合很好.



何楊 2012-12-24 14:29 發(fā)表評論
]]>
將SQL自動補全的工具類http://www.tkk7.com/heyang/archive/2012/12/17/393124.html何楊何楊Mon, 17 Dec 2012 14:55:00 GMThttp://www.tkk7.com/heyang/archive/2012/12/17/393124.htmlhttp://www.tkk7.com/heyang/comments/393124.htmlhttp://www.tkk7.com/heyang/archive/2012/12/17/393124.html#Feedback0http://www.tkk7.com/heyang/comments/commentRss/393124.htmlhttp://www.tkk7.com/heyang/services/trackbacks/393124.html為了減輕這種無謂的勞動,本人設(shè)計了一個類來代替完成這種累而又容易讓人出錯的活.
下面是代碼:
package com.heyang;

import java.text.MessageFormat;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 將SQL語句中的問號替換成參數(shù)
 * 此類用于調(diào)試SQL時減輕手工加入?yún)?shù)的勞動量
 * 
@author heyang@gmail.com
 *
 
*/
public class SqlCompletion{
    
// 輸入的SQL語句
    private String sql;
    
    
// 輸入的參數(shù)
    private String[] arr;
    
    
// 構(gòu)造函數(shù)
    public SqlCompletion(String sql,Object[] params){
        
this.sql=sql;
        
        arr
=new String[params.length];
        
        
for(int i=0;i<arr.length;i++){
            arr[i]
="'"+params[i].toString()+"'";
        }
    }
    
    
/**
     * 取得將問號替換成參數(shù)的補全SQL
     * 
@return
     
*/
    
public String getCompletedSql(){
        Pattern p 
= Pattern.compile("\\?",Pattern.CASE_INSENSITIVE);

        Matcher m 
= p.matcher(sql);
        StringBuffer sb 
= new StringBuffer();

        
boolean result = m.find();
        
int index=0;

        
while (result) {
            m.appendReplacement(sb, 
"{"+index+"}");
            index
++;
            result 
= m.find();
        }
        m.appendTail(sb);
        String repSql
=sb.toString();

        
        
return MessageFormat.format(repSql,arr);
    }
    
    
// 測試
    public static void main(String[] args){
        Object[] params
={"c1","c2","c3","c4"};
        SqlCompletion s
=new SqlCompletion("select * from t where t.f1=? and t.f2=? and t.f3=? and t.f4=? ",params);
        System.out.println(s.getCompletedSql());        
    }
}

輸出結(jié)果是:
select * from t where t.f1='c1' and t.f2='c2' and t.f3='c3' and t.f4='c4'

你可以把此類拷貝到你的項目中,只要標(biāo)明我是原作者就行.

何楊 2012-12-17 22:55 發(fā)表評論
]]>
POI 常用操作語句http://www.tkk7.com/heyang/archive/2012/12/14/393013.html何楊何楊Fri, 14 Dec 2012 09:45:00 GMThttp://www.tkk7.com/heyang/archive/2012/12/14/393013.htmlhttp://www.tkk7.com/heyang/comments/393013.htmlhttp://www.tkk7.com/heyang/archive/2012/12/14/393013.html#Feedback0http://www.tkk7.com/heyang/comments/commentRss/393013.htmlhttp://www.tkk7.com/heyang/services/trackbacks/393013.htmlPOI是Java對Office操作的常用工具包,網(wǎng)上資料有很多,但良莠不齊,臨時便找邊試容易耽誤時間,故收集一些常用操作在這里以便查閱.

1.創(chuàng)建Sheet
Sheet sheet = workbook.createSheet();
workbook.setSheetName(0, "Sheet0");

2.設(shè)置列寬
static final int[] COLUMN_WIDTHS = new int[] { 4*3500, 2*3500, 5*3500,
            2*3500, 3*3500, 3*3500, 3500, 3*3500, 2*3800, 2*3500};
for (int colnum = 0; colnum < COLUMN_WIDTHS.length; colnum++) {
    sheet.setColumnWidth(colnum, COLUMN_WIDTHS[colnum]);
}

3.設(shè)置缺省行高
sheet.setDefaultRowHeight((short)360);

4.設(shè)置某一行行高
Row rowFirst = sheet.createRow(0);
rowFirst.setHeightInPoints(20.0f);

5.給單元格設(shè)置字體及下邊框
Cell cell00 = rowFirst.createCell(0);
cell00.setCellValue("abc123");            

HSSFFont fontAriel12Bold = workbook.createFont();
fontAriel12Bold.setFontName("Arial");
fontAriel12Bold.setFontHeightInPoints((short)12);
fontAriel12Bold.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
fontAriel12Bold.setColor(HSSFColor.RED.index);

HSSFCellStyle cell00FontStyle = workbook.createCellStyle();
cell00FontStyle.setBorderBottom(HSSFCellStyle.BORDER_THICK);
cell00FontStyle.setFont(fontAriel12Bold);
cell00.setCellStyle(cell00FontStyle);

6.給單元格設(shè)置背景色
HSSFCellStyle blueStyle = workbook.createCellStyle();
blueStyle.setBorderTop(HSSFCellStyle.BORDER_THICK);
blueStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
blueStyle.setFillForegroundColor(HSSFColor.SKY_BLUE.index);
blueStyle.setFillPattern(CellStyle.SOLID_FOREGROUND);
Cell cell=row9.createCell(0);
cell.setCellStyle(blueStyle);


何楊 2012-12-14 17:45 發(fā)表評論
]]>
POI設(shè)置Excel中顏色效果展示http://www.tkk7.com/heyang/archive/2012/12/13/392958.html何楊何楊Thu, 13 Dec 2012 15:36:00 GMThttp://www.tkk7.com/heyang/archive/2012/12/13/392958.htmlhttp://www.tkk7.com/heyang/comments/392958.htmlhttp://www.tkk7.com/heyang/archive/2012/12/13/392958.html#Feedback0http://www.tkk7.com/heyang/comments/commentRss/392958.htmlhttp://www.tkk7.com/heyang/services/trackbacks/392958.htmlOI導(dǎo)出Excel文檔時,可以設(shè)置很多格式效果,比如:邊框,字體,顏色等等。
本文僅僅列出顏色的列表展示,方便大家查閱。  
顏色Class名稱short

BLACK8

BROWN60

OLIVE_GREEN59

DARK_GREEN58

DARK_TEAL56

DARK_BLUE18

INDIGO62

GREY_80_PERCENT63

DARK_RED16

ORANGE53

DARK_YELLOW19

GREEN17

TEAL21

BLUE12

BLUE_GREY54

GREY_50_PERCENT23

RED10

LIGHT_ORANGE52

LIME50

SEA_GREEN57

AQUA49

LIGHT_BLUE48

VIOLET20

GREY_40_PERCENT55

PINK14

GOLD51

YELLOW13

BRIGHT_GREEN11

TURQUOISE15

SKY_BLUE40

PLUM61

GREY_25_PERCENT22

ROSE45

TAN47

LIGHT_YELLOW43

LIGHT_GREEN42

LIGHT_TURQUOISE41

PALE_BLUE44

LAVENDER46

WHITE9

CORNFLOWER_BLUE24

LEMON_CHIFFON26

MAROON25

ORCHID28

CORAL29

ROYAL_BLUE30

LIGHT_CORNFLOWER_BLUE31

AUTOMATIC64


何楊 2012-12-13 23:36 發(fā)表評論
]]>
UTF-8 轉(zhuǎn)化小程序http://www.tkk7.com/heyang/archive/2012/09/27/388748.html何楊何楊Thu, 27 Sep 2012 15:48:00 GMThttp://www.tkk7.com/heyang/archive/2012/09/27/388748.htmlhttp://www.tkk7.com/heyang/comments/388748.htmlhttp://www.tkk7.com/heyang/archive/2012/09/27/388748.html#Feedback0http://www.tkk7.com/heyang/comments/commentRss/388748.htmlhttp://www.tkk7.com/heyang/services/trackbacks/388748.htmlhttp://www.tkk7.com/Files/heyang/Utf8Test20120927.rar

轉(zhuǎn)化效果:
%E4%BD%95%E6%9D%A8%E5%88%B0%E6%AD%A4%E4%B8%80%E6%B8%B8%EF%BC%81
何楊到此一游!

有時候也挺好玩的。


何楊 2012-09-27 23:48 發(fā)表評論
]]>
取得Spring上下文的函數(shù)http://www.tkk7.com/heyang/archive/2012/04/20/375392.html何楊何楊Fri, 20 Apr 2012 09:31:00 GMThttp://www.tkk7.com/heyang/archive/2012/04/20/375392.htmlhttp://www.tkk7.com/heyang/comments/375392.htmlhttp://www.tkk7.com/heyang/archive/2012/04/20/375392.html#Feedback0http://www.tkk7.com/heyang/comments/commentRss/375392.htmlhttp://www.tkk7.com/heyang/services/trackbacks/375392.html
ApplicationContext context=ContextLoader.getCurrentWebApplicationContext();

當(dāng)Spring啟動起來后,取得上下文可以如此處理,上述代碼適宜放在靜態(tài)構(gòu)造子中,然后將值傳給一個靜態(tài)變量。

何楊 2012-04-20 17:31 發(fā)表評論
]]>
Spring MVC 例子http://www.tkk7.com/heyang/archive/2012/04/17/374939.html何楊何楊Tue, 17 Apr 2012 08:51:00 GMThttp://www.tkk7.com/heyang/archive/2012/04/17/374939.htmlhttp://www.tkk7.com/heyang/comments/374939.htmlhttp://www.tkk7.com/heyang/archive/2012/04/17/374939.html#Feedback0http://www.tkk7.com/heyang/comments/commentRss/374939.htmlhttp://www.tkk7.com/heyang/services/trackbacks/374939.html工程下載:
http://115.com/file/e76qy5z1
本工程適用于MyEclipse

WAR文件下載
http://115.com/file/behpzdxf
本W(wǎng)ar已經(jīng)與WAS6.1測試過

一些重要的代碼
appctx.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    
<bean id="userService" class="com.service.UserService">
    
</bean> 

</beans>

UserController.java
package com.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.domain.User;
import com.service.UserService;

@Controller
@RequestMapping(
"/user")
public class UserController{
    @Autowired
    
private UserService userService;
    
    
    @RequestMapping(
"/register")
    
public ModelAndView createUser(User user){
        userService.register(user);
        
        ModelAndView mav
=new ModelAndView();
        
        mav.setViewName(
"registerOk");
        mav.addObject(user);
        
        
return mav;
    }
    
    @RequestMapping(
"/login")
    
public ModelAndView login(User user){
        userService.login(user);
        
        ModelAndView mav
=new ModelAndView();
        
        mav.setViewName(
"loginOk");
        mav.addObject(user);
        
        
return mav;
    }
}

User.java
package com.domain;


public class User{
    
private String userName;
    
    
private String userPswd;
    
    
public String getUserName() {
        
return userName;
    }
    
public void setUserName(String userName) {
        
this.userName = userName;
    }
    
public String getUserPswd() {
        
return userPswd;
    }
    
public void setUserPswd(String userPswd) {
        
this.userPswd = userPswd;
    }
}

UserService.java
package com.service;

import com.domain.User;


public class UserService{
    
public boolean login(User user){
        
return true;
    }
    
    
public boolean register(User user){
        
return true;
    }
}
spring-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:context
="http://www.springframework.org/schema/context"
    xsi:schemaLocation
="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd   
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd   
       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd   
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"
>

    
<context:annotation-config />
    
    
<!-- 掃描 com.controller下標(biāo)記了@Controller注解的類 -->
    
<context:component-scan base-package="com.controller" />
    
    
<!-- 啟動Spring MVC的注解功能,完成請求和注解POJO的映射 -->
    
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />

    
<!-- 視圖名稱解析器 p:prefix前綴是路徑,p:suffix是擴展名-->
    
<bean
        
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
        p:prefix
="/" p:suffix=".jsp" />

    
<bean id="multipartResolver"
        class
="org.springframework.web.multipart.commons.CommonsMultipartResolver"
        p:defaultEncoding
="utf-8" />
</beans> 

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation
="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
>
    
<display-name>SpringMVCSample01</display-name>

    
<welcome-file-list>
        
<welcome-file>index.jsp</welcome-file>
    
</welcome-file-list>

    
<context-param>
        
<param-name>contextConfigLocation</param-name>
        
<param-value>classpath:appctx.xml</param-value>
    
</context-param>
    
<listener>
        
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    
</listener>

    
<servlet>
        
<servlet-name>spring</servlet-name>
        
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        
<load-on-startup>1</load-on-startup>
    
</servlet>
    
<servlet-mapping>
        
<servlet-name>spring</servlet-name> 
        
<url-pattern>*.html</url-pattern>
    
</servlet-mapping>
</web-app>

login.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    
<head>
        
<title>登錄頁面</title>
    
</head>

    
<body>
        登錄
<br/>
        
<form method="post" action="<c:url value="/user/login.html"/>">
            
<input type="text" name="userName"/><br/>
            
<input type="password" name="userPswd"/><br/>
            
<input type="submit" name="提交">
        
</form>
    
</body>
</html>
loginOk.jsp
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    
<head>
        
<title>登錄成功頁面</title>
    
</head>

    
<body>
        用戶${user.userName}登錄成功
    
</body>
</html>


何楊 2012-04-17 16:51 發(fā)表評論
]]>
IMSample下載地址http://www.tkk7.com/heyang/archive/2012/04/10/373699.html何楊何楊Tue, 10 Apr 2012 06:01:00 GMThttp://www.tkk7.com/heyang/archive/2012/04/10/373699.htmlhttp://www.tkk7.com/heyang/comments/373699.htmlhttp://www.tkk7.com/heyang/archive/2012/04/10/373699.html#Feedback5http://www.tkk7.com/heyang/comments/commentRss/373699.htmlhttp://www.tkk7.com/heyang/services/trackbacks/373699.htmlhttp://www.tkk7.com/Files/heyang/IMSample2012-4-11.rar

何楊 2012-04-10 14:01 發(fā)表評論
]]>
Sqltoolbox1.87bate2 版下載http://www.tkk7.com/heyang/archive/2012/03/27/372786.html何楊何楊Tue, 27 Mar 2012 05:36:00 GMThttp://www.tkk7.com/heyang/archive/2012/03/27/372786.htmlhttp://www.tkk7.com/heyang/comments/372786.htmlhttp://www.tkk7.com/heyang/archive/2012/03/27/372786.html#Feedback0http://www.tkk7.com/heyang/comments/commentRss/372786.htmlhttp://www.tkk7.com/heyang/services/trackbacks/372786.html
http://www.llxxb.com/upload/sqltoolbox1.87bate2_2012-3-26.rar

感謝雷振杰提供空間。


何楊 2012-03-27 13:36 發(fā)表評論
]]>
使用POI進行Excel文件下載的示例工程http://www.tkk7.com/heyang/archive/2012/02/01/369168.html何楊何楊Wed, 01 Feb 2012 07:48:00 GMThttp://www.tkk7.com/heyang/archive/2012/02/01/369168.htmlhttp://www.tkk7.com/heyang/comments/369168.htmlhttp://www.tkk7.com/heyang/archive/2012/02/01/369168.html#Feedback0http://www.tkk7.com/heyang/comments/commentRss/369168.htmlhttp://www.tkk7.com/heyang/services/trackbacks/369168.html1.下載http://www.apache.org/dyn/closer.cgi/poi/release/bin/poi-bin-3.7-20101029.zip后,將poi-3.7目錄下的jar包放入lib目錄, 再將此工程載入Eclipse/MyEclipse即可。
2.界面中文本框供輸出數(shù)據(jù)量用,在我的T410上測試數(shù)據(jù)量在3.5W~3.6W之間,再多就報java.lang.OutOfMemoryError錯誤。附帶提一下輸出數(shù)據(jù)量的問題,如果修飾單元格的代碼越簡單,那么能輸出的數(shù)據(jù)就越多,反之?dāng)?shù)據(jù)就少了。
3.主要代碼如下:

Sevlet代碼:
package com.heyang.action;


import java.io.BufferedOutputStream;

import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import com.heyang.service.DownloadService;

/**
 * POI下載的Servlet
 * 
@author heyang
 *
 
*/
public class DownloadServlet extends HttpServlet {
    
private static final long serialVersionUID = 56890894234786L;
    
    
public void doPost(HttpServletRequest request, HttpServletResponse response)
            
throws ServletException, java.io.IOException {
        String fileName
="download.xls";
        response.setHeader(
"Content-disposition""attachment; filename="+fileName);// 設(shè)定輸出文件頭   
        response.setContentType("application/msexcel");// 定義輸出類型 
        
        
try{
            
int rowCount=Integer.parseInt(request.getParameter("rowCount"));
            
            
// 表頭行
            String[] headers=new String[]{"更新ID","賬期","基站編號","基站名稱","站點狀態(tài)","部門名稱","站點類型","占用類型","預(yù)提(元)","未核銷金額","上期未核銷","開始月份","結(jié)束月份","上期抄表數(shù)","本期抄表數(shù)","電價","電量","本期報賬(元)","補提(元)","預(yù)提匯總(元)","成本中心","專業(yè)","本期報賬單號","基站類別","線損"};
            DownloadService service
=new DownloadService();

            HSSFWorkbook workbook
=service.generateWorkbook(rowCount, headers.length);

            ServletOutputStream out 
= response.getOutputStream();
            BufferedOutputStream bos 
= new BufferedOutputStream(out);        
            workbook.write(bos);
            bos.flush();
            bos.close();
            
        }
catch(Exception ex){
            ex.printStackTrace();
        }
        
        
return ;
    }
        
    
public void doGet(HttpServletRequest request, HttpServletResponse response)
            
throws ServletException, java.io.IOException {
        doPost(request, response);
    }
}

Service代碼:
package com.heyang.service;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;


/**
 * 下載服務(wù)類
 * 
 * 
@author heyang
 *
 
*/
public class DownloadService{
    
/**
     * 生成工作簿對象
     * 
@param rowCount
     * 
@param columnCount
     * 
@return
     
*/
    
public HSSFWorkbook generateWorkbook(int rowCount,int columnCount) throws Exception{
        HSSFWorkbook workbook 
= new HSSFWorkbook(); //產(chǎn)生工作簿對象
        HSSFSheet sheet = workbook.createSheet(); //產(chǎn)生工作表對象
        String value=null;
        
        HSSFRow row 
= null;
        HSSFCell cell 
= null;
        
        
for(int i=0;i<rowCount;i++){
            row 
= sheet.createRow(i);//創(chuàng)建一行
            
            
for(int j=0;j<columnCount;j++){
                value
=""+i+","+j;
                
                cell 
= row.createCell(j);
                cell.setCellValue(value);
                
                cell 
= null;
            }
            
            row 
= null;
        }
        
        row 
= null;
        cell 
= null;
        
        
return workbook;
    }
}

4.工程下載地址:
http://www.tkk7.com/Files/heyang/PoiDownloadSample2012-2-1_15-42-17.zip


何楊 2012-02-01 15:48 發(fā)表評論
]]>
主站蜘蛛池模板: 亚洲成a人无码亚洲成www牛牛| 亚洲中文字幕无码一区| a级片免费观看视频| 国产亚洲人成在线影院| 77777亚洲午夜久久多喷| 亚洲成av人片在线观看天堂无码| 真人无码作爱免费视频| 91亚洲精品自在在线观看| 亚洲av午夜福利精品一区人妖| 久久永久免费人妻精品| 一级做a爰片久久毛片免费陪 | 免费特级黄毛片在线成人观看 | 18未年禁止免费观看| 久久免费观看视频| 日日狠狠久久偷偷色综合免费| 亚洲中文字幕无码日韩| 亚洲AⅤ优女AV综合久久久| 免费看AV毛片一区二区三区| 美丽的姑娘免费观看在线播放| 国产AV无码专区亚洲AV麻豆丫| 亚洲国产精品毛片av不卡在线 | 亚洲AV成人精品日韩一区18p| 精选影视免费在线 | 成年免费a级毛片| 一区二区免费在线观看| 亚洲国产美女精品久久久| 亚洲欧美日韩中文字幕一区二区三区 | 国产国产成年年人免费看片| 在线观看免费大黄网站| 成人无码区免费视频观看| 18禁网站免费无遮挡无码中文| 久久亚洲欧美国产精品| 亚洲av永久无码精品秋霞电影秋| 亚洲香蕉网久久综合影视| 亚洲日韩在线中文字幕第一页| 69国产精品视频免费| 99久久免费国产香蕉麻豆| 一个人看www在线高清免费看| 亚洲av成本人无码网站| 久久久亚洲AV波多野结衣| 国产国产成年年人免费看片|