java url 重写_用Url Rewrite Filter重写url

package com.capinfo.servlet;

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

import com.capinfo.util.PageConstraint;

import com.capinfo.util.PigBlogUtil;

import javax.servlet.ServletConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

/**

*

* @author Administrator

*

*/

public class PigBlogServlet extends HttpServlet {

protected Log _logger = LogFactory.getLog(PigBlogServlet.class);

/**

* Initialize

*

* @param servletConfig {@link ServletConfig}

* @throws ServletException If there is an error initializing

*/

public void init(ServletConfig servletConfig) throws ServletException {

super.init(servletConfig);

}

/**

* Handle requests made to

*

* @param httpServletRequest {@link HttpServletRequest} request

* @param httpServletResponse {@link HttpServletResponse} response

* @throws ServletException If there is an error serving the request

* @throws IOException If there is an error serving the request

*/

protected void service(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {

// Make sure that we have a request URI ending with a / otherwise we need to

// redirect so that the browser can handle relative link generation

// if (!httpServletRequest.getRequestURI().endsWith("/")) {

// StringBuffer redirectURL = new StringBuffer();

// redirectURL.append(httpServletRequest.getRequestURI());

// redirectURL.append("/");

// if (httpServletRequest.getParameterMap().size() > 0) {

// redirectURL.append("?");

// redirectURL.append(PigBlogUtil.convertRequestParams(httpServletRequest));

// }

//

// if (_logger.isDebugEnabled()) {

// _logger.debug("Redirecting the user to: " + redirectURL.toString());

// }

//

// httpServletResponse.sendRedirect(redirectURL.toString());

//

// return;

// }

// Check for an overriding id

String blogId = httpServletRequest.getParameter(PageConstraint.GO);

if (PigBlogUtil.checkNullOrBlank(blogId)) {

String blogIdFromPath = PigBlogUtil.getBlogFromPath(httpServletRequest.getPathInfo());

if (blogIdFromPath == null) {

blogId = PageConstraint.GO1;

} else {

blogId = blogIdFromPath;

}

}

if (PigBlogUtil.checkNullOrBlank(blogId)) {

httpServletResponse.sendError(HttpServletResponse.SC_NOT_FOUND, "Blog ID not specified");

return;

}

StringBuffer redirectURL = new StringBuffer();

//redirectURL.append(httpServletRequest.getContextPath());

System.out.println(httpServletRequest.getRequestURI());

if(httpServletRequest.getRequestURI().indexOf("/blog/") > -1 && httpServletRequest.getRequestURI().indexOf(".jsp") == -1 ){

if(!httpServletRequest.getRequestURI().endsWith("/") && httpServletRequest.getRequestURI().indexOf(".do") > -1){

redirectURL.append(httpServletRequest.getRequestURI().substring(httpServletRequest.getRequestURI().lastIndexOf("/"), httpServletRequest.getRequestURI().length()));

}else if(httpServletRequest.getRequestURI().indexOf("/blog/") == -1){

}else{

redirectURL.append("/blogView.do");

}

redirectURL.append("?go=");

redirectURL.append(blogId);

httpServletRequest.getRequestDispatcher(redirectURL.toString())

.forward((ServletRequest)httpServletRequest, (ServletResponse)httpServletResponse);

//httpServletResponse.sendRedirect(redirectURL.toString());

}else{

httpServletRequest.getRequestDispatcher(httpServletRequest.getRequestURI())

.forward((ServletRequest)httpServletRequest, (ServletResponse)httpServletResponse);

//httpServletResponse.sendRedirect(httpServletRequest.getRequestURI());

}

System.out.println(redirectURL.toString());

return;

}

/**

* Take out of service

*/

public void destroy() {

super.destroy();

if (_logger.isDebugEnabled()) {

_logger.debug(" destroyed");

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值