很多网站都有一些比较个性的域名访问方式,如:http://www.xxx.com/u/pp 点开就可以看到pp的个人主页了,这种地址比较容易让人记住,那今天就来讲讲这种技术的实现方式。
1.使用java作为开发语言,实现这种地址重写,需要你引入一个jar包:urlrewrite-3.1.0.jar
2.然后就是做个性化的地址配置了,这里创建了urlrewrite.xml,我把它放在WEB-INF目录下,代码如下:
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.1//EN" "http://tuckey.org/res/dtds/urlrewrite3.1.dtd"> <urlrewrite> <rule> <from>^/u/([a-zA-Z0-9]*)$</from> <to type="forward">/blog/toHome.do?xxx=$1</to> </rule> <rule> //还可以配置很多,带参数或者不带都可以 </rule> </urlrewrite>
3.接着就是要在web.xml加载我们的urlrewrite.xml文件了,代码如下:
<!-- url rewrite filter --> <filter> <filter-name>UrlRewriteFilter</filter-name> <filter-class> org.tuckey.web.filters.urlrewrite.UrlRewriteFilter </filter-class> <init-param> <param-name>confPath</param-name> <param-value>/WEB-INF/urlrewrite.xml</param-value> </init-param> </filter> <filter-mapping> <filter-name>UrlRewriteFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
4.如果是不带参数的呢,直接在浏览器上输入别名访问,后台会自动跳转到指定的页面。
4.如果是带参数的,个性的域名地址呢,这里也给出一个方法,后台接到请求后处理,代码如下:
// 地址栏输入别名处理 @RequestMapping(value = { "/toHome" }, method = { RequestMethod.GET }) public String toHome(Member model, HttpServletRequest req, ModelMap modelMap) { //根据别名查询 Map<String, Object> maps = new HashMap<String, Object>(); maps.put("xxx", model.getXXX()); List<Object> list = memberService.selectAll(maps); if (list != null && list.size() > 0) { //加载数据,跳转 return "home/page"; } else { return "404"; } }
5.最后,我们就可以在浏览器上输入:http://www.xxx.com/u/pp来看效果了。