其實做站點開發(fā)的很少使用java的,像Apache等可以直接配置301跳轉(zhuǎn),可是tomcat只是一個servlet容器,沒辦法我只能使用過濾器來實現(xiàn)301跳轉(zhuǎn),下面把代碼分享給大家。
創(chuàng)新互聯(lián)公司服務(wù)項目包括龍馬潭網(wǎng)站建設(shè)、龍馬潭網(wǎng)站制作、龍馬潭網(wǎng)頁制作以及龍馬潭網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,龍馬潭網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到龍馬潭省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class URLFilter implements Filter {
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
final HttpServletRequest req = (HttpServletRequest) request;
final HttpServletResponse res=(HttpServletResponse)response;
String requestPage = req.getRequestURI();
String queryString = (req.getQueryString() == null ? "" : "?"+req.getQueryString());
if(req.getRequestURL().indexOf("") =0){
res.setStatus(301);
res.setHeader( "Location", ""+requestPage+queryString);
res.setHeader( "Connection", "close" );
}
chain.doFilter(request, response);
}
@Override
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
轉(zhuǎn)發(fā)和重定向的區(qū)別
重定向response.sendRedirect("success.jsp");
轉(zhuǎn)發(fā):request.getRequestDispatcher("success.jsp").forward(request,response);
1.轉(zhuǎn)發(fā)在服務(wù)器端完成的;重定向是在客戶端完成的
★2.轉(zhuǎn)發(fā)的速度快;重定向速度慢
3.轉(zhuǎn)發(fā)的是同一次請求;重定向是兩次不同請求
★4.轉(zhuǎn)發(fā)不會執(zhí)行轉(zhuǎn)發(fā)后的代碼;重定向會執(zhí)行重定向之后的代碼
★5.轉(zhuǎn)發(fā)地址欄沒有變化;重定向地址欄有變化
6.轉(zhuǎn)發(fā)必須是在同一臺服務(wù)器下完成;重定向可以在不同的服務(wù)器下完成
問題重復(fù)了?重定向前把PrintStream out = System.out;恢復(fù)的時候,在setOut(out);不要說不行,已經(jīng)測試過了。