日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
淺析Swing客戶(hù)端知識(shí)

1.簡(jiǎn)介

德清網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),德清網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為德清近千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的德清做網(wǎng)站的公司定做!

Jakarta Struts是基于MVC模式創(chuàng)建servlet應(yīng)用程序的框架。大部分的Struts應(yīng)用程序都是使用瀏覽器作為客戶(hù)端,實(shí)際上Struts足夠的開(kāi)放,它可以使用其它的客戶(hù)端模式。在這里我將在我 "Coding your second Jakarta Struts Application"這篇文章里的一個(gè)瀏覽器應(yīng)用實(shí)例改成Swing客戶(hù)端模式,只需要修改一點(diǎn)代碼。

這篇文章主要介紹如何使用Swing客戶(hù)端去連接已經(jīng)存在的Servlet應(yīng)用。如果你打算開(kāi)發(fā)一個(gè)java應(yīng)用程序,既能夠使用瀏覽器做客戶(hù)端也可以用Swing做客戶(hù)端,你就需要根據(jù)你程序的需要靈活的選擇構(gòu)架,如EJB或web service,他們提供了簡(jiǎn)單的接口。

2.Struts結(jié)構(gòu)

在我們開(kāi)始之前,先看看瀏覽器如何和Struts應(yīng)用通信的。這些將在我們的Swing應(yīng)用程序中體現(xiàn)。
◆Struts應(yīng)用程序是由servlet接受到GET或POST請(qǐng)求開(kāi)始的。
◆servlet決定調(diào)用哪個(gè)"action",是從URL中獲得信息的。
◆實(shí)現(xiàn)了Action的java類(lèi)是在struts-config.xml中配置的。
◆ Struts的輸出由jsp來(lái)顯示,jsp的名字也在struts-config.xml文件中指定。
所以***個(gè)非瀏覽器應(yīng)用需要能夠給servlet發(fā)送一個(gè)請(qǐng)求,并且能從jsp頁(yè)面得到響應(yīng)。

3.The URLConnection class

使用URLConnection類(lèi)能夠很簡(jiǎn)單的使用java編寫(xiě)servlet請(qǐng)求代碼。這個(gè)類(lèi)很有趣,因?yàn)樗幸恍┢婀值脑O(shè)計(jì)。如果你想看看它的實(shí)現(xiàn),我建議你讀一讀"Dodge the traps hiding in the URLConnection class".
如果想發(fā)送一個(gè)帶有"list"action的請(qǐng)求,并接受打印響應(yīng),你需要這樣寫(xiě)代碼:

 
 
 
  1. URL url = new URL("http://myserver/project/list.do");    
  2.  URLConnection conn = url.openConnection();    
  3.         
  4.   BufferedReader in =     
  5.    new BufferedReader(new InputStreamReader(conn.getInputStream()));  
  6. String line;      
  7.   while ((line = in.readLine()) != null) {    
  8.  System.out.println(line);    
  9. }   

一般來(lái)講你通常需要在請(qǐng)求的同時(shí)發(fā)送一些數(shù)據(jù)--就像提交表單那樣。這些數(shù)據(jù)需要在你讀取響應(yīng)前發(fā)送過(guò)去。

 
 
 
  1. URL url = new URL("http://myserver/project/list.do");    
  2.     URLConnection conn = url.openConnection();    
  3.     conn.setDoOutput(true);    
  4.     conn.setRequestProperty("user-agent","SWING");      
  5.         
  6.     BufferedWriter out =    
  7.        new BufferedWriter(new OutputStreamWriter(conn.getOutputStream()));    
  8.     out.write("name1=value1&name2=value2");    
  9.     out.flush();    
  10.    out.close();    
  11.        
  12.    String c = conn.getHeaderField("Set-Cookie");    
  13.    BufferedReader in =     
  14.       new BufferedReader(new InputStreamReader(conn.getInputStream()));    
  15.   String line;      
  16.   while ((line = in.readLine()) != null) {    
  17.      System.out.println(line);    
  18.   }   

這個(gè)例子同時(shí)也顯示了如何讀寫(xiě)HTTP頭信息。
***個(gè)例子使用GET方法與HTTP通信,而第二個(gè)例子使用POST方法通信。你同樣可以使用GET方法來(lái)給servlet傳送數(shù)據(jù),但是就必須要把數(shù)據(jù)加到URL里,像這樣:

 
 
 
  1. URL url = new URL("http://myserver/project/list.do?name1=value1&name2=value2"); 

4.Identifying the client

現(xiàn)在我們知道怎么發(fā)送和請(qǐng)求數(shù)據(jù)了,但是我們?cè)趺唇邮軘?shù)據(jù)呢?如果響應(yīng)是給瀏覽器的,那響應(yīng)里就包含了HTML或者還有JavaScript和樣式。對(duì)于我們的Swing客戶(hù)端,我們只需要數(shù)據(jù)。這將帶來(lái)一個(gè)新問(wèn)題:Struts應(yīng)用程序如何能識(shí)別出客戶(hù)端是一個(gè)瀏覽器,是個(gè)Swing還是其它什么呢?
一種解決辦法是在每個(gè)請(qǐng)求里添加參數(shù)時(shí)其能間鑒別出是哪種客戶(hù)端。我在第二個(gè)例子里已經(jīng)使用了user-agent這個(gè)頭信息來(lái)使其識(shí)別出是個(gè)Swing客戶(hù)端。
當(dāng)Struts應(yīng)用程序準(zhǔn)備好給客戶(hù)端返回?cái)?shù)據(jù)時(shí),它就會(huì)檢測(cè)user-agent的值,然后選擇適合客戶(hù)端的jsp頁(yè)面。這將會(huì)替代Struts Action類(lèi)設(shè)置的跳轉(zhuǎn)信息。

 
 
 
  1. String client = (String)request.getHeader("user-agent");    
  2.    // Forward control to the list page    
  3.    if (client.equals("SWING"))     
  4.     return (mapping.findForward("swinglist"));    
  5.    else return (mapping.findForward("list"));   

新聞標(biāo)題:淺析Swing客戶(hù)端知識(shí)
文章起源:http://www.dlmjj.cn/article/ccsddhs.html