JSP Tomcat /export/local/tomcat4.1/webapps/myapp % ls -Rd jsp/ servlet/ WEB-INF/ WEB-INF/classes/ WEB-INF/lib/ JSP <%-- --%> <%! %> / <% %> Java ex01.jsp <%@ page %> <%! String message = Hello, JSP ; %> <html> <body> <p> <% out.println(message); %> </p> </body> </html>
myapp/jsp/ex01.jsp http://localhost:8080/myapp/jsp/ex01.jsp $CATALINA_HOME/work/Standalone/localhost/myapp/jsp (; ) 1 1. ex01.jsp 2 ; 2. () 3. <%! %> <% %>
JSP (1) ( ) request : HTTP response : HTTP page : session : application: out : response, JSP pagecontext: confi : (1) ( ) import <%@ page import = java.util.* %> <%! Date d = new Date(); %> <html> <body> <p> Today is <%out.println(d); %>. </p> </body> </html> ex02.jsp
2 ex02.jsp import ex02.jsp 2 ( ) Date is Mon Feb 02 2004. Time is 12:34:56. ( : java.text.dateformat ) (2) String request.getrequesturi() : URI String request.getservername() : String request.getservletport() : String request.getcontexttype() : MIME <%= %> <% out.print( ) %> ex03.jsp( ) <p> URI is <%= request.getrequesturi() %><br> ServerName is <%= request.getservername() %><br> </p>
3 ex03.jsp (getremoteaddr) (getremoteuser) (getlocale, getcharacterencoding) localhost (3) response.flushbuffer() : (out.flush() ) response.setcontexttype(string) : MIME response.setlocale(locale) : ( ) response.setcharaterencoding(string) : ( ) ex04.jsp( ) <% response.setlocale(new Locale( ja )); response.setcontenttype( text/html; charset=euc ); %>
(4) String session.getid() : ID boolean session.isnew() : false Object session.getattribute(string) : Enumuration session.getattributenames(): void session.setattribute(string, Object): void session.removeattribute(string): 30 WEB-INF/web.xml (0!) <session-config> <session-timeout>10</session-timeout> </session-config> 4 ex05.jsp setattribute/removeattribute session.invalidate()
form URL (?name=val&...) getparameter session ex06.jsp( ) <% String name = request.getparameter( name ); String pass = request.getparameter( pass ); session.setattribute( name, name); session.setattribute( pass, encode(pass,key)); %> if/else, while, for Java jsp:forward jsp:include jsp:param
5 (ex06)/ (ex07) ex08.jsp ex08.jsp( ) <form action= ex08.jsp > Username:<input name= nm type= text ><br> Password:<input name= pw type= password ><br> <input type= submit value= login > </form> <jsp:??? page= ex06.jsp > <jsp:??? /> <jsp:??? /> Bean Bean JSP Bean set JSP get jsp:usebean jsp:setproperty jsp:getproperty Bean, : Bean
6 ex09.jsp loginbean.java login getproperty? <%@ page errorpage= errorpage.jsp %> exception errorpage.jsp ( ) <%@ page iserrorpage= true %> <html> <body> <h2>error Page</h2> <%= exception.tostring() %> occurred.<br>
7 ex09.jsp/loginbean.java Bean session session =cookie / Cookie[] request.getcookies() : Cookie void response.addcookie(cookie) : Cookie String cookie.getname() : Cookie String cookie.getvalue() : Cookie void cookie.setmaxage(int) : Cookie ( ) 0
( ) Cookie ex10.jsp( ) <% page import= java.util.* %> <%! String getdefault(cookie[] ck, String key) { if (ck == null) return ; for (int i=0;i<ck.length;i++) { if (ck[i].getname().equals(key)) return ck[i].getvalue(); } return ; %>... <%= getdefault(request.getcookies(), cookiename) %> ( ) Cookie <%! Cookie c; %> <% if (request.getparameter( nm )!= null) { c = new Cookie(cookieName, request.getparameter( nm )); c.setmaxage(3600); } else { c = new Cookie(cookieName, ); c.setmaxage(0); } response.addcookie(c); %> ex10.jsp( )
8 ex10.jsp (ex09.jsp ) save save ex10.jsp HTML Java core: fmt: xml: XML sql: DB session.jsp( ) <% page taglib= http://java.sun.com/jstl/core prefix= c %>... <c:set var= username scope= session value= Suzuki />
Core: <c:set var= scope= value= /> : page( ), request, session, application <c:out value= /> ${. } : pagescope( ), requestscope... param, paramvalues param. request.getparameter( ) paramvalues.[ ] request.getparametervalues( ) Core: Java <c:if test= > </c:if> : if (else ) <c:choose> : switch <c:when test= 1 > 1</c:when> <c:otherwise> n</c:otherwise> </c:choose> <c:foreach var= : for begin= end= step= > </c:foreach> <c:redirect url= /> : ( ) <c:redirect url= > <c:param name= value= > </c:redirect>
9 ex11.jsp ex06.jsp session.jsp page request fmt: <fmt:setlocale value= scope= /> : ( : ja_jp) <fmt:setbundle basename= var= /> _.properties <fmt:message key= bundle= /> username= password= UTF-8
fmt: ( ) Resources_ja.txt username= password= EUC* % native2ascii Resources_ja.txt > Resources_ja.properties Resources_ja.properties username= uxxxx uxxxx... password= uxxxx uxxxx... UTF-8 /myapp/web-inf/classes (*Windows Shift-JIS[MS932]) fmt: ( ) ex12.jsp( ) <%@ page contenttype= text/html; charset=euc-jp %> <fmt:setlocale value= ja /> <fmt:setbundle basename= Resources var= context /> <table><tr><td> <fmt:message key= username bundle= ${context} /> </td><td>... </td></tr><tr><td> <fmt:message key= password bundle= ${context} /> </td><td>... </td></tr> </table>
10 ex12.jsp ex12.jsp title.top= title.error= label.username= label.password= button.login= label.error= fmt: ( ) <fmt:formatdate value= type= /> : java.util.date : time, date, both <fmt:formatnumber value= type= /> : number, currency, percent pattern= ###0.0# yy/mm/dd HH:mm:ss : ( ) : ( ) <fmt:formatnumber type=... > </fmt:formatnumber>
fmt: ( ) Resources_ja.txt filenotfound= {0} Resources_en.txt filenotfound={0} : No such file. Resources_fr.txt filenotfound=aucun fichier {0}. ex13.jsp( ) <fmt:setlocale value= ja /> <fmt:setbundle var= context basename=... />... <fmt:message key= filenotfound > <fmt:param value= error.jsp /> </fmt:message> 11 ex13.jsp Locale ja en, fr Locale de? ( Keine Acte gefunden werden)