關於jsp和servlet中實現頁面跳轉的幾種方式總結

來源:互聯網
上載者:User

 關於jsp和servlet中實現頁面跳轉的幾種方式:

假設要求從test1.jsp 跳轉到test2.jsp

一. jsp中跳轉:

1. 使用RequestDispatcher.forward方法轉寄

<%
 RequestDispatcher rd = getServletContext().getRequestDispatcher("/test/test2.jsp");

 rd.forward(request, response);
%>

2. response.sendRedirect 重新導向

<%
   response.sendRedirect("test2.jsp");
%>

3.  使用forward標籤

   <jsp:forward page="test2.jsp"/>

4. html標記中的meta標記

   <meta http-equiv="refresh" content="0; url=test2.jsp">

5. 使用response.setHeader

<%
int stayTime=0;
String URL="test2.jsp";
String content=stayTime+";URL="+URL;
response.setHeader("REFRESH",content);
%>

6.   使用response.setHeader和response.setStatus 發送重新導向請求

 <%
  response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
  String newLocation = "test2.jsp";
  response.setHeader("Location",newLocation);
 %>

7. 使用javascript指令碼

<script type="text/javascript">
window.location.href="test2.jsp";
</script>

二. servlet中跳轉:

 假設 從 servlet中跳轉到test2.jsp

1. forward

  ServletContext sc = getServletContext();
  RequestDispatcher rd = sc.getRequestDispatcher("/test/test2.jsp"); //定向的頁面
  rd.forward(request, response);

 

public class ForwardServlet extends HttpServlet {

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

  String id = request.getParameter("id");
  response.setContentType("text/html; charset=gb2312");
  ServletContext sc = getServletContext();
  RequestDispatcher rd = sc.getRequestDispatcher("/test/test2.jsp"); //定向的頁面
  rd.forward(request, response);
 }

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

}

 

2. sendRedirect

 

package com.yanek.test;

import java.io.IOException;

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

public class RedirectServlet extends HttpServlet {

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

  String id = request.getParameter("id");
  response.setContentType("text/html; charset=gb2312");
  response.sendRedirect("test/test2.jsp");
 }

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

}

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.