摘要: 第四步,使用swftools将pdf转换为swf 建议下载swftools-0.9.1,笔者起先下载的是最新版的swftools-1.0版。貌似转换时出错,缺少什么组件。 继续笔者的DocConverter项目。笔者使用的开发环境是MyEclipse 9.0。新建PDF2SWFUtil.javapackage com.iori.webapp.util;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;public 阅读全文
posted @ 2012-06-16 14:06 haiwei.sun 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 第三步,使用JODConverter将office文档转换为pdf JODConverter是一个java的OpenDucument文件转换器,可以进行许多文件格式的转换,它利用OpenOffice来进行转换工作,它能进行以下的转换工作: 1.Microsoft Office格式转换为OpenDucument,以及OpenDucument转换为Microsoft Office 2.OpenDucument转换为PDF,Word、Excel、PowerPoint转换为PDF,RTF转换为PDF等。它是一个开源项目。笔者的项目是在MyEclipse下开发的。下载最新版的jodconverter-2 阅读全文
posted @ 2012-06-16 13:50 haiwei.sun 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 第二步,安装openoffice.org openoffice.org是一套sun的开源office办公套件,能在widows,linux,solaris等操作系统上执行。主要模块有writer(文本文档),impress(演示文稿),Calc(电子表格),Draw(绘图),Math(公式),base(数据库)笔者下载的是openoffice.org 3.3.0。下载完直接安装即可。 但是,我们还需要启动openoffice server。有两种做法: 1.以命令行方式启动openoffice server,缺点是每次系统重启,都需要手动去把openoffice server启动。 2.将op 阅读全文
posted @ 2012-06-16 13:46 haiwei.sun 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 转载:http://www.cnblogs.com/star-studio/archive/2011/12/09/2281807.html本方案是笔者在网络上收集前人智慧,以及辛苦奋斗探索几周完成的成果。由于网络上,大部分资料、文章都比较零碎、重复、不够全面。寻找全面系统的介绍该方案的资料实属不易。本文从一个只会net、jsp零基础的开发者的角度,全面、琐碎的进行总结。什么叫仿百度文库方案?用户上传一个文档,格式有可能是doc、docx、xls、ppt、pdf 等。其他用户在前台查看的却是一个swf格式的flash文档。flash文档可以起到防止用户下载,以及良好的浏览体验。具体流程: 1.调 阅读全文
posted @ 2012-06-16 13:44 haiwei.sun 阅读(227) 评论(0) 推荐(0) 编辑
摘要: http://tortoisesvn.net/downloads.html有两种方案:* VisualSVN Server,安装更简单、更直观:http://www.visualsvn.com/server/download/*传统的Subversion服务器程序:一、准备工作1、获取Subversion服务器程序到官方网站(http://subversion.tigris.org/)下载最新的服务器安装程序。目前最新的是1.5版本,具体下载地址在:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100&a 阅读全文
posted @ 2012-06-14 09:19 haiwei.sun 阅读(178) 评论(0) 推荐(0) 编辑
摘要: jQuery Chosen Plugin 是一个 jQuery 插件,用来将网页中的下拉框进行功能扩展和美化。可实现对下拉框的搜索,多个标签编辑等功能。在线演示:http://davidwalsh.name/dw-content/jquery-chosen.phphttp://www.oschina.net/p/jquery-chosen-plugin 阅读全文
posted @ 2012-06-14 09:10 haiwei.sun 阅读(238) 评论(0) 推荐(0) 编辑
摘要: DEMO: http://jqselectable.googlecode.com/svn/trunk/index.htmlhttp://www.oschina.net/p/jqselectable 阅读全文
posted @ 2012-06-14 09:07 haiwei.sun 阅读(159) 评论(0) 推荐(0) 编辑
摘要: http://textextjs.com/ 阅读全文
posted @ 2012-06-14 09:01 haiwei.sun 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 1 准备工作PHP>=5.2以上,Apache开启mod_rewrite支持,开启php的pdo扩展。下载ZendFramework-1.11.6添加php的可执行路径到系统变量path中:D:\php\php创建项目:2 配置虚拟目录在生成的项目里docs文件夹下已经创建好配置文件:拷贝到你的虚拟文件中。The following is a sample VHOST you might want to consider for your project.<VirtualHost *:80> DocumentRoot "E:/zf/www/demo/public&q 阅读全文
posted @ 2012-06-09 13:09 haiwei.sun 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 1 jQuery插件的类型jQuery插件主要分为三种类型;1.1 jQuery方法这种类型的插件是把一些常用或重复使用的功能定义为函数,然后绑定到jQuery对象上,从而成为jQuery对象的一个扩展方法。1.2 全局函数也可以把自定义的功能函数独立附加到jQuery命名空间下,从而作为jquery作用域下的一个公共的函数使用。如,jquery的ajax()方法就是利用这种途径内部定义的全局函数。 由于全局函数没有被绑定到jQuery对象上,故不能够在选择器获取的jQuery对象上调用。需要通过jQuery.fn()或者$.fn()方式进行引用。1.3 选择器自定义选择器。2 解析jQuer 阅读全文
posted @ 2012-06-03 00:51 haiwei.sun 阅读(532) 评论(0) 推荐(0) 编辑
摘要: jQuery获取Select选择的Text和Value:语法解释:1. $("#select_id").change(function(){//code...}); //为Select添加事件,当选择其中一项时触发2. var checkText=$("#select_id").find("option:selected").text(); //获取Select选择的Text3. var checkValue=$("#select_id").val(); //获取Select选择的Value4. var check 阅读全文
posted @ 2012-05-30 09:54 haiwei.sun 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 常量说明备注DT_ROOT站点物理路径DT_PATH站点首页网址DT_SKIN风格目录网址DT_ADMIN是否在管理后台DT_DOMAINCookie作用域DT_LANG站点语言DT_KEY安全密钥DT_CHARSET字符编码DT_CACHE缓存目录物理路径DT_VERSION系统版本DT_RELEASE更新时间VIPVIP名称变量说明备注$DT_TIME当前时间Unix时间戳$DT_IP当前IP$DT_URL当前网址URL$DT_PRE数据表前缀$db数据库操作对象$dc缓存操作对象$DT网站设置数组$EXT扩展功能模块设置数组$MOD当前模块设置数组,仅模块内部存在$MODULE系统模块信 阅读全文
posted @ 2012-05-27 15:19 haiwei.sun 阅读(762) 评论(0) 推荐(0) 编辑
摘要: 1、在默认情况下,我们都会使用jQuery的别名$来表示jQuery名字空间,同时直接把调用的函数放在$()函数中,该函数实际上是$("document").ready()方法的简写,它相当于javascript中的window.onload=function(){}事件处理函数。<script type="text/javascript" > $(function(){ .................... });</script><script type="text/javascript" > 阅读全文
posted @ 2012-05-22 21:02 haiwei.sun 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 1、 首先编辑jar包: remove 掉slf4j-nop-1.5.8.jar2、 添加apache-log4j-1.2.15中的jar包 /apache-log4j-1.2.15/log4j-1.2.15.jar3、 还需添加slf4j的slf4j-log4j12-1.5.8.jar /slf4j-1.5.8/slf4j-1.5.8/slf4j-log4j12-1.5.8.jar4、 添加log4j的配置文件 /hibernate-distribution-3.3.2.GA/project/etc/log4j.properties 阅读全文
posted @ 2012-03-29 15:03 haiwei.sun 阅读(161) 评论(0) 推荐(0) 编辑
摘要: Hibernate开发第一个例子1、首先下载以下文件:slf4j-1.5.8 hibernate-distribution-3.3.2.GA-dist 2、在myEclipse中建立hibernate 的User Libraries 库: Window—Prefrerences—Java—Build Path—User Libraries3、新建java项目 并引入自定义hibernate库以及操作mysql的驱动程序 |-hibernate3.jar |-lib\required(全部) |-slf4j-1.5.8\slf4j-1.5.8\slf4j-nop-1.5.8.jar4、建立St. 阅读全文
posted @ 2012-03-27 10:19 haiwei.sun 阅读(636) 评论(1) 推荐(0) 编辑
摘要: struts.xml<struts><constant name="struts.devMode" value="true" /><constant name="struts.i18n.encoding" value="UTF-8"/><constant name="struts.enable.DynamicMethodInvocation" value="true" /><constant name="stru 阅读全文
posted @ 2012-03-23 18:20 haiwei.sun 阅读(553) 评论(0) 推荐(0) 编辑
摘要: action:public String scope() throws Exception{ ActionContext ctx = ActionContext.getContext(); ctx.getApplication().put("app", "应用范围");//往ServletContext里放入app ctx.getSession().put("ses", "session范围");//往session里放入ses ctx.put("req", "request范围&qu 阅读全文
posted @ 2012-03-22 19:10 haiwei.sun 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 在Struts2中,提供了另外一种直接使用领域对象的方式,就是让action实现Com.opensymphony.xwork2.ModelDriven接口。ModelDriven让你可以直接操作应用程序中的领域对象,允许你在web层和业务逻辑层使用相同的对象。Struts.xml<packagename="user1"extends="struts-default"namespace="/user1"><actionname="user1"class="com.bjsxt.struts2 阅读全文
posted @ 2012-03-22 17:31 haiwei.sun 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 使用领域对象接收参数:Struts.xml<packagename="user"extends="struts-default"namespace="/user"><actionname="user"class="com.bjsxt.struts2.user.action.UserAction"><result>/user_add_success.jsp</result></action></package>UserActi 阅读全文
posted @ 2012-03-22 17:27 haiwei.sun 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 访问url:http://localhost:8080/s_1/kevin/Teachers_add?name=kevin&age=25Action写法:package com.kevin.struts2.action;import com.opensymphony.xwork2.ActionSupport;public class TeachersAction extends ActionSupport {private String name;private int age;public String add(){System.out.println("name=&quo 阅读全文
posted @ 2012-03-22 17:13 haiwei.sun 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 问题:用struts2按照尚老师的做了个练习,添加中文乱码;数据库编码:utf8页面编码:utf-8解决:一:server.xml修改 <Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>二:<constant name="struts.i18n.encoding" value="U 阅读全文
posted @ 2012-03-22 17:11 haiwei.sun 阅读(249) 评论(1) 推荐(0) 编辑
摘要: struts.xml<constant name="struts.devMode" value="true" /><package name="user" extends="struts-default" namespace="/user"><action name="user" class="com.bjsxt.struts2.user.action.UserAction"><result>/user_ad 阅读全文
posted @ 2012-03-22 17:05 haiwei.sun 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 通配符映射随着web应用程序规模的增加,所需的Action也会更多,从而导致出现大量的action映射。使用通配符映射可以减少action配置的数量,使一些具有类似行为的Action或者Action的方法可以使用通用的样式来配置。通配符即星号(*),用于匹配0个或多个字符。在配置action时,可以在action元素的name属性中使用星号(*)来匹配任意的字符。<action name=”edit*”Class=”org.kevin.mysql.action.Edit{1}Action”><result name=”failure”>/failure.jsp</ 阅读全文
posted @ 2012-03-22 15:38 haiwei.sun 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 默认的action如果你请求一个不存在的action,那么结果将是HTTP404错误,即页面没有找到错误。在struts2中,你可以指定一个默认的action,如果一个请求没有其它的action匹配,那么默认的action将被执行。默认的action使用default-action-ref元素来声明,如下:<package name=”default” extends=”struts-default”><default-action-ref name=”hello” /><action name=”hello”><result>/hello.js 阅读全文
posted @ 2012-03-22 15:25 haiwei.sun 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 模拟Struts1的ForwardAction在struts2的开发中,将所有的URL都指向action,而不是直接指向jsp页面,这是一种非常好的实践方式,因为这样可以利用Struts控制器所提供的功能。然后,在某些情况下,我们可能只是需要做一个请求转发(通过action将请求转发到目标资源,可以是jsp页面,或者另一个aciton),如果为此专门去写一个Action类,而这个类只是用于转发请求,就有点少兴。在struts1中个,提供了一个工具类ForwardAction,可以直接在struts-config.xml文件中配置ForwardAction,将请求导向到目标资源,而不需要自己再去 阅读全文
posted @ 2012-03-22 14:48 haiwei.sun 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 另外一种无须配置就可以直接调用Action中的非execute方法的方式,就是使用struts2的动态方法调用。动态方法调用(Dynamic Method Invocation,DMI)是在action的名字中使用的感叹号(!)来标识要调用的方法名,起语法格式为:actionName!methodName.action<action name=”news” class=”org.kevin.mysql.struts2.action.NewsAction”>…</action>当请求为/news!create.action时,将调用NewsAction中的create方法 阅读全文
posted @ 2012-03-22 14:11 haiwei.sun 阅读(100) 评论(1) 推荐(0) 编辑
摘要: Action元素的完整属性属性是否必需说明name是Action的名字,用于匹配请求的URLclass否Action实现类的完整类名method否执行action时调用的方法converter否应用于action的类型转换器的完整类名Eg:<actionname=”login” class=”org.sunxin.struts2.ch03.action.LoginAction”><result>/success.jsp</result><result name=”error”>/error.jsp</result></actio 阅读全文
posted @ 2012-03-22 13:37 haiwei.sun 阅读(353) 评论(0) 推荐(0) 编辑
摘要: Struts2的核心功能是action,对于开发人员来说,使用struts2框架,主要的编码工作就是编写action类。Action类通常都要实现com.opensymphony.xwork2.Action接口,并实现该接口中的execute()方法,该方法的方法签名:Public String execute() throws ExceptionStruts2并不要求你所编写的action类一定要实现Action接口,你也可以编写一个普通的JAVA类作为action,只要该类提供一个返回类型为String的无參的public方法:Public String xxx()在实际的开发中,acti 阅读全文
posted @ 2012-03-22 11:55 haiwei.sun 阅读(157) 评论(0) 推荐(0) 编辑
摘要: Package元素属性:属性是否必需说明name是被其他包引用时的键(key)Extends否指定要扩展的包namespace否指定命名空间abstract否声明包为抽象的命名空间Namespace配置Package元素的namespace属性可以将包中的action配置为不同的名称空间,这样在不同名称空间中可以使用同名的action. Struts2框架使用action的名字和它所在的名称空间来标识一个action。当struts2接收到一个请求的时候,它会将请求的URL分为namespace和action名字这两个部分,然后struts2就会从struts.xml中查找namespace/ 阅读全文
posted @ 2012-03-22 11:26 haiwei.sun 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 1、建立好你的web项目2、拷贝struts2 jar包在apps\struts2-blank-2.1.6\WEB-INF\lib下|-commons-fileupload-1.2.6.jar|-commons-io-1.3.2.jar|-commons-logging-1.1.jar|-freemarker-2.3.13.jar|-ognl-2.6.11.jar|-struts2-core-2.1.6.jar|-xwork-2.1.2.jar3、配置web.xml拷贝示例文件<filter><filter-name>struts2</filter-name> 阅读全文
posted @ 2012-03-22 11:05 haiwei.sun 阅读(124) 评论(0) 推荐(0) 编辑
摘要: public class ProducerConsumer { public static void main(String[] args) { SyncStack ss = new SyncStack(); Producer p = new Producer(ss); Consumer c = new Consumer(ss); new Thread(p).start(); new Thread(p).start(); new Thread(p).start(); new Thread(c... 阅读全文
posted @ 2012-03-19 23:19 haiwei.sun 阅读(114) 评论(0) 推荐(0) 编辑
摘要: package org.shw.pc;public class TestPC { public static void main(String[] args) { Info info = new Info(); Producer pro = new Producer(info); Consumer con=new Consumer(info); new Thread(pro).start(); new Thread(con).start(); }}生产者消费者--Producer.java 阅读全文
posted @ 2012-03-19 21:57 haiwei.sun 阅读(135) 评论(0) 推荐(0) 编辑
摘要: package org.shw.pc;public class Producer implements Runnable { private Info info=null; public Producer(Info info){ this.info = info; } public void run() { for(int x=0;x<100;x++){ if(x%2==0){ this.info.set("MLDN","www.mldnjava.cn"); }... 阅读全文
posted @ 2012-03-19 21:56 haiwei.sun 阅读(148) 评论(0) 推荐(0) 编辑
摘要: package org.shw.pc;public class Consumer implements Runnable { private Info info=null; public Consumer(Info info){ this.info=info; } public void run() { for(int x=0;x<100;x++){ this.info.get(); } }} 阅读全文
posted @ 2012-03-19 21:56 haiwei.sun 阅读(156) 评论(0) 推荐(0) 编辑
摘要: package org.shw.pc;public class Info { private String title="李兴华"; private String content="java讲师"; private boolean flag=false; //false--表示可以取走,但是不能生产 true--表示可以生产,但是不能取走 public synchronized void set(String title,String content){ if(flag==false){//已经生产过了,需要等待 try{ ... 阅读全文
posted @ 2012-03-19 21:55 haiwei.sun 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 新建状态:用new语句创建的线程对象处于新建状态。就绪状态:当一个线程对象创建后,其他线程调用它的start()方法,该线程就进入就绪状态。运行状态:处于这个状态的线程占用CPU,执行程序代码。只有处于就绪状态的线程才有机会转到运行状态。阻塞状态:线程因为某些原因放弃CPU,暂时停止运行。当线程处于阻塞状态时,Java虚拟机不会给线程分配CPU,直到线程重新进入就绪状态,它才有机会转到运行状态。死亡状态:当线程执行完run()方法中的代码,或者遇到了未捕获的异常,就会退出run()方法,此时就进入死亡状态,该线程结束生命周期。程序如何干预Java虚拟机对线程的调度过程(1)调整各个线程的优先级 阅读全文
posted @ 2012-03-19 15:54 haiwei.sun 阅读(214) 评论(0) 推荐(0) 编辑
摘要: public class ThreadJoin extends Thread { public void run(){ for(int a=0;a<30;a++){ System.out.println(getName()+":"+a); } } public static void main(String[] args) { ThreadJoin tj = new ThreadJoin(); tj.setName("m1"); tj.start(); Syste... 阅读全文
posted @ 2012-03-19 14:04 haiwei.sun 阅读(326) 评论(0) 推荐(0) 编辑
摘要: public class ThreadYield extends Thread{ public void run(){ for(int a=0;a<50;a++){ yield(); System.out.println(Thread.currentThread().getName()+" : "+a); } } public static void main(String[] args) { ThreadYield t1 = new ThreadYield(); Th... 阅读全文
posted @ 2012-03-19 13:47 haiwei.sun 阅读(668) 评论(0) 推荐(0) 编辑
摘要: 两者的区别有: 1、最主要是sleep方法没有释放锁,而wait方法释放了锁,使得其他线程可以使用同步控制块或者方法。 2、这两个方法来自不同的类分别是Thread和Object 3、wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在 任何地方使用 synchronized(x){ x.notify() //或者wait() } 4、sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异常 阅读全文
posted @ 2012-03-19 13:21 haiwei.sun 阅读(1029) 评论(0) 推荐(0) 编辑
摘要: public class ThreadSleep extends Thread { public void run(){ for(int a=0;a<50;a++){ try{Thread.sleep(500);}catch(InterruptedException e){} System.out.println(Thread.currentThread().getName()+" : "+a); } } public static void main(String[] args) { ... 阅读全文
posted @ 2012-03-19 12:35 haiwei.sun 阅读(17611) 评论(0) 推荐(0) 编辑
返回顶部