4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

JSP Redirect

Last updated at Posted at 2016-02-09

▪️リダイレクトの構文
response.sendRedirect("リダイレクト先のURL");
※リダイレクト先、ブラウザがリクエストできる先であればどこでも可。

ServletからServletへリダイレクト

▪️RedirectServlet.java リダイレクト 例

//リダイレクト
package servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/RedirectServlet")
public class RedirectServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// リダイレクト先を指定
		// response.sendRedirect("/Test02/Test02Servlet");
		response.sendRedirect("http://localhost:8080/Test02/Test02Servlet");
	}

}

▪️Test02Servlet.java

package servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.text.*;
import java.util.*;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import static java.lang.System.*;

//Test02ServletはURLパターン

@WebServlet("/Test02Servlet")
public class Test02Servlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public Test02Servlet() {
		super();
	}

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

		// 運勢をランダムで決定
		String[] luckArray = { "超スッキリ", "スッキリ", "最悪" };
		// 0以上3未満の整数を乱数で生成
		int index = (int) (Math.random() * 3);
		String luck = luckArray[index];

		// 占い②
		Random rnd = new Random();
		String[] fortune = { "凶", "吉", "大凶", "末吉" };
		int num = rnd.nextInt(fortune.length);

		// fortunee-telling③
		String[] fortune2 = { "ill(凶)", "good luck(吉)", "worst luck(大凶)", "uncertain luck(末吉)" };
		int index2 = (int) (Math.random() * 4);
		String luck2 = fortune2[index2];

		// 実行日を取得
		Date date = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
		String today = sdf.format(date);

		// HTMLを出力
		response.setContentType("text/html; charset=UTF-8");
		PrintWriter out = response.getWriter();
		out.println("<html>");
		out.println("<head>");
		out.println("<title>スッキリ占い</title>");
		out.println("</head>");
		out.println("<body>");
		out.println("<p>" + today + "の運勢は" + luck + "です</p>");
		out.println("<p></p>");
		out.println("<p>" + today + "の運勢は" + fortune[num] + "です</p>");
		out.println("<p>" + "today's fortune is&nbsp" + luck2 + "." + "</p>");
		// out.println("<img src='more1.gif'>");
		out.println("</body>");
		out.println("</html>");
		String name = "港";
		out.println(name + "は、かっこいい?");
		response.setContentType("text/html; charset=UTF-8");

		// response.setContentType("image/gif");
		response.setContentType("text/html; charset=UTF-8");
		// 実行結果のHTMLを出力する処理(サーブレットクラスでHTMLを出力する処理)
		PrintWriter out1 = response.getWriter();
		out1.println("<html>");
		out1.println("…");
		out1.println("</html>");
		// getWriter().append("Served at: ").append(request.getContextPath());
	}

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

}

スクリーンショット 2016-02-10 14.06.21.png

ServletからJSPへリダイレクト

JSPファイルがリダイレクト先の場合、
ブラウザからWEB-INFには通常リクエスト出来ないので
JSPファイルをWebContent直下に移動させる
※WEB-INFを右クリックしてリダイレクト先のJSPファイルを作らないで、
WebContentを右クリックしてリダイレクト先のJSPファイルを作る
▪️Test07Servlet.java

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/Test07Servlet")
public class Test07Servlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.sendRedirect("/Test07/Test07Jsp.jsp");
	}

}

▪️Test07Jsp.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset=UTF-8">
<title>リダイレクトテスト</title>
<h2>リダイレクトされたページです</h2>
</head>
<body>リダイレクト
</body>
</html>

▪️Test07Servlet.java 実行結果
スクリーンショット 2016-02-17 12.00.13.png

4
5
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?