Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2620 vikas 1
 
2
package in.shop2020.web;
3
 
4
import java.io.IOException;
5
import java.util.Collection;
6
 
7
import javax.servlet.RequestDispatcher;
8
import javax.servlet.ServletException;
9
import javax.servlet.http.HttpServlet;
10
import javax.servlet.http.HttpServletRequest;
11
import javax.servlet.http.HttpServletResponse;
12
 
13
import in.shop2020.model.Message;
14
import in.shop2020.server.MessageRepository;
15
 
16
import org.slf4j.Logger;
17
import org.slf4j.LoggerFactory;
18
 
19
public class IndexServlet extends HttpServlet {
20
 
21
	@SuppressWarnings("unused")
22
	private static final Logger log = LoggerFactory
23
			.getLogger(IndexServlet.class);
24
 
25
	private MessageRepository messageRepository = new MessageRepository();
26
 
27
	@Override
28
	protected void doGet(HttpServletRequest request,
29
			HttpServletResponse response) throws ServletException, IOException {
30
 
31
		if (log.isDebugEnabled()) {
32
			log.debug("doGet");
33
		}
34
 
35
		// delete
36
		if (request.getParameter("id") != null) {
37
			deleteMessage(request);
38
 
39
			response.sendRedirect("index");
40
			return;
41
		}
42
 
43
		// get
44
		Collection<Message> messages = messageRepository.getAll();
45
		request.setAttribute("messages", messages);
46
 
47
		if (log.isDebugEnabled()) {
48
			log.debug("messages: " + messages);
49
		}
50
 
51
		forward(request, response, "index.jsp");
52
	}
53
 
54
	@Override
55
	protected void doPost(HttpServletRequest request,
56
			HttpServletResponse response) throws ServletException, IOException {
57
 
58
		if (log.isDebugEnabled()) {
59
			log.debug("doPost");
60
		}
61
 
62
		// create
63
		createMessage(request);
64
		response.sendRedirect("index");
65
	}
66
 
67
	protected void createMessage(HttpServletRequest request) {
68
		String text = request.getParameter("text");
69
		if (log.isDebugEnabled()) {
70
			log.debug("creating message with text: " + text);
71
		}
72
 
73
		Message message = new Message();
74
		message.setText(text);
75
		messageRepository.create(message);
76
	}
77
 
78
	protected void deleteMessage(HttpServletRequest request) throws IOException {
79
		Long id = Long.valueOf(request.getParameter("id"));
80
		if (log.isDebugEnabled()) {
81
			log.debug("deleting message with id: " + id);
82
		}
83
		messageRepository.deleteById(id);
84
	}
85
 
86
	/**
87
	 * Forwards request and response to given path. Handles any exceptions
88
	 * caused by forward target by printing them to logger.
89
	 * 
90
	 * @param request 
91
	 * @param response
92
	 * @param path 
93
	 */
94
	protected void forward(HttpServletRequest request,
95
			HttpServletResponse response, String path) {
96
		try {
97
			RequestDispatcher rd = request.getRequestDispatcher(path);
98
			rd.forward(request, response);
99
		} catch (Throwable tr) {
100
			if (log.isErrorEnabled()) {
101
				log.error("Cought Exception: " + tr.getMessage());
102
				log.debug("StackTrace:", tr);
103
			}
104
		}
105
	}
106
}