在Java web服务器内使用url rewrite
每个网页或请求都是一个url地址,一般,这个地址可能是.do,.page,.action之类的并加上'?'号、'&'号查询串等构成的一个长长的的url。很urgly。
一般的url----------------------------------------------------------较好的url
http://www.xxx.net/user/profile.do?id=20001 ====> http://www.xxx.net/user/20001
http://www.xxx.net/forum/board.do?name=java ====> http://www.xxx.net/forum/java
http://www.xxx.net/forum/thread.do?id=29923 ====> http://www.xxx.net/thread/29923
后者明显较为直观和漂亮。
使用url rewrite可以很好的改善这个状况。网站url rewrite应用是非常广泛的,良好的url设计给用户带来的非常好的体验,同时也能吸引搜索引擎的注意。
一种rewrite称为一个规则,上面的例子就是3个规则。rewrite技术可以在代理服务器实现,或者可以在tomcat之类的java web服务器实现。 Apache HTTP Server 2.x 和 mod_proxy提供了不错的Rewrite处理方法。so如果使用apache,则直接在apache中配置Rewrite即可。但是对于没有使用代理,或者不完全要在代理服务器配置Rewrite的web应用,通过第三方Jar包也是可以实现很perfect的rewrite技术的。这是本帖的着重点。
这个第三方包的地址是:http://tuckey.org/urlrewrite/ (待会再去这个网站,现在先别去)
这个包使用正则表达式仿照了apache rewrite的做法。而实现原理也是很明晰的:filter,forward,redirect机制组合:
在web.xml配置一个UrlRewriteFilter,拦截所有进来的请求,对服务要求的请求进行rewrite。比如,对http://www.xxx.net/user/([0-9]+)请求,forward到/profile.do?id=$1。这就是一条规则。在这个第三方包中的规则文件urlrewrite.xml中可以这样定义:
Java代码
<rule>
<from>^/user/([0-9]+)/?$</from>
<to type="forward">/profile.do?id=$1</to>
</rule>
<rule>
<from>^/user/([0-9]+)/?$</from>
<to type="forward">/profile.do?id=$1</to>
</rule>
对我来说,一般我会配置一个通用的rule,使所有没有包含"."的url forward到.do的action上来(本人使用strut做系统较多)
Java代码
<r
相关文档:
首先,建3个接口
FTPOperate.java:
public interface FTPOperate
{
public void execute(FTPBean entity);
}
FTPProxy.java:
public interface FTPProxy
{
public void connection();
public abstract void upload();
public abstract void download();
public void setEntity(FTPBe ......
public class Multiplication
{
public static void main(String[] args)
{
// TODO Auto-generated method stub
for(int i = 1; i < 10; i+ ......
(
1
)
+=
:sum += 1;
相当于
sum = sum + 1;
(
2
)
++ --
:i++ i
加
1, i-- i
减
1, ++
或
—
放在数值后,表示执行运算后加(减)
1
,反正数值前表示执行运算前加(减)
1
(
3
)
?
: :
int n = a<10?1:2
表示如果
a
小于
10
则
n
等于
1
否则等于
2
(
4
......
1 import
2 package
3 修饰符
4 抽象类 接口
5 static
6 String相关
7 javadoc
8 异常
9 日期相关
10 输入输出流
11
一 import
import用于导入不同包中的类,不同包中的类名可以相同。
用*号只能导入一个包,不能使用 import java.* 或者 java.*. ......
JEditorPane提供三种类型的文本显示,text/plain,text/html,text/rtf.
JEditorPane的简单用法DEMO如下:
package ibees.swing;
import java.awt.Toolkit;
import java.io.IOException;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.event.Hype ......