用JSP實現(xiàn)上傳文件的兩種方法

               摘要: key words: 文件上傳,upload, cos.jar + uploadbean.jar + filemover.jar以前用cos作文件上傳,但是對于文件上傳后的改名還需要借助其他的工具。摘錄如下: 在用Java開發(fā)企業(yè)器系統(tǒng)的使用,特別是涉及到與辦公相關(guān)的軟件開發(fā)的時候,文件的上傳是客戶經(jīng)常要提到的要求.因此有 一套很好文件上傳的解決辦法也能方便大家在這一塊的開發(fā).首先申明,該文章是為...  閱讀全文

          posted @ 2013-01-22 17:27 youngturk 閱讀(763) | 評論 (0)編輯 收藏

          java開發(fā)wap網(wǎng)頁

          直接使用eclipse開發(fā)就可以,wap沒有什么特別的,和開發(fā)普通的java程序一樣的,只是展示曾需要定義一下wap的標簽就可以。
          <?xml version="1.0" encoding="UTF-8" ?>
          <%@ page language="java" contentType="text/vnd.wap.wml; charset=UTF-8"
          pageEncoding="UTF-8"%>
          <%@ taglib prefix="s" uri="/struts-tags" %>
          <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
          <%
          // 自動解析PC web請求還是mobilephone web請求

          String acceptHeader = request.getHeader("accept");
          if (acceptHeader.indexOf("application/vnd.wap.xhtml+xml") != -1)
          response.setContentType("application/vnd.wap.xhtml+xml");
          else if (acceptHeader.indexOf("application/xhtml+xml") != -1)
          response.setContentType("application/xhtml+xml");
          else
          response.setContentType("text/html");
          %>

          posted @ 2013-01-14 09:23 youngturk 閱讀(343) | 評論 (0)編輯 收藏

          web應用從tomat向weblogic8中遷移遇到的三個問題

          一、系統(tǒng)環(huán)境

          1、web應用在tomcat上運行,一切正常。

          2、OS:windows XP sp3

          3、weblogic version:8.1.3.0

          二 、問題及解決方法

          1 、 weblogic.utils.ParsingException: nested TokenStreamException: antlr.TokenStreamIOException: 在web應用的WEB-INF目錄下新增(如果沒有)weblogic.xml文件,寫入下面內(nèi)容:

          <?xml version="1.0" encoding="UTF-8"?> 
          <!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" 
                            "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd"> 
          <weblogic-web-app> 
            <session-descriptor> 
            </session-descriptor> 

            <jsp-descriptor> 
              <jsp-param> 
                <param-name>encoding</param-name> 
                <param-value>UTF-8</param-value> 
              </jsp-param> 
              <jsp-param> 
                <param-name>pageCheckSeconds</param-name> 
                <param-value>-1</param-value> 
              </jsp-param> 
          <jsp-param> 
             <param-name>compilerSupportsEncoding</param-name> 
                <param-value>true</param-value> 
              </jsp-param> 
              <jsp-param> 
                <param-name>verbose</param-name> 
                <param-value>false</param-value> 
              </jsp-param> 
            </jsp-descriptor> 
          <charset-params>  
              <input-charset>  
                 <resource-path>/*</resource-path>  
                 <java-charset-name>UTF-8</java-charset-name>  
               </input-charset>  
             </charset-params> 
          </weblogic-web-app> 

            保存,重新deploy應用 

          2、 sun.io.MalformedInputException:修改區(qū)域和語言選型。

          控制面板->區(qū)域和語言選型->高級->代碼頁轉(zhuǎn)換表,去掉54936(GB18030簡體中文)前面的對勾,保存更改。重新deploy應用。

          3 、weblogic.servlet.jsp.JspException: (line 1): page directive contentType at /unieap/ria3.3/pages/config.jsp:1 previously defined :修改jsp文件,不能重復定義:<%@ page contentType="text/html; charset=UTF-8"%>

                在含有<%@ include file="/unieap/ria3.3/pages/config.jsp"%>這樣的代碼的JSP文件中,如果在文件頭部已經(jīng)定義了contentType,那么在被包含的文件中如果重復定義contentType,盡管相同,weblogoic也會報錯,只能改JSP文件,保證一個頁面中只有一個contentType的定義。這個問題在tomcat中是不存在的,可能是兩個應用服務器的解析機制不同。

          posted @ 2013-01-09 09:00 youngturk 閱讀(297) | 評論 (0)編輯 收藏

          主鍵的設置方式可以是這樣,有待學習啊


           

          posted @ 2013-01-08 10:24 youngturk 閱讀(259) | 評論 (0)編輯 收藏

          在本數(shù)據(jù)庫中創(chuàng)建DBlink解決同一網(wǎng)段不同數(shù)據(jù)庫間訪問

          例如:
          <!-- 從jdbc:oracle:thin:@10.128.5.65:1521:tjgwl1 中跳到(服務器間跳轉(zhuǎn))
                  10.128.141.109:1521:tjgwlw數(shù)據(jù)庫后面直接加@tjgwlw-->

          posted @ 2013-01-08 10:04 youngturk 閱讀(547) | 評論 (0)編輯 收藏

          在Eclipse中反編譯Class文件的方法

          學習中,需要反編譯Java的class文件。我的開發(fā)工具是windows xp+Eclipse3.2.2+MyEclipse。我找到了jad反編譯工具,在互聯(lián)網(wǎng)上找到了一些很有用的安裝步驟。下面記錄了我的安裝過程。

            一、下載

            1。下載 jad 工具,在官方網(wǎng)站沒有下載到,在CSDN上可以下載。

            2。下載插件 net.sf.jadclipse_3.3.0.jar。

            二、安裝

            1。安裝jad工具。下載后解壓,然后將解壓后的jad.exe文件復制到%JAVA_HOME%\bin目錄下面(可以將jad.exe放到任意位置,只要記住其存放路徑就好,下面要用到)。

            2。安裝插件。Eclipse中的插件安裝可以參考:Eclipse使用技巧(三)Eclipse中插件的安裝。

            我用復制的方法:直接把net.sf.jadclipse_3.3.0.jar拷貝到%ECLIPSE_HOME%\plugins目錄下。

            把使用link的方法拷貝到下面:建立D:\Myplugins\net.sf.jadclipse_3.3.0\eclipse\plugins的目錄結(jié)構(gòu),將jadclipse_3.2.4.jar放到plugins目錄下面(注:其中D:\Myplugins為你自己定義的一個專門放置插件的目錄)。再在%ECLIPSE_HOME%\links目錄下面建立一個net.sf.jadclipse_3.3.0.link文件(該文件名隨便取)。文件里面內(nèi)容為:path=D:/Myplugins/net.sf.jadclipse_3.3.0。

            三、配置

            1。啟動Eclipse,打開Window->Preferences->Java->JadClipse,如果找到了JadClipse,即JadClipse插件被激活了。設置jad路徑:

            

            2。在Eclipse的Windows—> Perference—>General->Editors->File Associations中修改“*.class”默認關(guān)聯(lián)的編輯器為“JadClipse Class File Viewer”。

            四、使用jad反編譯

            1。在DOS窗口中,到class所在目錄,直接運行 >jad DB.class,將在該目錄中生成DB.jad文件。運行 >jad -sjava DB.class,將在該目錄中生成DB.java文件

            

            2。在Eclipse 工作臺使用:

            1)把class目錄加入項目:(這一步許多文檔都沒有寫到,花了我很多時間)

            1.1)項目--〉屬性--〉java buildpath--〉add class folder (如 a)--〉OK

            1.2)a--〉import--〉General-->File system-->Browse-->OK

            2)雙擊class 文件,出現(xiàn)可愛的java文件,編譯成功

            

            五、批量反編譯

            以下部分轉(zhuǎn)載 菠蘿大象的文章:

            現(xiàn)在有人會說了,這樣一個一個的看太麻煩了,我需要一次把一個JAR包下的所有class文件反編譯成java源文件。這樣的想法是可行的,還是使用jad工具。

            3、批量反編譯

            因為之前我們已經(jīng)將jad加入到了%JAVA_HOME%\bin中,只要配置了環(huán)境變量,我們就可以在命令行中方便的使用。在這里,大象還是以dom4j-1.6.1.jar為例來說明具體的操作步驟。

            解壓dom4j-1.6.1.jar和jaxen-1.1-beta-7.jar。為了方便,我將JAR包解壓放到F盤根目錄,在cmd中,進入到F盤根路徑下,輸入命令:jad -o -r -s java -d src org/**/*.class

            我解釋一下這些參數(shù)的含義:

            -o:覆蓋舊文件,而且不用提示確認。

            -r:重新加載生成包結(jié)構(gòu)。

            -s:定義輸出文件的擴展名。jad為默認擴展名,我們反編譯后當然是要.java源文件了。

            -d:輸出文件的目錄。src表示反編譯后的所有文件都放在src目錄下。

          org/**/*.classorg是解壓后的文件夾的名字,整個表示org目錄下的所有class文件。你也可以寫成這樣**/*.class,這表示當前目錄及其子目錄下所有的class文件(包含所有的子目錄)。
                 反編譯dom4j-1.6.1.jar必須得有jaxen-1.1-beta-7.jar,因為dom4j里面有對xpath的調(diào)用,而這些東西都是引用jaxen里的API,如果不加則會有這樣的錯誤:
           


              到此,關(guān)于反編譯的內(nèi)容全部說完了,不過我還想補充一點,有可能JAR包中的class文件不是老外的,而是我們自己寫的,里面可能會有中文的情況,這時,雖然反編譯通過了,但里面卻是gb2312形式的unicode編碼,因此我們還得做一個工作,將這些編碼轉(zhuǎn)換成中文。
              大象使用ant腳本來完成這個工作,內(nèi)容比較簡單,加了注釋,應該很好明白,腳本文件名為build.xml,它放在src目錄下,和反編譯所得的包處在同一層。

          <?xml version="1.0" encoding="GBK"?>
          <project name="decompile" basedir="." default="native2ascii">
              
          <!-- 定義輸出目錄 -->
              
          <property name="build" value="build"/>
              
          <!-- 清除輸出目錄 -->
              
          <target name="clean">
                  
          <delete dir="${build}"/>
              
          </target>
              
          <!-- 創(chuàng)建輸出目錄 -->
              
          <target name="init" depends="clean">
                  
          <mkdir dir="${build}"/>
              
          </target>
              
          <!-- 編碼轉(zhuǎn)換 reverse="true"為反向轉(zhuǎn)換 -->        
              
          <target name="native2ascii" depends="init">
                  
          <native2ascii reverse="true" src="${basedir}" encoding="gb2312" dest="${basedir}/${build}" />
              
          </target>
          </project>
              有一個地方需要補充一下,在native2ascii元素中,srcdest這兩個屬性表示著路徑。如果反編譯后,src目錄下,有多個不同的文件夾,這時使用ant來轉(zhuǎn)換編碼,請先想好要對哪些文件進行反編碼;如果按上面的寫法,將會把src目錄下的所有文件夾中的所有文件進行反編碼。假設,現(xiàn)在有comorg兩個文件夾(其實是兩個包),我只需要對com中的文件進行反編碼,那么可以這樣改寫:src="${basedir}/com" dest="${basedir}/${build}/com"
              其它的都不變。在cmd中進入到src路徑下,輸入ant,回車。可以看到如下結(jié)果:

           

           
          反編譯的內(nèi)容基本結(jié)束。

          posted @ 2012-12-21 15:19 youngturk 閱讀(329) | 評論 (0)編輯 收藏

          [org.hibernate.util.JDBCExceptionReporter] [ERROR] - ORA-00904:

          ava.sql.SQLException: ORA-00904:
            原因: 
            hbm.xml文件的屬性名與數(shù)據(jù)庫的屬性名不對應

          此類問題的出現(xiàn)主要來自三個方面。
          1、 SQL語句中存在語法錯誤或是傳入的數(shù)據(jù)有誤;
          2、 數(shù)據(jù)庫的配置不合法,或者說是配置有誤。較容易出現(xiàn)的有數(shù)據(jù)表的映射文件(,hbm.xml文件)配置有誤;Hibernate.cfg.xml文件配置有誤;
          3、 當前的數(shù)據(jù)庫用戶權(quán)限不足,不能操作數(shù)據(jù)庫。以是以Oracle 數(shù)據(jù)庫為例,這種情況下在錯誤提示中會顯示java.sql.BatchUpdateException: ORA-01031: insufficient privileges這樣的信息。
           
          以下是我在項目中解決SQL Grammer Exception,Could not execute JDBC batch update異常時使用的方法。

          posted @ 2012-12-09 23:57 youngturk 閱讀(6425) | 評論 (2)編輯 收藏

          oracle新表的建立(理解表空間含義)

          在oracle數(shù)據(jù)庫已經(jīng)創(chuàng)建完的情況下,想要創(chuàng)建新的表,可以先創(chuàng)建新用戶,和新的表空間
          然后分配給用戶表空間權(quán)限即可,不需要創(chuàng)建新的數(shù)據(jù)庫,在本機上..

          posted @ 2012-11-30 13:43 youngturk 閱讀(450) | 評論 (0)編輯 收藏

          Struts2文件上傳功能開發(fā)

          技術(shù)要點
          本節(jié)代碼詳細說明文件上傳功能的開發(fā)流程,介紹知識點如下:
          1. 文件上傳頁面和顯示上傳成功頁面代碼內(nèi)容。
          2. UploadAction類中實現(xiàn)上傳功能方法和上傳文件屬性介紹。
          3. struts.xml中UploadAction配置,以及字符編碼、文件臨時存放路徑配置。
          4. 上傳后所處路徑和最終上傳成功后效果展示。
          <!---------------------文件名:upload.jsp----------------->
          <%@taglib prefix="s" uri="/struts-tags"%>
          <html>
              
          <head>
                  
          <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
                  
          <title>上傳文件</title>
              
          </head>
              
          <body>
              
          <!-- 上傳文件表單定義 -->
              
          <s:form action="upload" method="post" enctype="multipart/form-data">
                  
          <tr>
              
          <!-- 上傳文件標簽定義 -->
              
          <td>上傳文件:<s:file name="file"></s:file></td>
              
          </tr>
              
          <tr>
              
          <td>再次上傳文件:<s:file name="file"></s:file></td>
              
          </tr>
              
          <tr>
              
          <td align="left"><s:submit name="submit" value="提交"></s:submit></td>
              
          </tr>
              
          </s:form>
              
          </body>
          </html>
           
          <!-------------------上傳文件成功后結(jié)果頁面文件名:result.jsp ----------------->
          <%@taglib prefix="s" uri="/struts-tags"%>
          <html>
              
          <head>
                  
          <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
                  
          <title>上傳結(jié)果</title>
              
          </head>
              
          <body>
                  上傳文件:
                  
          <!-- 顯示上傳成功文件名 -->
                  
          <s:property value="fileFileName" />
              
          </body>
          </html>
          <!------------------文件名:UploadAction.java ------------------>
          import java.io.File;
          import java.io.FileInputStream;
          import java.io.FileNotFoundException;
          import java.io.FileOutputStream;
          import java.io.IOException;
          import java.io.InputStream;
          import java.io.OutputStream;
          import java.util.List;

          import org.apache.struts2.ServletActionContext;
          import com.opensymphony.xwork2.ActionSupport;

          //文件上傳Action
          public class UploadAction extends ActionSupport {
              
          //上傳文件存放路徑
              private final static String UPLOADDIR = "/upload";
              
          //上傳文件集合
              private List<File> file;
              
          //上傳文件名集合
              private List<String> fileFileName;
              
          //上傳文件內(nèi)容類型集合
              private List<String> fileContentType;

              
          public List<File> getFile() {
                  
          return file;
              }


              
          public void setFile(List<File> file) {
                  
          this.file = file;
              }


              
          public List<String> getFileFileName() {
                  
          return fileFileName;
              }


              
          public void setFileFileName(List<String> fileFileName) {
                  
          this.fileFileName = fileFileName;
              }


              
          public List<String> getFileContentType() {
                  
          return fileContentType;
              }


              
          public void setFileContentType(List<String> fileContentType) {
                  
          this.fileContentType = fileContentType;
              }


              
          public String execute() throws Exception {
                  
          for (int i = 0; i < file.size(); i++{
                      
          //循環(huán)上傳每個文件
                      uploadFile(i);
                  }

                  
          return "success";
              }


              
          //執(zhí)行上傳功能
              private void uploadFile(int i) throws FileNotFoundException, IOException {
                  
          try {
                      InputStream in 
          = new FileInputStream(file.get(i));
                      String dir 
          = ServletActionContext.getRequest().getRealPath(UPLOADDIR);
                      File uploadFile 
          = new File(dir, this.getFileFileName().get(i));
                      OutputStream out 
          = new FileOutputStream(uploadFile);
                      
          byte[] buffer = new byte[1024 * 1024];
                      
          int length;
                      
          while ((length = in.read(buffer)) > 0{
                          out.write(buffer, 
          0, length);
                      }


                      in.close();
                      out.close();
                  }
           catch (FileNotFoundException ex) {
                      ex.printStackTrace();
                  }
           catch (IOException ex) {
                      ex.printStackTrace();
                  }

              }

          }
          struts.xml配置文件中有關(guān)文件上傳的配置:
          <!--------------------文件名:struts.xml------------------->
          <struts>
           <!-- 系統(tǒng)常量定義,定義上傳文件字符集編碼 -->
           <constant name="struts.i18n.encoding" value="gb2312"></constant>
           <!-- 系統(tǒng)常量定義,定義上傳文件臨時存放路徑 -->
           <constant name="struts.multipart.saveDir" value="c:\"></constant>
           <!-- Action所在包定義 -->
           <package name="C04.4" extends="struts-default">
            <!-- Action名字,類以及導航頁面定義 -->
            <!-- 通過Action類處理才導航的的Action定義 -->
            <action name="upload" class="action.UploadAction">
             <result name="input">/jsp/upload.jsp</result>
             <result name="success">/jsp/result.jsp</result>
            </action>
           </package>
          </struts>

          posted @ 2012-11-29 23:47 youngturk 閱讀(319) | 評論 (0)編輯 收藏

          js循環(huán)滾動新聞,最簡潔版

          <script type="text/javascript">    
          //滾動信息
          window.onload=function(){marquee('roll_box','roll_content','roll_temp','40'); }
          function marquee(id,id1,id2,speed)
          {    
              var obj
          =document.getElementById(id);
              var obj1
          =document.getElementById(id1);
              var obj2
          =document.getElementById(id2);
              obj2.innerHTML
          =obj1.innerHTML;
              function scrolly()
          {if(obj.scrollTop>=obj1.offsetHeight){obj.scrollTop=0;}else{obj.scrollTop++;}}
          //function scrolly(){if(obj.scrollTop>=obj1.offsetHeight){obj1.offsetHeight-=obj.scrollTop;}else{obj.scrollTop++;}}

              var rollTime
          =setInterval(scrolly,speed);
              obj.onmouseover
          =function(){clearInterval(rollTime);}
              obj.onmouseout
          =function(){rollTime=setInterval(scrolly,speed);}
          }
           
          </script>


          <div id="roll_box" style="height:200px;overflow:hidden;"><div id="roll_content">
              
              
          <!--滾動內(nèi)容start-->
              
          <li><a href="/index.php/news/show/id/10782" target="_blank">福格森®孕婦維D3鈣片成功獲得國食健</a><span></span></li>
              
          <li><a href="/index.php/news/show/id/10781" target="_blank">我公司喜獲湖北省著名商標</a><span></span></li>
              
          <li><a href="/index.php/news/show/id/10780" target="_blank">喜訊:我公司已被評為“2010年度湖</a><span></span></li>
              
          <li><a href="/index.php/news/show/id/10779" target="_blank">我公司參加華人華創(chuàng)創(chuàng)業(yè)發(fā)展洽談會展會</a></li>
              
          <li><a href="/index.php/news/show/id/10775" target="_blank">出生缺陷診斷防治進展高級培訓班在鄭州</a></li>
              
          <li><a href="/index.php/news/show/id/10774" target="_blank">敬告各位朋友:福格森免費400882</a></li>
              
          <li><a href="/index.php/news/show/id/10743" target="_blank">“福格森”愛心奉獻滕州市病殘兒家庭</a></li>
              
          <li><a href="/index.php/news/show/id/10742" target="_blank">福格森熱烈祝賀湖北省計劃生育服務交流</a></li>
              
          <li><a href="/index.php/news/show/id/10740" target="_blank">預防出生缺陷 全社會的責任-----</a></li>
              
          <li><a href="/index.php/news/show/id/10737" target="_blank">濟南日報:歷城筑牢三道防線攔截出生缺</a></li>  
              
          <!--滾動內(nèi)容end-->                      
              
          </div><div id="roll_temp"></div>
          </div>

          posted @ 2012-11-27 13:48 youngturk 閱讀(4283) | 評論 (2)編輯 收藏

          僅列出標題
          共33頁: First 上一頁 4 5 6 7 8 9 10 11 12 下一頁 Last 
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統(tǒng)計

          公告

          this year :
          1 jQuery
          2 freemarker
          3 框架結(jié)構(gòu)
          4 口語英語

          常用鏈接

          留言簿(6)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          相冊

          EJB學習

          Flex學習

          learn English

          oracle

          spring MVC web service

          SQL

          Struts

          生活保健

          解析文件

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 绥化市| 苍梧县| 大姚县| 伊金霍洛旗| 平度市| 托克托县| 郁南县| 晋城| 和林格尔县| 乌什县| 佛教| 塔河县| 孟州市| 天峨县| 紫金县| 称多县| 巍山| 乳源| 布尔津县| 海晏县| 乌兰察布市| 南漳县| 资兴市| 康平县| 布尔津县| 桂东县| 乾安县| 南郑县| 莒南县| 定兴县| 永城市| 甘德县| 闸北区| 平昌县| 新竹县| 合川市| 宁波市| 海阳市| 湘乡市| 紫金县| 和平县|