diff options
author | Kjetil Orbekk <Kjetil Ørbekk orbekk@pvv.ntnu.no> | 2010-09-03 18:18:54 -0400 |
---|---|---|
committer | Kjetil Orbekk <Kjetil Ørbekk orbekk@pvv.ntnu.no> | 2010-09-03 18:18:54 -0400 |
commit | 3f0d7c1ebef350624d17045a54adb3b43ec3abf4 (patch) | |
tree | 78c4d7d04d330b3adaa9b4f93c2ddf636829f68e | |
parent | 505f176b0b23fd5c21bb37cfc3a5d063ee6219b5 (diff) |
Add ViewQuote servlet.
ViewQuote displays a single quote.
-rw-r--r-- | src/WEB-INF/web.xml | 10 | ||||
-rw-r--r-- | src/lq/Printer.java | 2 | ||||
-rw-r--r-- | src/lq/QuoteUtil.java | 21 | ||||
-rw-r--r-- | src/lq/ViewQuote.java | 32 |
4 files changed, 64 insertions, 1 deletions
diff --git a/src/WEB-INF/web.xml b/src/WEB-INF/web.xml index 1955309..432d10a 100644 --- a/src/WEB-INF/web.xml +++ b/src/WEB-INF/web.xml @@ -46,6 +46,16 @@ <url-pattern>/new_admin</url-pattern> </servlet-mapping> + <servlet> + <servlet-name>view_quote</servlet-name> + <servlet-class>lq.ViewQuote</servlet-class> + </servlet> + + <servlet-mapping> + <servlet-name>view_quote</servlet-name> + <url-pattern>/view_quote</url-pattern> + </servlet-mapping> + <welcome-file-list> <welcome-file>quotes.jsp</welcome-file> </welcome-file-list> diff --git a/src/lq/Printer.java b/src/lq/Printer.java index 1790a5b..7677450 100644 --- a/src/lq/Printer.java +++ b/src/lq/Printer.java @@ -12,7 +12,7 @@ public class Printer { public void printQuote(Quote quote) { out.println("<br>"); - out.println("<a href=\"vote.jsp?id=" + quote.getId() + "\">" + + out.println("<a href=\"/view_quote?id=" + quote.getId() + "\">" + "#" + quote.getId() + "</a>"+ ", lagt til av " + Strings.escape(quote.getAuthor()) + "<br>"); diff --git a/src/lq/QuoteUtil.java b/src/lq/QuoteUtil.java index 5104cb0..72b94af 100644 --- a/src/lq/QuoteUtil.java +++ b/src/lq/QuoteUtil.java @@ -21,6 +21,27 @@ public class QuoteUtil { } } + public static Quote getQuoteWithId(Long id) { + PersistenceManager pm = PMF.get().getPersistenceManager(); + try { + Query quoteQuery = pm.newQuery(Quote.class); + quoteQuery.setFilter("id == idParam"); + quoteQuery.declareParameters("Long idParam"); + List<Quote> quotes = (List<Quote>) quoteQuery.execute(id); + if (quotes.isEmpty()) { + return null; + } + else { + Quote result = quotes.get(0); + pm.retrieve(result); + return result; + } + } + finally { + pm.close(); + } + } + public static List<Quote> getQuotesPendingApproval() { PersistenceManager pm = PMF.get().getPersistenceManager(); try { diff --git a/src/lq/ViewQuote.java b/src/lq/ViewQuote.java new file mode 100644 index 0000000..2575523 --- /dev/null +++ b/src/lq/ViewQuote.java @@ -0,0 +1,32 @@ +package lq; + +import java.io.IOException; +import java.text.ParseException; +import java.util.Date; +import java.util.List; +import javax.jdo.PersistenceManager; +import javax.jdo.Query; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public class ViewQuote extends HttpServlet { + + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) + throws IOException { + String idParam = req.getParameter("id"); + Long id = Long.parseLong(idParam); + Quote quote = QuoteUtil.getQuoteWithId(id); + + resp.setContentType("text/html"); + + if (quote != null) { + Printer printer = new Printer(resp.getWriter()); + printer.printQuote(quote); + } + else { + resp.getWriter().println("Quote not found."); + } + } +} |