Základ servletu pro zobrazování detailu podniku.
authorFrantišek Kučera <franta-hg@frantovo.cz>
Tue, 25 Jan 2011 22:03:46 +0100
changeset 177d874e9e3e162
parent 176 2472d9e9c0aa
child 178 afee4e663992
Základ servletu pro zobrazování detailu podniku.
java/nekurak.net-web/src/java/cz/frantovo/nekurak/servlet/Podnik.java
java/nekurak.net-web/src/java/cz/frantovo/nekurak/servlet/SuperServlet.java
java/nekurak.net-web/web/WEB-INF/web.xml
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/java/nekurak.net-web/src/java/cz/frantovo/nekurak/servlet/Podnik.java	Tue Jan 25 22:03:46 2011 +0100
     1.3 @@ -0,0 +1,34 @@
     1.4 +package cz.frantovo.nekurak.servlet;
     1.5 +
     1.6 +import java.io.IOException;
     1.7 +import javax.servlet.ServletException;
     1.8 +import javax.servlet.http.HttpServletRequest;
     1.9 +import javax.servlet.http.HttpServletResponse;
    1.10 +
    1.11 +/**
    1.12 + *
    1.13 + * @author fiki
    1.14 + */
    1.15 +public class Podnik extends SuperServlet {
    1.16 +
    1.17 +	@Override
    1.18 +	protected void doGet(HttpServletRequest požadavek, HttpServletResponse odpověď) throws ServletException, IOException {
    1.19 +		super.doGet(požadavek, odpověď);
    1.20 +
    1.21 +		String[] parametryCesty = (požadavek.getPathInfo().split("/"));
    1.22 +		int id = Integer.parseInt(parametryCesty[1]);
    1.23 +		
    1.24 +		odpověď.getOutputStream().println("URL: " + požadavek.getRequestURL());
    1.25 +		odpověď.getOutputStream().println("ContextPath: " + požadavek.getContextPath());
    1.26 +		odpověď.getOutputStream().println("PathInfo: " + požadavek.getPathInfo());
    1.27 +		odpověď.getOutputStream().println("PathTranslated: " + požadavek.getPathTranslated());
    1.28 +		odpověď.getOutputStream().println("QueryString: " + požadavek.getQueryString());
    1.29 +		odpověď.getOutputStream().println("RequestURI: " + požadavek.getRequestURI());
    1.30 +		odpověď.getOutputStream().println("Scheme: " + požadavek.getScheme());
    1.31 +		odpověď.getOutputStream().println("ServletPath: " + požadavek.getServletPath());
    1.32 +		odpověď.getOutputStream().println("ID podniku: " + id);
    1.33 +		odpověď.getOutputStream().println("počet parametrů: " + parametryCesty.length);
    1.34 +		odpověď.getOutputStream().println("parametr 0: " + parametryCesty[0]);
    1.35 +		odpověď.getOutputStream().println("parametr 1: " + parametryCesty[1]);
    1.36 +	}
    1.37 +}
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/java/nekurak.net-web/src/java/cz/frantovo/nekurak/servlet/SuperServlet.java	Tue Jan 25 22:03:46 2011 +0100
     2.3 @@ -0,0 +1,40 @@
     2.4 +package cz.frantovo.nekurak.servlet;
     2.5 +
     2.6 +import java.io.IOException;
     2.7 +import java.util.Locale;
     2.8 +import javax.servlet.ServletException;
     2.9 +import javax.servlet.http.HttpServlet;
    2.10 +import javax.servlet.http.HttpServletRequest;
    2.11 +import javax.servlet.http.HttpServletResponse;
    2.12 +
    2.13 +/**
    2.14 + *
    2.15 + * @author fiki
    2.16 + */
    2.17 +public class SuperServlet extends HttpServlet {
    2.18 +
    2.19 +	public static final String PARAMETR_JAZYK = "jazyk";
    2.20 +	private static final String ATRIBUT_JAZYK = "javax.servlet.jsp.jstl.fmt.locale.session";
    2.21 +
    2.22 +	@Override
    2.23 +	protected void doGet(HttpServletRequest požadavek, HttpServletResponse odpověď) throws ServletException, IOException {
    2.24 +		společné(požadavek, odpověď);
    2.25 +	}
    2.26 +
    2.27 +	/**
    2.28 +	 * Společné činnosti, které děláme pro všechny HTTP metody (GET, POST atd.)
    2.29 +	 */
    2.30 +	private void společné(HttpServletRequest požadavek, HttpServletResponse odpověď) throws ServletException, IOException {
    2.31 +		nastavJazyk(požadavek);
    2.32 +	}
    2.33 +
    2.34 +	/**
    2.35 +	 * Pokud se chce uživatel ručně přepnout na jiný jazyk, než jaký posílá jeho prohlížeč.
    2.36 +	 */
    2.37 +	private void nastavJazyk(HttpServletRequest požadavek) {
    2.38 +		String jazyk = požadavek.getParameter(PARAMETR_JAZYK);
    2.39 +		if (jazyk != null) {
    2.40 +			požadavek.getSession().setAttribute(ATRIBUT_JAZYK, new Locale(jazyk));
    2.41 +		}
    2.42 +	}
    2.43 +}
     3.1 --- a/java/nekurak.net-web/web/WEB-INF/web.xml	Tue Jan 25 20:28:32 2011 +0100
     3.2 +++ b/java/nekurak.net-web/web/WEB-INF/web.xml	Tue Jan 25 22:03:46 2011 +0100
     3.3 @@ -1,112 +1,120 @@
     3.4  <?xml version="1.0" encoding="UTF-8"?>
     3.5  <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
     3.6 -	<session-config>
     3.7 -		<session-timeout>30</session-timeout>
     3.8 -	</session-config>
     3.9 -	<welcome-file-list>
    3.10 -		<welcome-file>index.jsp</welcome-file>
    3.11 -	</welcome-file-list>
    3.12 +    <session-config>
    3.13 +        <session-timeout>30</session-timeout>
    3.14 +    </session-config>
    3.15 +    <welcome-file-list>
    3.16 +        <welcome-file>index.jsp</welcome-file>
    3.17 +    </welcome-file-list>
    3.18      <!-- <chybovéStránky> -->
    3.19 -	<error-page>
    3.20 +    <error-page>
    3.21          <!-- Stránka nenalezena -->
    3.22 -		<error-code>404</error-code>
    3.23 -		<location>/WEB-INF/chyby/404.jsp</location>
    3.24 -	</error-page>
    3.25 -	<error-page>
    3.26 +        <error-code>404</error-code>
    3.27 +        <location>/WEB-INF/chyby/404.jsp</location>
    3.28 +    </error-page>
    3.29 +    <error-page>
    3.30          <!-- Interní chyba serveru -->
    3.31 -		<error-code>500</error-code>
    3.32 -		<location>/WEB-INF/chyby/500.jsp</location>
    3.33 -	</error-page>
    3.34 +        <error-code>500</error-code>
    3.35 +        <location>/WEB-INF/chyby/500.jsp</location>
    3.36 +    </error-page>
    3.37      <!-- </chybovéStránky> -->
    3.38 -	<listener>
    3.39 -		<listener-class>cz.frantovo.nekurak.posluchac.OchranaProtiCSRF</listener-class>
    3.40 -	</listener>
    3.41 +    <listener>
    3.42 +        <listener-class>cz.frantovo.nekurak.posluchac.OchranaProtiCSRF</listener-class>
    3.43 +    </listener>
    3.44      <!-- <definiceServletů> -->
    3.45 -	<servlet>
    3.46 -		<servlet-name>atom</servlet-name>
    3.47 -		<jsp-file>/WEB-INF/atom/atom.jsp</jsp-file>
    3.48 -	</servlet>
    3.49 -	<servlet>
    3.50 -		<description>
    3.51 +    <servlet>
    3.52 +        <servlet-name>podnik</servlet-name>
    3.53 +        <servlet-class>cz.frantovo.nekurak.servlet.Podnik</servlet-class>
    3.54 +    </servlet>
    3.55 +    <servlet>
    3.56 +        <servlet-name>atom</servlet-name>
    3.57 +        <jsp-file>/WEB-INF/atom/atom.jsp</jsp-file>
    3.58 +    </servlet>
    3.59 +    <servlet>
    3.60 +        <description>
    3.61  	    Servlet zpřístupňující fotky umístěné ve zvláštním adresáři
    3.62  	    (data oddělená od aplikace).
    3.63  		</description>
    3.64 -		<servlet-name>fotky</servlet-name>
    3.65 -		<servlet-class>cz.frantovo.nekurak.servlet.Fotky</servlet-class>
    3.66 -		<init-param>
    3.67 -			<description>
    3.68 +        <servlet-name>fotky</servlet-name>
    3.69 +        <servlet-class>cz.frantovo.nekurak.servlet.Fotky</servlet-class>
    3.70 +        <init-param>
    3.71 +            <description>
    3.72  		Adresář na disku, který obsahuje fotky podniků.
    3.73  		Musí existovat při startu aplikace.
    3.74  			</description>
    3.75 -			<param-name>adresar</param-name>
    3.76 -			<param-value>/var/www/nekurak.net/fotky</param-value>
    3.77 -		</init-param>
    3.78 -		<load-on-startup>1</load-on-startup>
    3.79 -	</servlet>
    3.80 -	<servlet>
    3.81 -		<servlet-name>kaptcha</servlet-name>
    3.82 -		<servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class>
    3.83 -	</servlet>
    3.84 -	<servlet>
    3.85 -		<description>Veřejné REST API (pak máme ještě jedno soukromé, kde musí být uživatel přihlášený)</description>
    3.86 -		<servlet-name>REST</servlet-name>
    3.87 -		<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    3.88 -		<load-on-startup>1</load-on-startup>
    3.89 -	</servlet>
    3.90 -	<servlet>
    3.91 -		<description>Odesílání a náhledy komentářů pomocí AJAXu.</description>
    3.92 -		<servlet-name>komentare</servlet-name>
    3.93 -		<servlet-class>cz.frantovo.nekurak.servlet.Komentare</servlet-class>
    3.94 -	</servlet>
    3.95 +            <param-name>adresar</param-name>
    3.96 +            <param-value>/var/www/nekurak.net/fotky</param-value>
    3.97 +        </init-param>
    3.98 +        <load-on-startup>1</load-on-startup>
    3.99 +    </servlet>
   3.100 +    <servlet>
   3.101 +        <servlet-name>kaptcha</servlet-name>
   3.102 +        <servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class>
   3.103 +    </servlet>
   3.104 +    <servlet>
   3.105 +        <description>Veřejné REST API (pak máme ještě jedno soukromé, kde musí být uživatel přihlášený)</description>
   3.106 +        <servlet-name>REST</servlet-name>
   3.107 +        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
   3.108 +        <load-on-startup>1</load-on-startup>
   3.109 +    </servlet>
   3.110 +    <servlet>
   3.111 +        <description>Odesílání a náhledy komentářů pomocí AJAXu.</description>
   3.112 +        <servlet-name>komentare</servlet-name>
   3.113 +        <servlet-class>cz.frantovo.nekurak.servlet.Komentare</servlet-class>
   3.114 +    </servlet>
   3.115      <!-- </definiceServletů> -->
   3.116      <!-- <mapováníServletů> -->
   3.117 -	<servlet-mapping>
   3.118 -		<servlet-name>fotky</servlet-name>
   3.119 -		<url-pattern>/fotky/*</url-pattern>
   3.120 -	</servlet-mapping>
   3.121 -	<servlet-mapping>
   3.122 -		<servlet-name>atom</servlet-name>
   3.123 -		<url-pattern>/atom/*</url-pattern>
   3.124 -	</servlet-mapping>
   3.125 -	<servlet-mapping>
   3.126 -		<servlet-name>kaptcha</servlet-name>
   3.127 -		<url-pattern>/kaptcha.jpg</url-pattern>
   3.128 -	</servlet-mapping>
   3.129 -	<servlet-mapping>
   3.130 +    <servlet-mapping>
   3.131 +        <servlet-name>podnik</servlet-name>
   3.132 +        <url-pattern>/podnik/*</url-pattern>
   3.133 +    </servlet-mapping>
   3.134 +    <servlet-mapping>
   3.135 +        <servlet-name>fotky</servlet-name>
   3.136 +        <url-pattern>/fotky/*</url-pattern>
   3.137 +    </servlet-mapping>
   3.138 +    <servlet-mapping>
   3.139 +        <servlet-name>atom</servlet-name>
   3.140 +        <url-pattern>/atom/*</url-pattern>
   3.141 +    </servlet-mapping>
   3.142 +    <servlet-mapping>
   3.143 +        <servlet-name>kaptcha</servlet-name>
   3.144 +        <url-pattern>/kaptcha.jpg</url-pattern>
   3.145 +    </servlet-mapping>
   3.146 +    <servlet-mapping>
   3.147          <!-- Veřejné REST API -->
   3.148 -		<servlet-name>REST</servlet-name>
   3.149 -		<url-pattern>/zdroje/*</url-pattern>
   3.150 -	</servlet-mapping>
   3.151 -	<servlet-mapping>
   3.152 -		<servlet-name>komentare</servlet-name>
   3.153 -		<url-pattern>/komentare</url-pattern>
   3.154 -	</servlet-mapping>
   3.155 +        <servlet-name>REST</servlet-name>
   3.156 +        <url-pattern>/zdroje/*</url-pattern>
   3.157 +    </servlet-mapping>
   3.158 +    <servlet-mapping>
   3.159 +        <servlet-name>komentare</servlet-name>
   3.160 +        <url-pattern>/komentare</url-pattern>
   3.161 +    </servlet-mapping>
   3.162      <!-- </mapováníServletů> -->
   3.163 -	<context-param>
   3.164 +    <context-param>
   3.165          <!-- Pro případ, že chybí hlavička „Accept-language“ v HTTP požadavku -->
   3.166 -		<param-name>javax.servlet.jsp.jstl.fmt.fallbackLocale</param-name>
   3.167 -		<param-value>cs</param-value>
   3.168 -	</context-param>
   3.169 +        <param-name>javax.servlet.jsp.jstl.fmt.fallbackLocale</param-name>
   3.170 +        <param-value>cs</param-value>
   3.171 +    </context-param>
   3.172      <!--  <zabezpečení> -->
   3.173 -	<security-role>
   3.174 -		<role-name>opravneny</role-name>
   3.175 -	</security-role>
   3.176 -	<security-constraint>
   3.177 -		<web-resource-collection>
   3.178 -			<web-resource-name>Správa Nekuřák.net</web-resource-name>
   3.179 -			<url-pattern>/sprava/*</url-pattern>
   3.180 -		</web-resource-collection>
   3.181 -		<auth-constraint>
   3.182 -			<role-name>opravneny</role-name>
   3.183 -		</auth-constraint>
   3.184 -	</security-constraint>
   3.185 -	<login-config>
   3.186 -		<auth-method>FORM</auth-method>
   3.187 -		<realm-name>nekurakNET</realm-name>
   3.188 -		<form-login-config>
   3.189 -			<form-login-page>/?akce=prihlaseni</form-login-page>
   3.190 -			<form-error-page>/?akce=prihlaseni&amp;chyba=ano</form-error-page>
   3.191 -		</form-login-config>
   3.192 -	</login-config>
   3.193 +    <security-role>
   3.194 +        <role-name>opravneny</role-name>
   3.195 +    </security-role>
   3.196 +    <security-constraint>
   3.197 +        <web-resource-collection>
   3.198 +            <web-resource-name>Správa Nekuřák.net</web-resource-name>
   3.199 +            <url-pattern>/sprava/*</url-pattern>
   3.200 +        </web-resource-collection>
   3.201 +        <auth-constraint>
   3.202 +            <role-name>opravneny</role-name>
   3.203 +        </auth-constraint>
   3.204 +    </security-constraint>
   3.205 +    <login-config>
   3.206 +        <auth-method>FORM</auth-method>
   3.207 +        <realm-name>nekurakNET</realm-name>
   3.208 +        <form-login-config>
   3.209 +            <form-login-page>/?akce=prihlaseni</form-login-page>
   3.210 +            <form-error-page>/?akce=prihlaseni&amp;chyba=ano</form-error-page>
   3.211 +        </form-login-config>
   3.212 +    </login-config>
   3.213      <!--  </zabezpečení> -->
   3.214  </web-app>