From 5e10b6b575993c78ac22191849c464b618c4fa8a Mon Sep 17 00:00:00 2001 From: mcentner Date: Wed, 14 Jul 2010 15:22:56 +0000 Subject: MOCCA Online HTTP binding refactored. git-svn-id: https://joinup.ec.europa.eu/svn/mocca/trunk@762 8a26b1a7-26f0-462f-b9ef-d0e30c41f5a4 --- .../at/gv/egiz/bku/online/webapp/UIServlet.java | 106 +++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/UIServlet.java (limited to 'BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/UIServlet.java') diff --git a/BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/UIServlet.java b/BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/UIServlet.java new file mode 100644 index 00000000..9b9b9927 --- /dev/null +++ b/BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/UIServlet.java @@ -0,0 +1,106 @@ +/* + * Copyright 2009 Federal Chancellery Austria and + * Graz University of Technology + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package at.gv.egiz.bku.online.webapp; + +import java.io.IOException; +import java.net.MalformedURLException; +import java.net.URL; + +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import at.gv.egiz.bku.binding.BindingProcessor; +import at.gv.egiz.bku.binding.BindingProcessorManager; +import at.gv.egiz.bku.binding.HTTPBindingProcessor; +import at.gv.egiz.bku.binding.Id; + +public class UIServlet extends HttpServlet { + + private static final long serialVersionUID = 1L; + + private final Logger log = LoggerFactory.getLogger(UIServlet.class); + + private String expiredPageUrl = "expired.jsp"; + + @Override + public void init() throws ServletException { + String url = getServletConfig().getInitParameter("expiredPageUrl"); + if (url != null) { + try { + expiredPageUrl = new URL(url).toString(); + log.info("Init expiredPageUrl to: {}.", expiredPageUrl); + } catch (MalformedURLException e) { + log.error("Failed to set expiredUrlPage {}.", url, e); + } + } + } + + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + + BindingProcessorManager bindingProcessorManager = (BindingProcessorManager) getServletContext() + .getAttribute("bindingProcessorManager"); + if (bindingProcessorManager == null) { + String msg = "Configuration error: BindingProcessorManager missing!"; + log.error(msg); + resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, msg); + return; + } + + Id id = (Id) req.getAttribute("id"); + BindingProcessor bindingProcessor = null; + if (id == null + || !((bindingProcessor = bindingProcessorManager + .getBindingProcessor(id)) instanceof HTTPBindingProcessor)) { + resp.sendRedirect(expiredPageUrl); + return; + } + + MoccaParameterBean parameterBean = new MoccaParameterBean((HTTPBindingProcessor) bindingProcessor); + req.setAttribute("moccaParam", parameterBean); + + String uiPage = getServletConfig().getInitParameter("uiPage"); + uiPage = parameterBean.getUIPage(uiPage); + if (uiPage == null) { + uiPage = "applet.jsp"; + } + + RequestDispatcher dispatcher = req.getRequestDispatcher(uiPage); + if (dispatcher == null) { + log.warn("Failed to get RequestDispatcher for page {}.", uiPage); + resp.sendError(HttpServletResponse.SC_NOT_FOUND); + } else { + dispatcher.forward(req, resp); + } + + } + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + super.doPost(req, resp); + } + +} -- cgit v1.2.3