JSP/Servlet | JSTL(JSP Standard Tag Library) | <c:url>, <c:redirect>

URL出力 <c:url>

<c:url>タグはURLを作成する。URLをエンコードしたり、contextを自動的に追加してアドレスを生成したりできる。

context属性が指定された場合、valueとcontextの値は/で始まる必要がある。context属性を省略すると、現在のコンテキストが適用される。

文法

<c:url value="value" [context="context"] [var="varName"] [scope="{page|request|session|application}"]/>

属性

項目 説明 必須 デフォルト
url 基本URL 必須
context / の後に来るローカルアプリケーション名 現在のアプリケーション
var 処理されたURLを格納する変数名 表示されるページ
scope 処理されたURL変数を公開するスコープ page

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
  <head>
  <title>Tag Example</title>
</head>
<body>
  <a href="<c:url value='/hello.jsp?name=デブクマ'/>">cookie.jsp</a><br><br>
  <a href="<c:url value='/' />">Context Root(/)</a>
</body>
</html>

下のリンクタグをクリックすると、http://localhost:8080/hello.jspへ移動する。

<a href="<c:url value='/hello.jsp?name=デブ クマ'/>">cookie.jsp</a><br><br>

<c:url>が作成するURLはhttp://localhost:8080/web/jsp/hello.jspであり、name変数の「デブ クマ」値に空白があるため、これは%20としてURLエンコードされて渡される。

下のリンクタグをクリックすると、http://localhost:8080/web/へ移動する。

<a href="<c:url value='/'/>">Context Root(/)</a>

リダイレクト <c:redirect>

属性

項目 説明 必須 デフォルト
url ユーザーのブラウザーでリダイレクトするURL 必須
context / の後に来るローカルWebアプリケーション名

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
   <head>
      <title><c:redirect> Tag Example</title>
   </head>

   <body>
      <c:redirect url="http://www.devkuma.com"/>
   </body>
</html>

http://www.devkuma.comへ移動する。