Základ servletu pro zobrazování detailu podniku.
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&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&chyba=ano</form-error-page>
3.211 + </form-login-config>
3.212 + </login-config>
3.213 <!-- </zabezpečení> -->
3.214 </web-app>