summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKjetil Orbekk <Kjetil Ørbekk orbekk@pvv.ntnu.no>2010-09-03 18:18:54 -0400
committerKjetil Orbekk <Kjetil Ørbekk orbekk@pvv.ntnu.no>2010-09-03 18:18:54 -0400
commit3f0d7c1ebef350624d17045a54adb3b43ec3abf4 (patch)
tree78c4d7d04d330b3adaa9b4f93c2ddf636829f68e
parent505f176b0b23fd5c21bb37cfc3a5d063ee6219b5 (diff)
Add ViewQuote servlet.
ViewQuote displays a single quote.
-rw-r--r--src/WEB-INF/web.xml10
-rw-r--r--src/lq/Printer.java2
-rw-r--r--src/lq/QuoteUtil.java21
-rw-r--r--src/lq/ViewQuote.java32
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.");
+ }
+ }
+}