用JSP实现上传文件的两种方法

     摘要: key words: 文件上传,upload, cos.jar + uploadbean.jar + filemover.jar以前用cos作文件上传,但是对于文件上传后的改名还需要借助其他的工具。摘录如下: 在用Java开发企业器系统的使用,特别是涉及到与办公相关的软件开发的时候,文件的上传是客户经常要提到的要求.因此有 一套很好文件上传的解决办法也能方便大家在这一块的开发.首先申明,该文章是为...  阅读全文

posted @ 2013-01-22 17:27 youngturk 阅读(747) | 评论 (0)编辑 收藏

java开发wap网页

直接使用eclipse开发就可以,wap没有什么特别的,和开发普通的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 阅读(327) | 评论 (0)编辑 收藏

web应用从tomat向weblogic8中迁移遇到的三个问题

一、系统环境

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文件,写入下面内容:

<?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:修改区域和语言选型。

控制面板->区域和语言选型->高级->代码页转换表,去掉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文件中,如果在文件头部已经定义了contentType,那么在被包含的文件中如果重复定义contentType,尽管相同,weblogoic也会报错,只能改JSP文件,保证一个页面中只有一个contentType的定义。这个问题在tomcat中是不存在的,可能是两个应用服务器的解析机制不同。

posted @ 2013-01-09 09:00 youngturk 阅读(278) | 评论 (0)编辑 收藏

主键的设置方式可以是这样,有待学习啊


 

posted @ 2013-01-08 10:24 youngturk 阅读(238) | 评论 (0)编辑 收藏

在本数据库中创建DBlink解决同一网段不同数据库间访问

例如:
<!-- 从jdbc:oracle:thin:@10.128.5.65:1521:tjgwl1 中跳到(服务器间跳转)
        10.128.141.109:1521:tjgwlw数据库后面直接加@tjgwlw-->

posted @ 2013-01-08 10:04 youngturk 阅读(529) | 评论 (0)编辑 收藏

在Eclipse中反编译Class文件的方法

学习中,需要反编译Java的class文件。我的开发工具是windows xp+Eclipse3.2.2+MyEclipse。我找到了jad反编译工具,在互联网上找到了一些很有用的安装步骤。下面记录了我的安装过程。

  一、下载

  1。下载 jad 工具,在官方网站没有下载到,在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的目录结构,将jadclipse_3.2.4.jar放到plugins目录下面(注:其中D:\Myplugins为你自己定义的一个专门放置插件的目录)。再在%ECLIPSE_HOME%\links目录下面建立一个net.sf.jadclipse_3.3.0.link文件(该文件名随便取)。文件里面内容为: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”默认关联的编辑器为“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 文件,出现可爱的java文件,编译成功

  

  五、批量反编译

  以下部分转载 菠萝大象的文章:

  现在有人会说了,这样一个一个的看太麻烦了,我需要一次把一个JAR包下的所有class文件反编译成java源文件。这样的想法是可行的,还是使用jad工具。

  3、批量反编译

  因为之前我们已经将jad加入到了%JAVA_HOME%\bin中,只要配置了环境变量,我们就可以在命令行中方便的使用。在这里,大象还是以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

  我解释一下这些参数的含义:

  -o:覆盖旧文件,而且不用提示确认。

  -r:重新加载生成包结构。

  -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的调用,而这些东西都是引用jaxen里的API,如果不加则会有这样的错误:
 


    到此,关于反编译的内容全部说完了,不过我还想补充一点,有可能JAR包中的class文件不是老外的,而是我们自己写的,里面可能会有中文的情况,这时,虽然反编译通过了,但里面却是gb2312形式的unicode编码,因此我们还得做一个工作,将这些编码转换成中文。
    大象使用ant脚本来完成这个工作,内容比较简单,加了注释,应该很好明白,脚本文件名为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>
    
<!-- 创建输出目录 -->
    
<target name="init" depends="clean">
        
<mkdir dir="${build}"/>
    
</target>
    
<!-- 编码转换 reverse="true"为反向转换 -->        
    
<target name="native2ascii" depends="init">
        
<native2ascii reverse="true" src="${basedir}" encoding="gb2312" dest="${basedir}/${build}" />
    
</target>
</project>
    有一个地方需要补充一下,在native2ascii元素中,srcdest这两个属性表示着路径。如果反编译后,src目录下,有多个不同的文件夹,这时使用ant来转换编码,请先想好要对哪些文件进行反编码;如果按上面的写法,将会把src目录下的所有文件夹中的所有文件进行反编码。假设,现在有comorg两个文件夹(其实是两个包),我只需要对com中的文件进行反编码,那么可以这样改写:src="${basedir}/com" dest="${basedir}/${build}/com"
    其它的都不变。在cmd中进入到src路径下,输入ant,回车。可以看到如下结果:

 

 
反编译的内容基本结束。

posted @ 2012-12-21 15:19 youngturk 阅读(306) | 评论 (0)编辑 收藏

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

ava.sql.SQLException: ORA-00904:
  原因: 
  hbm.xml文件的属性名与数据库的属性名不对应

此类问题的出现主要来自三个方面。
1、 SQL语句中存在语法错误或是传入的数据有误;
2、 数据库的配置不合法,或者说是配置有误。较容易出现的有数据表的映射文件(,hbm.xml文件)配置有误;Hibernate.cfg.xml文件配置有误;
3、 当前的数据库用户权限不足,不能操作数据库。以是以Oracle 数据库为例,这种情况下在错误提示中会显示java.sql.BatchUpdateException: ORA-01031: insufficient privileges这样的信息。
 
以下是我在项目中解决SQL Grammer Exception,Could not execute JDBC batch update异常时使用的方法。

posted @ 2012-12-09 23:57 youngturk 阅读(6373) | 评论 (2)编辑 收藏

oracle新表的建立(理解表空间含义)

在oracle数据库已经创建完的情况下,想要创建新的表,可以先创建新用户,和新的表空间
然后分配给用户表空间权限即可,不需要创建新的数据库,在本机上..

posted @ 2012-11-30 13:43 youngturk 阅读(431) | 评论 (0)编辑 收藏

Struts2文件上传功能开发

技术要点
本节代码详细说明文件上传功能的开发流程,介绍知识点如下:
1. 文件上传页面和显示上传成功页面代码内容。
2. UploadAction类中实现上传功能方法和上传文件属性介绍。
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>
 
<!-------------------上传文件成功后结果页面文件名:result.jsp ----------------->
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
    
<head>
        
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
        
<title>上传结果</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;
    
//上传文件内容类型集合
    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++{
            
//循环上传每个文件
            uploadFile(i);
        }

        
return "success";
    }


    
//执行上传功能
    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配置文件中有关文件上传的配置:
<!--------------------文件名:struts.xml------------------->
<struts>
 <!-- 系统常量定义,定义上传文件字符集编码 -->
 <constant name="struts.i18n.encoding" value="gb2312"></constant>
 <!-- 系统常量定义,定义上传文件临时存放路径 -->
 <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 阅读(304) | 评论 (0)编辑 收藏

js循环滚动新闻,最简洁版

<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">
    
    
<!--滚动内容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">我公司参加华人华创创业发展洽谈会展会</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>  
    
<!--滚动内容end-->                      
    
</div><div id="roll_temp"></div>
</div>

posted @ 2012-11-27 13:48 youngturk 阅读(4266) | 评论 (2)编辑 收藏

仅列出标题
共33页: First 上一页 4 5 6 7 8 9 10 11 12 下一页 Last 
<2024年6月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

导航

统计

公告

this year :
1 jQuery
2 freemarker
3 框架结构
4 口语英语

常用链接

留言簿(6)

随笔分类

随笔档案

文章分类

文章档案

相册

EJB学习

Flex学习

learn English

oracle

spring MVC web service

SQL

Struts

生活保健

解析文件

搜索

最新评论

阅读排行榜

评论排行榜