java提供文件下载的方法
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/1fa987a29c6482f53d401256f96355eb.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/ca75c07623e1b494fee67e8f316fc310.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/97e794c86028c5f5b5461ae5ef440a4c.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3c6cafce68eb941a00f1998f1d3d3aa6.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/ecedf933ec37d714bd4c2545da43add2.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/d18c02628675d0a2c816449d98bda930.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/8f1ba5b45633e9678d1db480c16cae3f.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/1fa987a29c6482f53d401256f96355eb.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/ca75c07623e1b494fee67e8f316fc310.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/8f1ba5b45633e9678d1db480c16cae3f.gif)
posted @ 2006-02-16 12:21 kelven 阅读(575) | 评论 (0) | 编辑 收藏
posted @ 2006-02-16 12:21 kelven 阅读(575) | 评论 (0) | 编辑 收藏
posted @ 2006-02-09 12:35 kelven 阅读(146) | 评论 (0) | 编辑 收藏
posted @ 2006-01-17 01:37 kelven 阅读(1918) | 评论 (1) | 编辑 收藏
posted @ 2006-01-01 08:02 kelven 阅读(97) | 评论 (0) | 编辑 收藏
posted @ 2005-12-28 16:16 kelven 阅读(70) | 评论 (0) | 编辑 收藏
posted @ 2005-12-16 12:58 kelven 阅读(101) | 评论 (0) | 编辑 收藏
Servlet的演变:在常规的 JSP,Servlet,JavaBean三层结构中,JSP实现View的功能,Servlet实现Controller的功能,JavaBean实现Model的实现。
在Struts中,将常规情况下的Servlet拆分与ActionServlet、FormBean、ActionBean三个部分。ActionServlet配合Struts-config.xml,专职完成页面导航,而不再负责具体的数据获取与相应逻辑,这两部分功能由FormBean和ActionBean来完成。
Struts的核心是Controller,即ActionServlet,而ActionServlet的核心就是Struts-config.xml,Struts-config.xml集中了所有页面的导航定义。对于大型的WEB项目,通过此配置文件即可迅速把握其脉络,这不管是对于前期的开发,还是后期的维护或升级都是大有裨益的。掌握Struts-config.xml是掌握Struts的关键所在。
<struts-config>
<data-sources />
<form-beans >
<form-bean name="systemForm" type="com.gdglc.survey.form.SystemForm" />
<form-bean name="FindMemberForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="findName" type="java.lang.String"/>
</form-bean>
</form-beans>
<global-exceptions />
<global-forwards>
<forward name="showMsg" path="/msg.jsp" />
</global-forwards>
<action-mappings>
<action
path="/list"
type="com.gdglc.survey.action.ListAction">
<forward name="list" path="/list.jsp"/>
</action>
<action
attribute="systemForm"
input="/admin/System_Base_List.jsp"
name="systemForm"
path="/systemBaseModify"
type="com.gdglc.survey.action.SystemAction"
scope="request"
validate="false">
</action>
</action-mappings>
<message-resources parameter="com.gdglc.application" />
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
</plug-in>
</struts-config>
每一个FormBean 都必须继承ActionForm类,FormBean是对页面请求的封装。即把HTTP request 封装在一个对象中,需要说明的一点就是多个HTTP request可以共用一个FormBean,便于维护和重用。
posted @ 2005-12-15 13:33 kelven 阅读(481) | 评论 (0) | 编辑 收藏
使用Resin开发Java Web项目时,需要建立自己的WebApp。这里不介绍Resin Cmp/Ejb的开发和使用,只介绍用Resin开发普通的jsp/java servlet项目。在这里还要谈到resin.conf的配置。Resin中的应用可以有2种方式发布:一是在Resin的目录下发布;二是打包成War发布。
1、在Resin的目录下发布
在resin.conf中查找<web-app>标签,该标签表示一个web应用。
标签中,id属性表示该应用的Web路径。如<web-app id=’/test’>,表示该应用在Web上访问的时候应该用http://hostname/test/来访问。app-dir属性表示该应用的实际路径。如<app-dir>d:/resin/doc/test</app-dir>表示该应用在d:/resin/doc/test目录下面。默认值为根下面的和id同名的目录。Resin可以配置3种error-page:404错误也就是文件找不到错误页;Exception违例页;不能连接java引擎页。他们分别可以这样子设置。
404文件找不到页
<web-app id='/app1'>
<error-page error-code='404' location='/file_not_found.jsp'/>
</web-app>
Exception 违例页
<web-app id='/foo'>
<error-page exception-type='java.lang.NullPointerException'
location='/nullpointer.jsp'/>
</web-app>
不能连接到srun Servlet引擎错误页
该页设置和应用无关,属于服务器的设置。
<http-server>
<error-page exception-type='connection'
location='/missing_file.html'/>
</http-server>
classpath的设置
参见下面的语句:
<classpath id='WEB-INF/classes' source='WEB-INF/src' compile='true'/>
id参数的值表示classpath中编译后的classpath的存放路径;source参数的值表示classpath中java源代码的存放路径;compile中的值可能是true或者false,表示是否由Resin的srun自动编译java源代码。Classpath的设置一般和javaBean或者Servlet的使用有关。id的值表示javaBean的编译好的包存放的根,source的值表示javaBean的java源代码存放的根。Servlet相同。
Servlet的设置
参见下面的语句:
<servlet-mapping url-pattern='*.xtp' servlet-name='xtp'/>
<servlet-mapping url-pattern='*.jsp' servlet-name='jsp'/>
<servlet-mapping url-pattern='/servlet/*' servlet-name='invoker'/>
一般就是指定那些需要通过srun的解析。比如在这里,把*.jsp改成*.jss,其他不变,那么只要在访问时遇到*.jss的文件就和原来遇到*.jsp一样处理。通过这个可以指定解析的引擎,如以下的配置:
<servlet-mapping url-pattern='*.xtp' servlet-name='com.caucho.jsp.XtpServlet'/>
在Servlet中,也可以指定servlet。如
<servlet servlet-name='hello' servlet-class='test.HelloWorld'/>
<servlet-mapping url-pattern='/hello.html' servlet-name='hello'/>
在servlet-mapping中有个重要的参数case-sensitive 如果在windows上,最好配置成false,忽略大小写,从而和windows的约定一致。
Session的配置
参见如下的配置语句:
<session-config>
<session-max>4096</session-max>
<session-timeout>30</session-timeout>
<enable-cookies>true</enable-cookies>
<enable-url-rewriting>true</enable-url-rewriting>
<file-store>WEB-INF/sessions</file-store>
</session-config>
session-max :最大 session数量
session-timeout :session过期时间,以分钟为单位。
是否允许cookie :指session是否采用cookies。如果采用cookies,浏览器必须支持session才能使用,发布时建议改成false。enable-url-rewriting和enable-cookies一般配合使用。如果enable-cookies是false,enable-url-rewriting应该设成true比较合适。
file-store :该配置指示服务器是否把session作为文件存放在服务器上。如果把该项注释掉,则在你的web-app目录下的WEB-Inf/sessions目录不保存序列化后的session对象。Session还有jdbc-store配置,对应着把session通过jdbc永久保存在数据库中。其实也就是会话变量的序列化后的保存和重新载入的物理实现。在这里session还支持了多服务器的设置问题,
通过tcp-store参数设置。由于涉及到负载平衡的问题,在这里不详细叙述,只简单写一个例子:
<http-server>
<http id='a' port='80'/>
<srun id='a' host='host-a' port='6802'/>
<http id='b' port='80'/>
<srun id='b' host='host-b' port='6802'/>
<host id=''>
<web-app id=''>
<session-config>
<tcp-store/>
<always-load-session/>
</session-config>
</web-app>
</host>
</http-server>
这个例子表示session是按照tcp ring的方式传递。
temp-dir 的设置
temp-dir指的是应用的临时目录。也就是在javax.servlet.context.tempdir中用到的目录。模认是应用目录下的WEB-INF/tmp目录。
以上的设置都可以在<web-app>标签对中设置,控制某个web应用的设置。
2、打包成War发布
以下是介绍对如何在resin下使用已经打包成War的java Web应用进行发布。
其实这个是最简单也是最清晰的良好方法。在j2ee中,所有的项目都打包成ear发布。其中,Web应用打包成war,ejb应用打包成jar。在resin中,这些都可以直接部署。这里我只对打包成war的Web应用的部署做介绍。
在resin.conf中,查找这个:<war-dir id='webapps'/>。他表示war文件应该被拷贝的路径。这里指的是相对于resin的安装路径,如以上的设置表示d:/resin/webapps。只要重新启动Resin就可以了。Resin会把该war自动解包到webapps目录下。你可以在command控制台或者stdout.log中看到类似于
[2002-04-27 09:56:21.680] initializing application http://haitaiserver:8080/rwtest 的语句。这个表示该Web应用是自动安装的。只要这个应用是符合j2ee标准的Web应用,应该不会有问题。通过如上显示的路径就可以访问到这个应用。如果你到d:/resin/webapps/rwtest中浏览,你会看到Resin已经为你生成了rwtest目录,下面是META-INF和WEB-INF还有你自己的JSP/servlet 文件和目录。是完全符合j2ee的结构的。你可以在rwtest目录下建立新的jsp/servlet,一样可以被编译和解析并运行的。在实际操作中,可以使用Jbuilder 或者 WebSphere等Ide工具进行集成调试和打包,非常的方便。
使用Resin进行java Web项目的开发和调试
这里篇幅有限,不可能讲太多,我只对实际中最有用的部分做介绍。
Resin中如果定义了错误页,则出错后最常见的一大串Exception不会被看到,直接跳转到错误页。所以建议开发中先不设置错误页。jsp错误中最常见的就是Nullpoint Exception,其次是名称的拼写错误。错误也可以在Resin安装目录下的log目录下的stderr.log中找到。通过对该log文件的分析可以看到很多有用的错误信息。
在调试jsp的时候,如果定义了compile为true,jsp先被翻译成Servlet的java文件,再被编译成class文件。可以在你自己的work目录中找到该文件。java的名称在Resin中是这样子定义的:原先的jsp文件名前加下划线,再加上_jsp这个字样。所以在java 应用中的命名不要以_jsp结尾,也不要出现中文名称等字符;其实名称以_jsp为开头也是不合法的。
关于java对多国语言的支持问题,在Resin中得到了很好的解决。以jsp为例,参考Resin自动生成的java Servlet文件。只要在任何的jsp文件的最开始处增加:
<%@page contentType="text/html;charset=gb2312" %>
中文问题就解决了。察看生成的Servlet源文件片断:
response.setContentType("text/html;charset=gb2312");
request.setCharacterEncoding("GB2312");
以上为设置字符集
private static byte []_jsp_string26;
private static byte []_jsp_string27;
_jsp_string26 = "/r/n</table>/r/n<table class=/"type/">/r/n<tr>/r/n <td>".getBytes("GB2312");
_jsp_string27 = "/r/n</td><td>/r/n</tr>/r/n<!--/r/n<tr>/r/n<td>/r/".getBytes("GB2312");
以上是对页面的显示的编码。其中,getBytes(“gb2312”)是静态编码,这是Resin为了解决某些环境下还是不能正常显示而设置的。在Resin的配置文件(/conf/resin.conf)中,可以通过设置<jsp precompile='true' static-encoding='false' recompile-on-error='true'/>中的static-encoding属性为true或者false,来控制是否静态编码。其实在Resin容器的内部,所有的字符都是按照iso-8859-1来处理的。iso-8859-1是一个大字符集,虽然中文的gb2312和8859在字的定义上有不同,但是编码是包容了gb2312的。按照解决多国语言的方法,在纯英文平台上用iso-8859-1处理内部编码,而把字符的显示推向客户端的机器。所以这样只要编码是正确的,
在页面上显示中文就不存在问题。Tomcat3.2不方便的地方是Tomcat对数据库的操作中文支持不好,需要手动在java Bean或者Servlet中硬编码。通过测试,在Resin中完全没有这个问题。Tomcat4.0解决了这个问题。不过个人习惯来讲还是觉得resin在配置方面方便一些。
在Resin中可以自动解决引入的jar。这个在使用特殊的类或者第三方提供的开发包非常有用。方法非常简单:只要把该jar或者是zip拷贝到Resin安装目录下的lib目录下面,重新启动Resin,就可以了。如db2用到的db2java.zip文件,只要轻松拷贝到d:/resin/lib中就可以了。
Resin提供了对Jbuilder的集成调试。可以到:
http://www.caucho.com/projects/jbuilder/resin-jbuilder.jar免费下载到resin的jbuilder的ide扩展包。然后,把该包该名成:resin-jbuilder.jar,拷贝到jbuilder6/lib/ext目录下。然后,把Resin2.1解包安装在jbuilder6/resin-2.1目录下,就可以了。打开任何的War项目,在project上点右键,选择properties,选择Servers标签。在原来的选择框上,就可以看到多了一项Resin2.1。这样子就可以象原来用tomcat一样调试jsp/servlet了,而且比Tomcat更方便。见图2:
图2
调试方法和用Tomcat调试一样。
其他问题
使用Resin可以和apache结合使用。也就是利用apache做http服务器,而Resin做srun服务器。可以参考resin/conf/samples目录下的apache.conf。主要就是把 app-dir 设成 /usr/local/apache/htdocs(也就是apache的root)。同时在apache 中的http.conf也做了相应的设置。Resin还提供了对该过程的自动安装程式,运行resin/bin/setup,你可以在弹处的对话框中选择apache,这样子就可以了。只要你曾经安装过apache,resin可以自己找到httpd.conf文件所在的路径。
使用命令行方式启动Resin,如果改动了Resin.conf,Resin会自己重新启动适应新的配置。这个很适合初期安装时使用。
Resin对数据库缓冲池的支持很好。在这里,它提供了DBPool对缓冲池做了封装。实际使用时,只要在resin.conf这样配置:
<dbpool.sql>
<id>ORCL</id>
<driver>oracle.jdbc.driver.OracleDriver</driver>
<url>jdbc:oracle:thin:@localhost:1521:SMTH</url>
<!-- <url>jdbc:oracle:oci8:@SMTH</url> -->
<user>scott</user>
<password>tiger</password>
<max-connections>5</max-connections>
</dbpool.sql>
然后,在你的jsp或者servlet中就可以这样子使用了:
先导入 com.caucho.sql.*包,然后如下直接得到连接:
Connection conn = DBPool.getPool("ORCL").getConnection();
个人建议不要如上使用连接池,还是按照ejb的方法用从Context中直接找到的DataSource对象中得到连接通用性比较好。代码也很简单:
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup(“jdbc/EmployeeDB”);
Connection conn = ds.getConnection();
在Resin中如下配置jdbc就可以了:
<resource-ref>
<res-ref-name> jdbc/EmployeeDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<init-param driver-name="com.caucho.jdbc.mysql.Driver"/>
<init-param url="jdbc:mysql_caucho://localhost:3306/test"/>
<init-param user="name"/>
<init-param password="password"/>
<init-param max-connections="20"/>
<init-param max-idle-time="30"/>
</resource-ref>
用Resin Web Server开发还是比较愉快的。只是没有像Weblogic 或者WebSphere那样子提供现成的管理控制台而已。但是从稳定性和方便性来讲,Resin个人认为比Tomcat要好很多。况且Resin还有提供了resin-cmp 和 resin-ejb,功能更强大。
posted @ 2005-12-15 13:22 kelven 阅读(571) | 评论 (0) | 编辑 收藏
模式名称 | 启用,禁用 | 缺省启用 | 说明 |
UNIX_LINES | (?d)启用,(?-d)禁用 | 是 | 启用Unix行模式。 在此模式下,只有 '/n'被认为是行结束符。它会影响., ^, 和 $ 的行为。 |
CASE_INSENSITIVE | (?i)启用,(?-i)禁用 | 否 | 启用忽略大小写模式。 缺省时,忽略大小写模式只会影响 ASCII字符的匹配。 而Unicode范围的忽略大小写匹配需要通过 UNICODE_CASE 标志与本标志联合使用。 启用此模式会影响匹配性能。 |
COMMENTS | (?x)启用,(?-x)禁用 | 否 | 允许空格和注释出现在正则表达式中。 在此模式下,空格被忽略,以#开始的单行注释被忽略。 |
MULTILINE | (?m)启用,(?-m)禁用 | 是 | 启用多行模式。 In multiline mode the expressions ^ and $ match just after or just before, respectively, a line terminator or the end of the input sequence. By default these expressions only match at the beginning and the end of the entire input sequence. |
DOTALL | (?s)启用,(?-s)禁用 | 否 | 让.可以匹配行结束符。 在此模式下,元字符.可以匹配行结束符。缺省不允许如此匹配。 |
UNICODE_CASE | (?u)启用,(?-u)禁用 | 否 | Enables Unicode-aware case folding. When this flag is specified then case-insensitive matching, when enabled by the CASE_INSENSITIVE flag, is done in a manner consistent with the Unicode Standard. By default, case-insensitive matching assumes that only characters in the US-ASCII charset are being matched. 启用此模式会影响性能。 |
CANON_EQ | (?c)启用,(?-c)禁用 | 否 | Enables canonical equivalence. When this flag is specified then two characters will be considered to match if, and only if, their full canonical decompositions match. The expression "a/u030A", for example, will match the string "?" when this flag is specified. By default, matching does not take canonical equivalence into account. 启用此模式会影响性能。 |
正则表达式字符串 | 匹配的字符串 |
X | 字符X,包括 CJK ExtB 区汉字 |
// | 反斜杠/ |
/0n | 八进制0n代表的字符(0<=n<=7) |
/0nn | 八进制0nn代表的字符(0<=n<=7) |
/0mnn | 八进制0mnn代表的字符(0<=m<=3,0<=n<=7) |
/xhh | 十六进制 0xhh所代表的字符 |
/uhhhh | 十六进制 0xhhhh所代表的字符。注意,目前尚不支持CJK ExtB区汉字。 |
/t | 制表符('/u0009') |
/n | 换行('/u000A') |
/r | 回车('/u000D') |
/a | 响铃符('/u0007') |
/e | 取消符Escape('/001B') |
/cx | x所代表的控制字符 |
正则表达式字符串 | 匹配的字符串 |
XY | X后面跟随Y |
X|Y | X或者Y |
(X) | X作为分组表达式 |
正则表达式字符串 | 匹配的字符串 |
/n | 第n个匹配的分组 |
边界字符 | 匹配的字符串 |
^ | 行首 |
$ | 行末 |
/b | 字符边界 |
/B | 非字符边界 |
/A | 输入流的开始 |
/G | 上次匹配的结束处 |
/Z | 输入流的结束,或者是最后一个行结束符,参见行结束符。 |
/z | 输入流的结束 |
正则表达式字符串 | 匹配的字符串 |
X? | X重复一次,或者不重复 |
X* | X重复0次或多次 |
X+ | X重复1次或多次 |
X{n} | X重复n次,不多也不少。 |
X{n,} | X至少重复n次 |
X{n,m} | X至少重复n次,至多重复m次。 |
正则表达式字符串子集 | 匹配的字符串 | 组合方式 |
[abc] | 字符a,b或c,包括 CJK ExtB 区汉字 | 简单子集 |
[^abc] | 任意非a,b或c的字符。 | 排除 |
[a-zA-Z] | 从a到z,或者A到Z,包含a,z,A,Z。 | 区间 |
[a-d[m-p]] | 从a到d,或者m到p,等于[a-dm-p]。 | 联合 |
[a-z&&[def]] | d,e或者f。 | 交集 |
[a-z&&[^bc]] | 从a到z,除了b和c,等于[ad-z] | 扣除 |
[a-z&&[^m-p]] | 从a到z,并且不包括从m到p,等于[a-lq-z] | 扣除 |
边界字符 | 匹配的字符串 |
. | 任意字符,可能匹配行结束符。 |
/d | 数字[0-9] |
/D | 非数字[^0-9] |
/s | 空白符[ /t/n/x0B/f/r] |
/S | 非空白符[^/s] |
/w | 单词符,包含有字母和数字[a-zA-Z_0-9] |
/W | 非单词符,不包含有字母和数字。 |
正则表达式字符串 | 匹配的字符串 |
名称 | 块名称(/p{InXXX}) | 简化通配符 | 标准Unicode块,或者汉字列表 |
任意双字节字符(汉字或全角符号) | /p{InQuqnJiao} | /E | 任意由GBK表示的汉字,不包括GB18030扩展部分, 以及CJK ExtB区的汉字。 |
任意单字节字符 | /p{InFQuanJiao} | /~E | 任意单字节字符。 |
任意全角ASCII字符 | /p{InQJAscii} | /H | 标准HalfwidthandFullwidthForms块 |
任意收录在BIG5码集中的双字节字符 | /p{InBig5} | /I | Big5可编码双字节字符 |
匹配未收录在BIG5码集中的双字节字符 | /p{InFBig5} | /~I | 非Big5可编码双字节字符 |
匹配任意汉字(不包括符号) | /p{InHanziOrCJKExtB} | /X | 任意汉字,包括GB18030扩展部分。 |
匹配任意汉字(不包括符号) | /p{InHanzi} | /M | 任意汉字,不包括GB18030扩展部分。 |
匹配非汉字的双字节字符 | /p{InFHanzi} | /~M | 任意非汉字的双字节字符, 包括GB18030扩展部分。 |
地支字符 | /p{InDiZhi} | /U | 子丑寅卯辰巳午未申酉戌亥 |
匹配收录在GB码集中的双字节字符 | /p{InGB} | /g | 收录在GB码集中的双字节字符, 不包括GB18030扩展部分。 |
匹配非收录在GB码集中的双字节字符 | /p{InFGB} | /~g | 未收录在GB码集中的双字节字符, 不包括GB18030扩展部分。 |
匹配收录在GBK码集中的双字节字符 | /p{InGBK} | /h | 收录在GBK码集中的双字节字符, 不包括GB18030扩展部分。 |
匹配非收录在GBK码集中的双字节字符 | /p{InFGBK} | /~h | 未收录在GBK码集中的双字节字符, 不包括GB18030扩展部分。 |
大写希腊字母 | /p{InDaXila} | /K | ΑΒΓΔΕΖΗΘΙΚΛΜΝ ΞΟΠΡΣΤΥΦΧΨΩ |
日文片假名 | /p{InPianJia} | /j | 标准Katakana块 |
日文平假名 | /p{InPingJia} | /J | 标准Hiragana块 |
小写希腊字母 | /p{InXiaoXila} | /k | αβγδεζηθικλμν ξοπρστυφχψω |
数学符号 | /p{InMathe} | /m | ±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙ ∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴ |
中文数字 | /p{InCnDigit} | /i | 〇一二三四五六七八九十百千万亿兆吉京 |
大写中文数字 | /p{InDaCnDigit} | /N | 零壹贰叁肆伍陆柒捌玖拾佰仟萬亿兆吉京 |
全角标点符号 | /p{InQJBiaoDian} | /o | 、。·ˉˇ¨〃々—~‖…‘’“”〔〕 〈〉《》「」『』〖〗【】!"'(), -.:;<=>?[]{|}`﹉﹊﹋﹌﹍﹎﹏﹐﹑﹒﹔﹕﹖﹗﹙﹚ ﹛﹜﹝﹞︵︶︹︺︿﹀︽︾﹁﹂﹃﹄ ︻︼︷︸︱︳︴ |
小写俄文字母 | /p{InXiaoEWen} | /l | абвгдеёжзийклмн опрстуфхцчшщъыьэюя |
大写俄文字母 | /p{InDaEWen} | /R | АБВГДЕЁЖЗИЙКЛМНО ПРСТУФХЦЧШЩЪЫЬЭЮЯ |
中文序号 | /p{InCnSN} | /q | ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ 再加上Unicode标准EnclosedAlphanumerics块 |
天干字符 | /p{InTianGan} | /T | 甲乙丙丁戊己庚辛壬癸 |
竖排标点符号 | /p{InSPBiaoDian} | /V | ︵︶︹︺︿﹀︽︾﹁﹂﹃﹄︻︼︷︸︱︳︴ |
拼音字符 | /p{InPinyin} | /y | āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑńňɡ GBK -> 0xA8A1- 0xA8C0 只是Unicode标准LatinExtended-A块的一部分。 |
注音字符 | /p{InZhuyin} | /Y | 标准Bopomofo块 |
制表字符 | /p{InZhiBiao} | /C | 标准BoxDrawing块。 经检查发现 textpro 的算法含有部分非标 准Unicode制表符:“∟∣≒≦≧⊿═”。 |
正则表达式字符串 | 匹配的字符串 |
/p{Lower} | 小写字母[a-z] |
/p{Upper} | 大写字母[A-Z] |
/p{ASCII} | 所有的ASCII字符[/x00-/x7F] |
/p{Alpha} | 大小写字母[/p{Lower}/p{Upper}] |
/p{Digit} | 数字[0-9] |
/p{Alnum} | 字母数字符,包含大小写字母和数字[/p{Alpha}/p{Digit}] |
/p{Punct} | 标点符号,!"#$%&'()*+,-./:;<=>?@[/]^_`{|}~之一。 |
/p{Graph} | 可显示字符[/p{Alnum}/p{Punct}] |
/p{Print} | 可打印字符[/p{Graph}] |
/p{Blank} | 空格或者制表符[ /t] |
/p{Cntrl} | 控制字符[/x00-/x1F/x7F |
/p{XDigit} | 十六进制数字[0-9a-fA-F] |
/p{Space} | 空白符[ /t/n/x0B/f/r] |
块 | 中文名称(摘自Word XP) | 代码区域 |
BasicLatin | 基本拉丁语 | /u0000-/u007F |
Latin-1Supplement | 拉丁语-1 | /u0080-/u00FF |
LatinExtended-A | 拉丁语扩充-A | /u0100-/u017F |
LatinExtended-Bound | 拉丁语扩充-B | /u0180-/u024F |
IPAExtensions | 国际音标扩充 | /u0250-/u02AF |
SpacingModifierLetters | 进格的修饰字符 | /u02B0-/u02FF |
CombiningDiacriticalMarks | 组合用发音符 | /u0300-/u036F |
Greek | 基本希腊语 | /u0370-/u03FF |
Cyrillic | 西里尔语 | /u0400-/u04FF |
Armenian | /u0530-/u058F | |
Hebrew | /u0590-/u05FF | |
Arabic | /u0600-/u06FF | |
Syriac | /u0700-/u074F | |
Thaana | /u0780-/u07BF | |
Devanagari | /u0900-/u097F | |
Bengali | /u0980-/u09FF | |
Gurmukhi | /u0A00-/u0A7F | |
Gujarati | /u0A80-/u0AFF | |
Oriya | /u0B00-/u0B7F | |
Tamil | /u0B80-/u0BFF | |
Telugu | /u0C00-/u0C7F | |
Kannada | /u0C80-/u0CFF | |
Malayalam | /u0D00-/u0D7F | |
Sinhala | /u0D800-/uDFF | |
Thai | /u0E00-/u0E7F | |
Lao | /u0E80-/u0EFF | |
Tibetan | 藏语 | /u0F00-/u0FFF |
Myanmar | /u1000-/u109F | |
Georgian | /u10A0-/u10FF | |
HangulJamo | /u1100-/u11FF | |
Ethiopic | /u1200-/u137F | |
Cherokee | /u13A0-/u13FF | |
UnifiedCanadianAboriginalSyllabics | /u1400-/u167F | |
Ogham | /u1680-/u169F | |
Runic | /u16A0-/u16FF | |
Khmer | /u1780-/u17FF | |
Mongolian | 蒙古语 | /u1800-/u18AF |
LatinExtendedAdditional | /u1E00-/u1EFF | |
GreekExtended | /u1F00-/u1FFF | |
GeneralPunctuation | 广义标点 | /u2000-/u206F |
SuperscriptsandSubscripts | /u2070-/u209F | |
CurrencySymbols | 货币符号 | /u20A0-/u20CF |
CombiningMarksforSymbols | /u20D0-/u20FF | |
LetterlikeSymbols | 类似字母的符号 | /u2100-/u214F |
NumberForms | 数字形式 | /u2150-/u218F |
Arrows | 箭头 | /u2190-/u21FF |
MathematicalOperators | 数学运算符 | /u2200-/u22FF |
MiscellaneousTechnical | 零杂技术用符号 | /u2300-/u23FF |
ControlPictures | /u2400-/u243F | |
OpticalCharacterRecognition | /u2440-/u245F | |
EnclosedAlphanumerics | 带括号的字母数字 | /u2460-/u24FF |
BoxDrawing | 制表符 | /u2500-/u257F |
BlockElements | 方块图形 | /u2580-/u259F |
GeometricShapes | 几何图形 | /u25A0-/u25FF |
MiscellaneousSymbols | 零杂丁贝符(示意符等) | /u2600-/u26FF |
Dingbats | /u2700-/u27BF | |
BraillePatterns | /u2800-/u28FF | |
CJKRadicalsSupplement | /u2E80-/u2EFF | |
KangxiRadicals | /u2F00-/u2FDF | |
IdeographicDescriptionCharacters | /u2FF0-/u2FFF | |
CJKSymbolsandPunctuation | CJK符号和标点 | /u3000-/u303F |
Hiragana | 平假名 | /u3040-/u309F |
Katakana | 片假名 | /u30A0-/u30FF |
Bopomofo | 注音 | /u3100-/u312F |
HangulCompatibilityJamo | /u3130-/u318F | |
Kanbun | /u3190-/u319F | |
BopomofoExtended | 扩展注音 | /u31A0-/u31BF |
EnclosedCJKLettersandMonths | 带括号的CJK字母及月份 | /u3200-/u32FF |
CJKCompatibility | CJK兼容字符 | /u3300-/u33FF |
CJKUnifiedIdeographsExtensionA | CJK统一汉字扩展-A | /u3400-/u4dBF |
CJKUnifiedIdeographs | CJK统一汉字 | /u4E00-/u9fAF |
YiSyllables | /uA000-/uA48F | |
YiRadicals | /uA490-/uA4CF | |
HangulSyllables | /uAC00-/uD7A3 | |
HighSurrogates | /uD800-/uDB7F | |
HighPrivateUseSurrogates | /uDB80-/uDBFF | |
LowSurrogates | /uDC00-/uDFFF | |
PrivateUse | 专用区 | /uE000-/uF8FF |
CJKCompatibilityIdeographs | CJK兼容汉字 | /uF900-/uFAFF |
AlphabeticPresentationForms | /uFB00-/uFB4F | |
ArabicPresentationForms-A | /uFB50-/uFDFF | |
CombiningHalfMarks | /uFE20-/uFE2F | |
CJKCompatibilityForms | CJK兼容形式 | /uFE30-/uFE4F |
SmallFormVariants | 小写变体 | /uFE50-/uFE6F |
ArabicPresentationForms-Bound | /uFE70-/ufeFF | |
Specials | /uFFF0-/uFFFF | |
HalfwidthandFullwidthForms | 半形及全形字符 | /uFF00-/uFFEF |
分类 | 全称 | 说明 |
Cn | UNASSIGNED | |
Lu | UPPERCASE_LETTER | |
Ll | LOWERCASE_LETTER | |
Lt | TITLECASE_LETTER | |
Lm | MODIFIER_LETTER | |
Lo | OTHER_LETTER | |
Mn | NON_SPACING_MARK | |
Me | ENCLOSING_MARK | |
Mc | COMBINING_SPACING_MARK | |
Nd | DECIMAL_DIGIT_NUMBER | |
Nl | LETTER_NUMBER | |
No | OTHER_NUMBER | |
Zs | SPACE_SEPARATOR | |
Zl | LINE_SEPARATOR | |
Zp | PARAGRAPH_SEPARATOR | |
Cc | CNTRL | |
Cf | FORMAT | |
Co | PRIVATE_USE | |
Cs | SURROGATE | |
Pd | DASH_PUNCTUATION | |
Ps | START_PUNCTUATION | |
Pe | END_PUNCTUATION | |
Pc | CONNECTOR_PUNCTUATION | |
Po | OTHER_PUNCTUATION | |
Sm | MATH_SYMBOL | |
Sc | CURRENCY_SYMBOL | |
Sk | MODIFIER_SYMBOL | |
So | OTHER_SYMBOL | |
L | LETTER | |
M | MARK | |
N | NUMBER | |
Z | SEPARATOR | |
C | CONTROL | |
P | PUNCTUATION | |
S | SYMBOL | |
LD | LETTER_OR_DIGIT | |
L1 | Latin-1 | |
all | ALL | |
ASCII | ASCII | |
Alnum | 字母数字(0-9,a-z,A-Z) | |
Alpha | 字母(a-z,A-Z) | |
Blank | 空格和制表符(' '|/t) | |
Cntrl | 控制字符,不可打印 | |
Digit | 数字(0-9) | |
Graph | 可打印且可视字母(例如空格' '是可打印的但不是可视字母,而 `a' 两者都是。) | |
Lower | 小写字母 | |
Print | 可打印字母(非控制字符) | |
Punct | 标符号(字母、数字、控制、空白符以外的字母),如:!@#$%}{<>,./?[]等等。 | |
Space | 空白符(' ',/t,0x09,0x0A,0x0B,0x0C,0x0D,0x20) | |
Upper | 大写字母 | |
XDigit | 十六进制数字(0-9,a-f, A-F) |
特殊字符介绍 | 描述 |
/n | 换行 |
/b | 向前删除一个字符。当这个字符位于替换串之首时,将删除匹配串之前的一个字符。若匹配串位于行首,将使匹配串所在行与前一行相合并。 |
/d | 向后删除一个字符。当这个字符位于替换串之末时,将删除匹配串之后的一个字符。若匹配串位于行末,将使匹配串所在行与下一行相合并。 |
/e | 插入一个ESC字符 |
/t | 插入一个TAB字符 |
/n | n代表查找正则表达式中的子表达式(组)。/1代表第一个子表达式,/2代表第二个子表达式,依次类推。/0代表整个匹配到的字符串。 |
/v | 大写下一个字母 |
/U | 全部大写以后的字母,直到碰到其它指示符为止。 |
/l | 小写下一个字母 |
/L | 全部小写以后的字母,直到碰到其它指示符为止。 |
/E | 取消所有的字母大小写指示符。 |
posted @ 2005-12-12 13:38 kelven 阅读(198) | 评论 (0) | 编辑 收藏
eclipseME
http://eclipseme.org/updates/
Eclipse加速插件KeepResident
http://suif.stanford.edu/pub/keepresident/
MyEclipse J2EE开发插件,支持SERVLET/JSP/EJB/数据库操纵等
www.myeclipseide.com
Properties Editor 编辑java的属性文件,并可以自动存盘为Unicode格式
http://propedit.sourceforge.jp/index_en.html
http://propedit.sourceforge.jp/eclipse/updates/
Colorer Take 为上百种类型的文件按语法着色
http://colorer.sourceforge.net/
XMLBuddy 编辑xml文件
www.xmlbuddy.com
Code Folding 加入多种代码折叠功能(比eclipse自带的更多)
http://www.coffee-bytes.com/servlet/PlatformSupport
Easy Explorer 从eclipse中访问选定文件、目录所在的文件夹
http://easystruts.sourceforge.net/
Fat Jar 打包插件,可以方便的完成各种打包任务,可以包含外部的包等
http://fjep.sourceforge.net/
RegEx Test 测试正则表达式
http://brosinski.com/stephan/archives/000028.php
JasperAssistant 报表插件(强,要钱的)
http://www.jasperassistant.com/
Jigloo GUI Builder JAVA的GUI编辑插件
http://cloudgarden.com/jigloo/
Profiler 性能跟踪、测量工具,能跟踪、测量BS程序
http://sourceforge.net/projects/eclipsecolorer/
AdvanQas 提供对if/else等条件语句的提示和快捷帮助(自动更改结构等)
http://eclipsecolorer.sourceforge.net/advanqas/index.html
Log4E Log4j插件,提供各种和Log4j相关的任务,如为方法、类添加一个logger等
http://log4e.jayefem.de/index.php/Main_Page
VSSPlugin VSS插件
http://sourceforge.net/projects/vssplugin
Implementors 提供跳转到一个方法的实现类,而不是接中的功能(实用!)
http://eclipse-tools.sourceforge.net/implementors/
Call Hierarchy 显示一个方法的调用层次(被哪些方法调,调了哪些方法)
http://eclipse-tools.sourceforge.net/call-hierarchy/index.html
EclipseTidy 检查和格式化HTML/XML文件
http://eclipsetidy.sourceforge.net/
Checkclipse 检查代码的风格、写法是否符合规范
http://www.mvmsoft.de/content/plugins/checkclipse/checkclipse.htm
Hibernate Synchronizer Hibernate插件,自动映射等
http://www.binamics.com/hibernatesync/
spring updatesite 插件
http://springide.org/updatesite/
VeloEclipse Velocity插件
http://propsorter.sourceforge.net/
EditorList 方便的列出所有打开的Editor
http://editorlist.sourceforge.net/
MemoryManager 内存占用率的监视
http://cloudgarden.com/memorymanager/
Eclipse的游戏插件
http://eclipse-games.sourceforge.net/
JBoss-IDE
http://jboss.sourceforge.net/jbosside/updates/
自动反编译class,安装后要设定class文件缺省关联到jode
http://www.technoetic.com/eclipse/update
jigloo swing/sw设计工具,里面自带的form/anchor布局很好用!
http://cloudgarden.soft-gems.net/update-site/
jinto的资源文件编辑工具,同时编辑多种语言,而且自动转换成iso8859-1编码。很好用!
http://www.guh-software.de/eclipse/