Escapování výstupu. + Chybové stránky (ve web.xml).
authorFrantišek Kučera <franta-hg@frantovo.cz>
Fri, 08 Jan 2010 01:54:47 +0100
changeset 12fceba17855e9
parent 11 0412c4dd489d
child 13 626c57d1fc3b
Escapování výstupu. + Chybové stránky (ve web.xml).
java/nekurak.net-web/src/java/cz/frantovo/nekurak/dto/Podnik.java
java/nekurak.net-web/web/WEB-INF/chyby/404.jsp
java/nekurak.net-web/web/WEB-INF/chyby/500.jsp
java/nekurak.net-web/web/WEB-INF/chyby/nullPointer.jsp
java/nekurak.net-web/web/WEB-INF/web.xml
java/nekurak.net-web/web/escapovani.jsp
java/nekurak.net-web/web/skriptlet.jsp
     1.1 --- a/java/nekurak.net-web/src/java/cz/frantovo/nekurak/dto/Podnik.java	Wed Jan 06 20:54:40 2010 +0100
     1.2 +++ b/java/nekurak.net-web/src/java/cz/frantovo/nekurak/dto/Podnik.java	Fri Jan 08 01:54:47 2010 +0100
     1.3 @@ -1,10 +1,12 @@
     1.4  package cz.frantovo.nekurak.dto;
     1.5  
     1.6 +import java.io.Serializable;
     1.7 +
     1.8  /**
     1.9   *
    1.10   * @author fiki
    1.11   */
    1.12 -public class Podnik {
    1.13 +public class Podnik implements Serializable {
    1.14  
    1.15      private int id;
    1.16      private String nazev;
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/java/nekurak.net-web/web/WEB-INF/chyby/404.jsp	Fri Jan 08 01:54:47 2010 +0100
     2.3 @@ -0,0 +1,20 @@
     2.4 +<?xml version="1.0" encoding="UTF-8"?>
     2.5 +<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
     2.6 +	  xmlns:c="http://java.sun.com/jsp/jstl/core"
     2.7 +	  version="2.0">
     2.8 +    <jsp:directive.page contentType="application/xhtml+xml"/>
     2.9 +    <jsp:output doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
    2.10 +		doctype-root-element="html"
    2.11 +		omit-xml-declaration="false"/>
    2.12 +
    2.13 +    <html xmlns="http://www.w3.org/1999/xhtml">
    2.14 +	<head>
    2.15 +	    <title>404 Stránka nenalezena</title>
    2.16 +	</head>
    2.17 +	<body>
    2.18 +	    <h1>404 Stránka nenalezena</h1>
    2.19 +	    <p>Sem se hodí dát třeba vyhledávací políčko, odkaz na mapu webu atd.</p>
    2.20 +	</body>
    2.21 +    </html>
    2.22 +
    2.23 +</jsp:root>
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/java/nekurak.net-web/web/WEB-INF/chyby/500.jsp	Fri Jan 08 01:54:47 2010 +0100
     3.3 @@ -0,0 +1,22 @@
     3.4 +<?xml version="1.0" encoding="UTF-8"?>
     3.5 +<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
     3.6 +	  xmlns:c="http://java.sun.com/jsp/jstl/core"
     3.7 +	  version="2.0">
     3.8 +    <jsp:directive.page contentType="application/xhtml+xml"/>
     3.9 +    <jsp:output doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
    3.10 +		doctype-root-element="html"
    3.11 +		omit-xml-declaration="false"/>
    3.12 +
    3.13 +    <html xmlns="http://www.w3.org/1999/xhtml">
    3.14 +	<head>
    3.15 +	    <title>500 Interní chyba serveru</title>
    3.16 +	</head>
    3.17 +	<body>
    3.18 +	    <h1>500 Interní chyba serveru</h1>
    3.19 +	    <p>Tak to se nám něco pořádně nepovedlo.
    3.20 +		Mnozí se v takových případech uchylují ke lžím a řeknou uživateli,
    3.21 +		že probíhá údržba, ať přijde příště :-)</p>
    3.22 +	</body>
    3.23 +    </html>
    3.24 +
    3.25 +</jsp:root>
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/java/nekurak.net-web/web/WEB-INF/chyby/nullPointer.jsp	Fri Jan 08 01:54:47 2010 +0100
     4.3 @@ -0,0 +1,20 @@
     4.4 +<?xml version="1.0" encoding="UTF-8"?>
     4.5 +<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
     4.6 +	  xmlns:c="http://java.sun.com/jsp/jstl/core"
     4.7 +	  version="2.0">
     4.8 +    <jsp:directive.page contentType="application/xhtml+xml"/>
     4.9 +    <jsp:output doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
    4.10 +		doctype-root-element="html"
    4.11 +		omit-xml-declaration="false"/>
    4.12 +
    4.13 +    <html xmlns="http://www.w3.org/1999/xhtml">
    4.14 +	<head>
    4.15 +	    <title>500 Interní chyba serveru</title>
    4.16 +	</head>
    4.17 +	<body>
    4.18 +	    <h1>500 Interní chyba serveru</h1>
    4.19 +	    <p>Došlo k <code>NullPointerException</code>.</p>
    4.20 +	</body>
    4.21 +    </html>
    4.22 +
    4.23 +</jsp:root>
     5.1 --- a/java/nekurak.net-web/web/WEB-INF/web.xml	Wed Jan 06 20:54:40 2010 +0100
     5.2 +++ b/java/nekurak.net-web/web/WEB-INF/web.xml	Fri Jan 08 01:54:47 2010 +0100
     5.3 @@ -8,4 +8,19 @@
     5.4      <welcome-file-list>
     5.5  	<welcome-file>index.jsp</welcome-file>
     5.6      </welcome-file-list>
     5.7 +    <error-page>
     5.8 +	<!-- Stránka nenalezena -->
     5.9 +	<error-code>404</error-code>
    5.10 +	<location>/WEB-INF/chyby/404.jsp</location>
    5.11 +    </error-page>
    5.12 +    <error-page>
    5.13 +	<!-- Interní chyba serveru -->
    5.14 +	<error-code>500</error-code>
    5.15 +	<location>/WEB-INF/chyby/500.jsp</location>
    5.16 +    </error-page>
    5.17 +    <error-page>
    5.18 +	<!-- Můžeme nastavit i zvláštní chybové hlášky pro jednotlivé druhy chyb -->
    5.19 +	<exception-type>java.lang.NullPointerException</exception-type>
    5.20 +	<location>/WEB-INF/chyby/nullPointer.jsp</location>
    5.21 +    </error-page>
    5.22  </web-app>
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/java/nekurak.net-web/web/escapovani.jsp	Fri Jan 08 01:54:47 2010 +0100
     6.3 @@ -0,0 +1,45 @@
     6.4 +<?xml version="1.0" encoding="UTF-8"?>
     6.5 +<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
     6.6 +	  xmlns:c="http://java.sun.com/jsp/jstl/core"
     6.7 +	  xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
     6.8 +          xmlns:fn="http://java.sun.com/jsp/jstl/functions"
     6.9 +	  version="2.0">
    6.10 +    <jsp:directive.page contentType="application/xhtml+xml"/>
    6.11 +    <jsp:output doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
    6.12 +		doctype-root-element="html"
    6.13 +		omit-xml-declaration="false"/>
    6.14 +
    6.15 +
    6.16 +    <html xmlns="http://www.w3.org/1999/xhtml">
    6.17 +	<head>
    6.18 +	    <title>Escapování</title>
    6.19 +	</head>
    6.20 +	<body>
    6.21 +	    <h1>Escapování</h1>
    6.22 +	    <h2>Vstup</h2>
    6.23 +	    <!-- jednoduchý formulář na otestování uživatelského vstupu -->
    6.24 +	    <form action="escapovani.jsp" method="post">
    6.25 +		<fieldset>
    6.26 +		    <input name="parametr1" type="text"/>
    6.27 +		    <button>Odeslat!</button>
    6.28 +		</fieldset>
    6.29 +	    </form>
    6.30 +	    <h2>Výstup</h2>
    6.31 +	    <jsp:scriptlet>
    6.32 +		Integer x = null;
    6.33 +		x.toString();
    6.34 +	    </jsp:scriptlet>
    6.35 +	    <!-- vypíšeme si parametr zadaný uživatelem, ale ošetříme ho,
    6.36 +	    aby nám nezbořil naši pěknou XHTML stránku -->
    6.37 +	    <p><c:out value="${param.parametr1}" escapeXml="true"/></p>
    6.38 +	    <!-- escapeXml="true" nemusíme psát – to je výchozí hodnota -->
    6.39 +
    6.40 +	    <p>Když potřebujeme dát
    6.41 +		<abbr title="${fn:escapeXml(param.parametr1)}">„escapovaný“</abbr>
    6.42 +		text do atributu, použijeme funkci <code>escapeXml()</code> ze jmenného prostoru:</p>
    6.43 +	    <pre>xmlns:fn="http://java.sun.com/jsp/jstl/functions"</pre>
    6.44 +
    6.45 +	</body>
    6.46 +    </html>
    6.47 +
    6.48 +</jsp:root>
     7.1 --- a/java/nekurak.net-web/web/skriptlet.jsp	Wed Jan 06 20:54:40 2010 +0100
     7.2 +++ b/java/nekurak.net-web/web/skriptlet.jsp	Fri Jan 08 01:54:47 2010 +0100
     7.3 @@ -21,7 +21,7 @@
     7.4  		<!-- leda výjimečně -->
     7.5  	    </p>
     7.6  
     7.7 -
     7.8 +	    
     7.9  	</body>
    7.10      </html>
    7.11