当前位置: 网学 > 网学资源大全 > 计算机 > 正文

jsp网站永久换域名的处理过程

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: admin 发布时间: 13/09/05
【网学提醒】:本文主要为网上学习者提供jsp网站永久换域名的处理过程,希望对需要jsp网站永久换域名的处理过程网友有所帮助,学习一下吧!

  1、在tomcat下针对旧域名做个虚拟主机

  首页为index.jsp ,404错误页面为 unfind.jsp

  首页使用301转向,有利于 搜索引擎优化

  <%

  response.setStatus(301);

  response.setHeader( "Location","http://***.com");

  response.setHeader( "Connection", "close");

  %>

  unfind.jsp 判断旧页面应该转向的新页面地址,没有则跳到新的页面,这样以前的外链就不受影响了

  <%@ page language="java" c isErrorPage="true" pageEncoding="utf-8"%>

  <%

  response.setStatus(HttpServletResponse.SC_OK);

  String key = (String) request.getAttribute("javax.servlet.forward.servlet_path");

  String id= request.getParameter("id");

  if (key != null ) {

  int index = key.lastIndexOf("/");

  if (index != -1) {

  key = key.substring(index + 1);

  if (key.startsWith("v")) {

  response.sendRedirect("http://***.com/viewtv/"+ id);

  }

  if (key.startsWith("t")) {

  response.sendRedirect("http://***.com/tv/"+ id);

  }

  }

  }

  response.sendRedirect("http://***.com");

  %>

  参考文章

  转帖自http://blog.csdn.net/lifaming15/archive/2008/10/16/3084282.aspx

  URL重写,其实就是把带一大堆参数的url,变成一个看上去很规矩的url,主要目的是为了搜索引擎。

  举例

  /viewthread.jsp?id=1234

  /viewthread.jsp?id=1235

  /viewthread.jsp?id=1236

  重写后,可以用

  /viewthread/1234.htm

  /viewthread/1235.htm

  /viewthread/1236.htm

  我目前使用Tomcat+Apache,尝试过三种重写的方法

  一、Tomcat的过滤器

  最典型的就是用urlReweite的类库。如果有经验,自己写也不是很麻烦。也可以用现成的开源的免费的urlrewrite filter. http://tuckey.org/urlrewrite/下载

  修改web.xml增加过滤器,然后配置个过滤的规则就可以了

  web.xml修改部分

  <!-- Set URL Rewrite-->

  <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>

  </filter-mapping>

  过滤规则

  <?xml version="1.0" encoding="utf-8"?>

  <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN"

  "http://tuckey.org/res/dtds/urlrewrite2.6.dtd">

  <urlrewrite>

  <rule>

  <from>/viewthread/(\d+).htmcontentlt;/from>

  <to>/viewthread.jsp?id=$1</to>

  </rule>

  </urlrewrite>

  二、使用Apache的mod

  # 去掉这个前面的#,启用它

  LoadModule rewrite_module modules/mod_rewrite.so

  <VirtualHost _default_:80>

  # 其它的配置数据

  RewriteEngine On

  # 下面三行实现动态解析

  RewriteRule ^/viewthread/(\d+).htm$ /viewthread.jsp?id=$1 [L,PT]

  </VirtualHost>

  三、使用系统的404错误进行

  也就是页面没找到的错误

  实例:

  http://www.xxx.net/f29

  会被自动转发到

  http://www.xxx.net/forumdisplay.jsp?fid=29

  因为系统并不存在f29,所以使用了404的错误处理页面来实现这个功能

  页面代码如下

  查看复制到剪切板打印

  <%@ page language="java" c isErrorPage="true" pageEncoding="GBK"%>

  <%

  response.setStatus(HttpServletResponse.SC_OK);

  String key = (String) request.getAttribute("javax.servlet.forward.servlet_path");

  if (key != null) {

  int index = key.lastIndexOf("/");

  if (index != -1) {

  key = key.substring(index + 1);

  if (key.startsWith("f") || key.startsWith("p")) {

  try {

  long id = Long.parseLong(key.substring(1));

  String url = key.startsWith("f") ? "forumdisplay.jsp?fid=" : "viewthread.jsp?tid=";

  %>

  <jsp:forward page="<%=url+id%>"></jsp:forward>

  <%

  return;

  } catch (Exception ex) {}

  }

  %>

  <jsp:forward page="<%=response.encodeURL("search.jsp")%>"><jsp:param name="keyword" value="<%=key %>" /></jsp:forward>

  <%

  return;

  }

  }

  %>

  对不起,您请求的页面没有找到!

  总结

  第一种修改麻烦,但对于平稳运行的系统,是个不错的选择

  第二种需要配置Apache,但 Apache的重启速度很快,适合于有可能经常变得情况,而且Apache Mod的效率还是不错的

  第三种最灵活,一般简单的应用可以用这个。

 

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号