# HG changeset patch
# User František Kučera
# Date 1296008612 -3600
# Node ID 2ed9f3231a283b2724fde3870a32273ab3b7b639
# Parent afee4e663992460911c4905eeaf4bd259c0b57c5
Servlety: základ, detail podniku se už zobrazuje přes servlet
URL budou hezčí, lépe struktorvaná – ale nemůžou se používat relativní jako dotěď,
musíme začínat vždy / (contextPath)
TODO:
- postupně předělat všechny stránky
- opravit javascript
- zkontrolovat další relativní URL
diff -r afee4e663992 -r 2ed9f3231a28 java/nekurak.net-web/src/java/cz/frantovo/nekurak/servlet/Podnik.java
--- a/java/nekurak.net-web/src/java/cz/frantovo/nekurak/servlet/Podnik.java Wed Jan 26 02:24:34 2011 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-package cz.frantovo.nekurak.servlet;
-
-import java.io.IOException;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-/**
- *
- * @author fiki
- */
-public class Podnik extends SuperServlet {
-
- @Override
- protected void doGet(HttpServletRequest požadavek, HttpServletResponse odpověď) throws ServletException, IOException {
- super.doGet(požadavek, odpověď);
-
- String[] parametryCesty = (požadavek.getPathInfo().split("/"));
- int id = Integer.parseInt(parametryCesty[1]);
-
- odpověď.getOutputStream().println("URL: " + požadavek.getRequestURL());
- odpověď.getOutputStream().println("ContextPath: " + požadavek.getContextPath());
- odpověď.getOutputStream().println("PathInfo: " + požadavek.getPathInfo());
- odpověď.getOutputStream().println("PathTranslated: " + požadavek.getPathTranslated());
- odpověď.getOutputStream().println("QueryString: " + požadavek.getQueryString());
- odpověď.getOutputStream().println("RequestURI: " + požadavek.getRequestURI());
- odpověď.getOutputStream().println("Scheme: " + požadavek.getScheme());
- odpověď.getOutputStream().println("ServletPath: " + požadavek.getServletPath());
- odpověď.getOutputStream().println("ID podniku: " + id);
- odpověď.getOutputStream().println("počet parametrů: " + parametryCesty.length);
- odpověď.getOutputStream().println("parametr 0: " + parametryCesty[0]);
- odpověď.getOutputStream().println("parametr 1: " + parametryCesty[1]);
- }
-}
diff -r afee4e663992 -r 2ed9f3231a28 java/nekurak.net-web/src/java/cz/frantovo/nekurak/servlet/PodnikServlet.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/java/nekurak.net-web/src/java/cz/frantovo/nekurak/servlet/PodnikServlet.java Wed Jan 26 03:23:32 2011 +0100
@@ -0,0 +1,55 @@
+package cz.frantovo.nekurak.servlet;
+
+import cz.frantovo.nekurak.dto.Podnik;
+import cz.frantovo.nekurak.ejb.PodnikRemote;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import javax.ejb.EJB;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ *
+ * @author fiki
+ */
+public class PodnikServlet extends SuperServlet {
+
+ @EJB
+ PodnikRemote ejb;
+
+ @Override
+ protected void doGet(HttpServletRequest požadavek, HttpServletResponse odpověď) throws ServletException, IOException {
+ super.doGet(požadavek, odpověď);
+
+ String[] parametryCesty = (požadavek.getPathInfo().split("/"));
+ int id = Integer.parseInt(parametryCesty[1]);
+
+ Podnik p = ejb.getPodnik(id);
+
+ if (p == null) {
+ odpověď.sendError(HttpServletResponse.SC_NOT_FOUND);
+ } else {
+ požadavek.setAttribute("podnik", p);
+ požadavek.setAttribute("mapa", getMapa(p));
+ zpracujJSP("detail.jsp", požadavek, odpověď);
+ }
+ }
+
+ /**
+ * @return URL mapy – obrázku nebo null při chybě nebo absenci souřadnic
+ */
+ private String getMapa(Podnik p) {
+ if (p == null || p.getSirka() == null || p.getDelka() == null) {
+ return null;
+ } else {
+ try {
+ String souradnice = URLEncoder.encode(p.getSirka() + ", " + p.getDelka(), "UTF-8");
+ return "http://maps.google.com/maps/api/staticmap?size=400x400&sensor=false&markers=size:big|color:green|" + souradnice;
+ } catch (UnsupportedEncodingException e) {
+ return null;
+ }
+ }
+ }
+}
diff -r afee4e663992 -r 2ed9f3231a28 java/nekurak.net-web/src/java/cz/frantovo/nekurak/servlet/SuperServlet.java
--- a/java/nekurak.net-web/src/java/cz/frantovo/nekurak/servlet/SuperServlet.java Wed Jan 26 02:24:34 2011 +0100
+++ b/java/nekurak.net-web/src/java/cz/frantovo/nekurak/servlet/SuperServlet.java Wed Jan 26 03:23:32 2011 +0100
@@ -2,6 +2,7 @@
import java.io.IOException;
import java.util.Locale;
+import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
@@ -15,6 +16,8 @@
public static final String PARAMETR_JAZYK = "jazyk";
private static final String ATRIBUT_JAZYK = "javax.servlet.jsp.jstl.fmt.locale.session";
+ private static final String ADRESAR_SABLON = "/WEB-INF/casti/";
+
@Override
protected void doGet(HttpServletRequest požadavek, HttpServletResponse odpověď) throws ServletException, IOException {
@@ -22,6 +25,33 @@
}
/**
+ * Vykreslí stránku pomocí JSP šablony
+ * @param jsp JSP šablona stránky – např. detail.jsp (nacházejí se v /WEB-INF/casti/)
+ */
+ protected void zpracujJSP(String jsp, HttpServletRequest požadavek, HttpServletResponse odpověď) throws ServletException, IOException {
+ /** Nastavení správného MIME typu */
+ //požadavek.setAttribute("jspMimeTyp", MIME_TYP);
+
+
+
+
+ /**
+ * odpověď.setContentType(MIME_TYP); – nefunguje (JSP si tam procpe svoje text/xml)
+ */
+ /*
+ * Mělo by jít změnit přes web.xml:
+
+
+ /
+ application/xhtml+xml
+
+
+ */
+ RequestDispatcher rd = getServletContext().getRequestDispatcher(ADRESAR_SABLON + jsp);
+ rd.forward(požadavek, new XhtmlOdpověď(odpověď));
+ }
+
+ /**
* Společné činnosti, které děláme pro všechny HTTP metody (GET, POST atd.)
*/
private void společné(HttpServletRequest požadavek, HttpServletResponse odpověď) throws ServletException, IOException {
diff -r afee4e663992 -r 2ed9f3231a28 java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/Detail.java
--- a/java/nekurak.net-web/src/java/cz/frantovo/nekurak/web/Detail.java Wed Jan 26 02:24:34 2011 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-package cz.frantovo.nekurak.web;
-
-import cz.frantovo.nekurak.dto.Podnik;
-import java.io.UnsupportedEncodingException;
-import java.net.URLEncoder;
-
-/**
- *
- * @author fiki
- */
-public class Detail {
-
- private HledacSluzby hledac = new HledacSluzby();
- private int id;
- private Podnik podnik;
-
- /**
- * @return URL mapy – obrázku nebo null při chybě nebo absenci souřadnic
- */
- public String getMapa() {
- Podnik p = getPodnik();
-
- if (p == null || p.getSirka() == null || p.getDelka() == null) {
- return null;
- } else {
- try {
- String souradnice = URLEncoder.encode(p.getSirka() + ", " + p.getDelka(), "UTF-8");
- return "http://maps.google.com/maps/api/staticmap?size=400x400&sensor=false&markers=size:big|color:green|" + souradnice;
- } catch (UnsupportedEncodingException e) {
- return null;
- }
- }
- }
-
- public int getId() {
- return id;
- }
-
- public void setId(int id) {
- this.id = id;
- }
-
- public Podnik getPodnik() {
- if (podnik == null) {
- podnik = hledac.getPodnikEJB().getPodnik(id);
- }
- return podnik;
- }
-}
diff -r afee4e663992 -r 2ed9f3231a28 java/nekurak.net-web/web/WEB-INF/atom/atom.jsp
--- a/java/nekurak.net-web/web/WEB-INF/atom/atom.jsp Wed Jan 26 02:24:34 2011 +0100
+++ b/java/nekurak.net-web/web/WEB-INF/atom/atom.jsp Wed Jan 26 03:23:32 2011 +0100
@@ -32,7 +32,7 @@
-
+
urn:NekurakNET:podnik:${podnik.id}
diff -r afee4e663992 -r 2ed9f3231a28 java/nekurak.net-web/web/WEB-INF/casti/detail.jsp
--- a/java/nekurak.net-web/web/WEB-INF/casti/detail.jsp Wed Jan 26 02:24:34 2011 +0100
+++ b/java/nekurak.net-web/web/WEB-INF/casti/detail.jsp Wed Jan 26 03:23:32 2011 +0100
@@ -6,14 +6,14 @@
xmlns:nk="urn:jsptagdir:/WEB-INF/tags/nekurak"
version="2.0">
-
-
+
+
-
-
-
-
-
+
+
+
+
+
diff -r afee4e663992 -r 2ed9f3231a28 java/nekurak.net-web/web/WEB-INF/casti/odeslatKomentar.jsp
--- a/java/nekurak.net-web/web/WEB-INF/casti/odeslatKomentar.jsp Wed Jan 26 02:24:34 2011 +0100
+++ b/java/nekurak.net-web/web/WEB-INF/casti/odeslatKomentar.jsp Wed Jan 26 03:23:32 2011 +0100
@@ -30,7 +30,7 @@
,
-
+
.
diff -r afee4e663992 -r 2ed9f3231a28 java/nekurak.net-web/web/WEB-INF/casti/pridatPodnik.jsp
--- a/java/nekurak.net-web/web/WEB-INF/casti/pridatPodnik.jsp Wed Jan 26 02:24:34 2011 +0100
+++ b/java/nekurak.net-web/web/WEB-INF/casti/pridatPodnik.jsp Wed Jan 26 03:23:32 2011 +0100
@@ -31,7 +31,7 @@
-
-
+
@@ -63,7 +63,7 @@
 
-
+
.
@@ -76,7 +76,7 @@
-