《转》java URL重写

本文详细介绍了URL重写的概念、实现方法及应用案例。通过使用UrlRewriteFilter和urlrewrite.xml配置文件,展示了如何重写URL路径,包括重定向和参数替换,并提供了实践示例。


文章来源:http://www.it300.com/article-5319.html
 现在url重写技术用的越来越广泛了,很高兴今天和各位网友分享一下:

     首先我们要从网上下一个UrlReWriter   jar包 现在地址进不了,我这里有一个3.0版本的,文章底有下载地址,大家可以去下载

     引用jar包后,我们需要配制web.xml配制文件,配制如下:

    

<filter>  
  <filter-name>UrlRewriteFilter</filter-name>  
  <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>  
 </filter>  
 <filter-mapping>  
  <filter-name>UrlRewriteFilter</filter-name>  
  <url-pattern>/*</url-pattern>  
  <dispatcher>REQUEST</dispatcher>  
  <dispatcher>FORWARD</dispatcher>  
</filter-mapping>

新建一个urlrewrite.xml文件

 

 

01<?xml version="1.0" encoding="utf-8"?>
02<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN""http://tuckey.org/res/dtds/urlrewrite3.0.dtd">
03<urlrewrite>
04   <rule>
05   <from>/test.html</from>
06   <to type="redirect">%{context-path}/page.html</to>
07   </rule>
08   <rule>
09       <from>/name/(.*)</from>
10       <to>/MyName.jsp?name=$1</to>
11   </rule>
12</urlrewrite>

我们再新建test.html

 

 

 
  <html>
  <body>
     test.html
  </body>
</html>

新建 page.html

  <html>
  <body>
    page.html
  </body>
</html>

新建MyName.jsp

 

 

 <%@ page language="java" contentType="text/html; charset=UTF-8"  %>
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 </head>
  <body>
    我的姓名是:<%=request.getParameter("name")%>
 </body>
 </html>

 

我们实现的效果是输入http://localhost:8080/MyUrl/name/chenjie 达到效果http://localhost:8080/MyUrl/MyName.jsp?name=chenjie

输入http://localhost:8080/MyUrl/test.html 跳转到http://localhost:8080/MyUrl/page.html

URL重写我们最重要是正则表达式的写法,我们随便也介绍一下正则的用法

 


 package com.testMatch;  import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 public class MyMatch {
      public static void main(String[] args) {
         /**  方法一
           //创建pattern对象,加载正则表达式         
     Pattern p=Pattern.compile("^t.*java");

         //将需要的匹配的字符串加载到Matcher对象、
          Matcher m=p.matcher("think in java");           
     boolean b=m.matches();
          
     System.out.println(b);

         **/          
         //".代表一任意一个字符"

         //"^"1.在字符串中代表开始  2.在[]代表取反           
         //"$"表示结尾

         //"|"表示或者,^[a|b]表示以a或b开头^[1][358]           
         //"[]"表示选择,匹配手机号码:^[1][358][0-9]{9}

         //"*"表示前面的字符可以出现0次,1次,或多次           
         //"+"表示前面的字符至少出现一次或多次

         //"?"表示前面的字符可以出现0或1次           
         //"{}"允许前面的字符可以出现多少次
          
    boolean b=Pattern.matches("^t.*java","think in java");
     
}

 }  

转载于:https://www.cnblogs.com/xiaoliu66007/archive/2013/04/16/3023592.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值