Linux下的JFreeChart和 汉子验证码 中文乱码问题解决方案
原因:因为linux下,jdk的字符集里缺汉子编码给他补上,字符集文件自己找或与我联系都可以,以下是解决办法。环境:JDK1.5(JDK版本很重要,如果是1.4.2版本的话,JRE目录下的字体配置文件不大一样)RedHat4.0Tomcat5.0解决方法:1.确认%JavaHome%/jre/lib/fonts目录下存在zysong.ttf2.在%JavaHome%/jre/lib/fonts目录下执行"ttmkfdir -o fonts.dir"命令,重新生成fonts.dir文件3.确认/usr/share/fonts/zh_CN/TrueType目录存在,如果不存在则mkdir创建4.确认/usr/share/fonts/zh_CN/TrueType目录下存在zysong.ttf5.在%JavaHome%/jre/lib
从txt文件读取u8584之类的转换成相应的utf-8汉字的方法
因为每次从txt文件读取一个u开始的汉字的时候,程序认为它就是一个普通的字符串序列,所以我们必须把它转换成我们需要的utf编码的字符序列,这里用到了java.util.property类里的一个方法来把不同的字符串转换为utf需要的字符串序列,方法如下:package com.community.test;import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.InputStreamReader;public class test { public static void main(String args[]) { try { char []inc=new char[1024]; char []outc=new char[6]; //文
socket 模型简介
共同点:ServerSocket serverSocket = new ServerSocket(80);sokcet s = serverSocket.accept();区别:1 原始:(线程池)每来一个请求分配新的一个线程来处理,继续等待下一个请求,这个过程中每一个线程一直等待数据的到来。这种情况导致随并发量多 线程数增加,系统消耗比较大2 select(2个线程)每来一个请求则把s给select,继续等待下一个请求。来数据时select里copy一个套接字,来处理缓冲区数据(这个过程很耗时),因当时的条件所限制select里只能放64个套接字,也就是说并发最大量为64. 一个线程处理接受,另一个进程处理套接字处
动态编译JAVA程序
这段说明很有用,动态的编译是件非常好的想法,我这里引用收藏一下:)地址:http://www.itpub.net/showthread.php?s=&postid=8088670#post8088670[转贴者注]对于很多应用系统,常常需要动态装载和执行类和代码片断,这有利于部署的简易性和系统设计上的灵活性。本文给出了一个比较全面的介绍,值得参考。在Sun JDK 1.2及后续版本中,包含了一组可在程序运行时刻编译和执行Java代码的API。这些API被包含在tools.jar类库中。这个功能允许Java程序在运行时动态编译、执行小的代码块,在有些情况下这个功能会让Java应用程序的架构更加灵活
Jakarta Commons 组件
For more information concerning Commons, see the Commons site. Commons Attributes Commons BeanutilsCommons Betwixt Commons Chain Commons CLI Commons CodecCommons CollectionsCommons Configuration Commons Daemon Commons DBCP Commons DbUtilsCommons DigesterCommons Discovery Commons EL Commons Email Commons FileUploadCommons HttpClientCommons IO Commons Jelly Commons JEXLCommons JXPath Commons Lang Commons Latka Commons LauncherCommons Logging Commons Math Commons Modeler Commons Net Commons Pool Co
对XML 进行 parse 时的Invalid Unicode character (0x0) 分析
XML 在搜索引擎的低端起到了非常重要的作用,可是由于相当多数的网络上的Rss feed或者XML feed都是直接从数据库文件生成的,因此极有可能包含有一些非常字符,而这些字符在XML进行Parse的时候就会带来 Invalid Unicode character (0x0) 这样的错误或者是org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0x0) was found,如何解决这样的错误?先看看Unicode的一些基础知识:Unicode 最初设计是作为一种固定宽度的 16 位字符编码。在 Java 编程语言中,基本数据类型 char 初衷是通过提供一种简单的、能够包含任何字符的
java正则表达式实例
Java正则表达式实例详解 [转]创建正则表达式你可以从比较简单的东西入手学习正则表达式。要想全面地掌握怎样构建正则表达式,可以去看JDK文档的java.util.regex的Pattern类的文档。 字符 B 字符B xhh 16进制值0xhh所表示的字符 uhhhh 16进制值0xhhhh所表示的Unicode字符 t Tab n 换行符 r 回车符 f 换页符 e Escape 正则表达式的强大体现在它能定义字符集(character class)。下面是一些最常见的字符集及其定义的方式,此外还有一些预定义的字符集: 字符集 . 表示任意一个字符 [abc] 表示字符a,b,c中的任意一个(与a
XPath 教程
para 选择上下文节点的 para 元素孩子* 选择上下文节点的所有的元素孩子text() 选择上下文节点的所有的正文节点孩子@name 选择上下文节点的 name 属性@* 选择上下文节点的所有的属性para[1] 选择上下文节点的第一个 para 孩子para[last()] 选择上下文节点的最后一个 para 孩子*/para 选择上下文节点的所有的 para 孙子/doc/chapter[5]/section[2] 选择doc的第五个 chapter 的第二个 section chapter//para 选择上下文节点的 chapter 元素孩子的所有 para 元素子孙//para 选择文档根的所有的 para 子孙,也就是选择上下文节点所在的文档中所
HttpClient 简单例子
private boolean sendURL(String url) { boolean right = false; HttpClient client = new HttpClient(); GetMethod method = new GetMethod(url); try { client.executeMethod(method); right = true; }catch (Exception e) { log.error(e, e.fillInStackTrace()); right = false; } finally { method.releaseConnection(); } return right; }[@more@]
freemarker 基本指令
一:if指令:<#if condition>...<#elseif condition2>...<#elseif condition3>......<#else>...</#if>二:switch<#switch value><#case refValue1>...<#break><#case refValue2>...<#break>...<#case refValueN>...<#break><#default>...</#switch>三:list,break<#list sequence as item>...</#list>两个特殊的循环变量:item_index: 当前变量的索引值。item_has_next: 是否存在下一个对象。可以用<#break/>指令离开loop循环。
由JSESSIONID谈cookie与SESSION的区别和联系
在一些投票之类的场合,我们往往因为公平的原则要求每人只能投一票,在一些WEB开发中也有类似的情况,这时候我们通常会使用COOKIE来实现,例如如下的代码:< % cookie[]cookies = request.getCookies();if (cookies.lenght == 0 || cookies == null)doStuffForNewbie();//没有访问过 }else{doStuffForReturnVisitor(); //已经访问过了}% >这是很浅显易懂的道理,检测COOKIE的存在,如果存在说明已经运行过写入COOKIE的代码了,然而运行以上的代码后,无论何时结果都是执行doStuffForReturnVisitor(),通过控制面板-Internet选项-设置
从Excel到导入MYSQL数据库
为了把Excel导入数据库写了这个这段程序,大概思路解释一下:因为导入数据库时字段类型和长度、还有字段数都是未知的,所以导入时用了通用的字段类型,在这里用了text,根据需要可以自行定制字段名,类型。这只是个简单的例子 如果常常遇到此类问题的我建议写个导入你所想见的表格属性的配置文件(xml或property文件都可以),这样灵活性更强了。还有一种更为好的办法,把要导入的Excel文件另存为xml文件,这样就会变成xml to database ,想导入就容易咯有什么不明白可以参考:全面挖掘Java Excel API 使用方法 从Excel表格导入msyql的例子
ibatis配置例子
iBatis是又一个O/R Mapping解决方案,j2ee的O/R方案真是多,和Hibernate相比,iBatis最大的特点就是小巧,上手很快。如果你不需要太多复杂的功能,iBatis是能满足你的要求又足够灵活的最简单的解决方案。iBatis最大的特点是简单,最新版本2.0(下载),和1.0相比,主要改动在XML配置文件上,不过,只要有SQL基础,相信你不用教程也能看明白。下面我们看一个最简单的例子入门。我们先建一个表Account,包括字段username, varchar(20), pk和password, varchar(20),随便填入一些数据。然后编写iBatis必须的配置文件sql-map-config.xml,文件
从webwork2.2应用到struts2的移植看webwork2.x和struts2的区别
以下文字来自struts2官方网站。一、变化struts2代码始于webwork2.2.3,少许的比较大的改动可能会影响你的webwork2.2应用的移植1、一些被Deprecated掉的方法和类已经被移除,这包括XWork Inversion of Control (IoC) 框架。2、使用xhtml 主题的一些工具库被DOJO的工具组件替代。3、使用FCK editor的rich text editor 组件被DOJO的rich text editor 替代,因为LGPL许可的原因。4、date picker组件也由于LGPL许可的原因被DOJO的date picker组件替代,不幸地,DOJO的date picker组件不支持国际化。感觉3有点可惜,FCK Editor还是很好用的。二、
spring执行定时任务
定义一个任务是很简单的实现TimerTask的run方法就可以了.如下:SayHelloTask.javapackage test.timerTask;import java.util.TimerTask;public class SayHelloTask extends TimerTask { @Override public void run() { // TODO Auto-generated method stub System.out.println("测试TimerTask : Hello !!"); }} 然后是配置文件:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "spring-beans.dtd" ><beans><bea
FreeMarker概述
FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据(如下图)FreeMarker不是一个Web应用框架,而适合作为Web应用框架一个组件FreeMarker与容器无关,因为它并不知道HTTP或Servlet;FreeMarker同样可以应用于非Web应用程序环境FreeMarker更适合作为Model2框架(如Struts)的视图组件,你也可以在模板中使用JSP标记库Fr
Velocity and FreeMarker Decorators
OverviewSiteMesh是一个Web页面布局修饰框架, 用于构建包含大量页面, 需要一致的外观样式(look/fell), 导航和布局机制的大型网站.在WebWork中集成SiteMesh相当容易: 实际上什么也不用做. WebWork把全部值栈数据都保存在请求attribute中, 这意味着如果想显示值栈(或ActionContext)中的数据, 只需使用WebWork附带的标准标签库, 就这么简单!ActionContextCleanUp在WebWork的架构中, 标准的过滤器链(filter-chain)一般以 ActionContextCleanUp 开始, 后面跟着其他需要的过滤器. 最后, 由 FilterDispatcher 处理请求, 通常是将请求传递给Action
sitemesh简化页面
再说 sitemesh 的问题,同样是做 openfans 网摘功能出现的。做好了 IE 插件,有 fans 反馈说弹出页面太大,这也难怪,用了 sitemesh , head 和 footer 都在页面上,想缩小页面,肯定得把 head 和 footer 都去掉,做个干净点的。既然用了 sitemesh 肯定是希望最方便的搞定这个,而不用动任何逻辑(包括页面逻辑)。这个好办,文档里有说,通过在 sitemesh.xml 中增加 < mapper class = " com.opensymphony.module.sitemesh.mapper.ParameterDecoratorMapper " > < param name = " decor
webwork.properties配置说明
webwork.proerties里面的全部配置项目都在com.opensymphony.webwork.WebWorkConstants这个类里面定义:package com.opensymphony.webwork;/*** This class provides a central location for framework constants.** @author Onyeje Bose (digi9ten@yahoo.com)*/public final class WebWorkConstants { public static final String WEBWORK_DEVMODE = "webwork.devMode"; public static final String WEBWORK_I18N_RELOAD = "webwork.i18n.reload"; public static final String WEBWORK_I18N_ENCODING = &quo
ANT安装、配置
文章转载自互联网,如果您觉得我们侵权了,请联系管理员,我们会立刻处理。 内容摘要:ant是一个基于JAVA的自动化脚本引擎,脚本格式为XML。除了做JAVA编译相关任务外,ANT还可以通过插件实现很多应用的调用。ANT的基本概念: ANT的安装:解包,设置路径 ANT的使用:最好的学习只不过是一个简单实用的例子起步…… ANT的基本概念:Java的Makefile当一个代码项目大了以后,每次重新编译,打包,测试等都会变得非常复杂而且重复,因此c语言中有make脚本来帮助这些工作的批量完成。在Java 中应用是平台无关性的,当然不会用平台相关的make脚本