• 締切済み

JSPでの記述

『基礎からのサーブレット/JSP』第3版のP185 <%@page contentType="text/html; charset=Windows-31J"%> <%@page import="reqattr.SampleBean"%> <HTML> <BODY> <H2>値をうけとるJSP</H2> <% SampleBean bean = (SampleBean)request.getAttribute("bean"); String message = bean.getMessage(); out.println(message); %> </BODY> </HTML> このスプリクトレット<% SampleBean bean =~~ %>の部分で SampleBean bean = (SampleBean)request.getAttribute("bean"); String message = bean.getMessage(); これらをJSPでの記述にすると どういう書き方になるのでしょうか? よろしくお願いします。

みんなの回答

  • root139
  • ベストアンサー率60% (488/809)
回答No.1

今日日、JSPでリクエスト属性等を扱うには、式言語 (EL, Express Language)を使うのが一般的かと。 式言語は ${ 式 } という形式で簡単な処理を記述できるものです。 <%= ((SampleBean) request.getAttribute("bean")).getMessage(); %> と同じことをするには↓になります。 ${bean.message} もしくは ${requestScope.bean.message} http://www.ne.jp/asahi/hishidama/home/tech/java/jsp/el.html http://www.javaroad.jp/opensource/js_taglibs3.htm ただし、上記の書き方では getMessage() の戻り値に何が含まれていてもそのまま書き出します。 もし Javascprit が含まれていればそれがブラウザ上で実行される事も起き得ますので、場合によっては脆弱性の原因ともなりえます。 getMessage() の戻り値の中のHTML特殊文字をエスケープして表示するにはJSTLのc:outを使うのが便利です。 例) <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <c:out value="${bean.message}" /> http://www.javaroad.jp/opensource/js_taglibs4.htm#out http://struts.wasureppoi.com/jstl/00_jstl.html

関連するQ&A