1. 程式人生 > >通過response實現重定向(四)

通過response實現重定向(四)

1. 重定向:瀏覽器向伺服器傳送請求,伺服器給它響應302狀態碼,並返回Location值,瀏覽器得到location值後,向ocation值重新發送請求。

2. 伺服器端要做兩件事:

    1)狀態碼 要是 302

    2)響應頭  location 要指定。響應頭name是不區分大小寫,value獲取的值。一個name可以對應多個value。

package com.it.servlet.response;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Demo1Servlet extends HttpServlet {

	
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//設定狀態碼為302
		response.setStatus(302);
		//設定響應頭location的值
		//response.setHeader("location", "http://www.baidu.com");
		//response.setHeader("location", "index.jsp");
		response.setHeader("location", "/day8_1/index.jsp");
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
	}

}

重定向時,既可以訪問站內資源,也可以訪問站外資源。

在真實開發中完成重定向只要response.sendRedirect(String location)方法。

package com.it.servlet.response;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Demo1Servlet extends HttpServlet {

	
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//在真實開發中要想完成重定向只需要sendRedirect
		response.sendRedirect("/day8_1/index.jsp");
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
	}

}