diff options
-rw-r--r-- | BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/BKURequestHandler.java | 136 | ||||
-rw-r--r-- | BKUOnline/src/main/webapp/HTTP-ohne.html | 6 | ||||
-rw-r--r-- | BKUOnline/src/main/webapp/appletPage.jsp | 9 |
3 files changed, 107 insertions, 44 deletions
diff --git a/BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/BKURequestHandler.java b/BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/BKURequestHandler.java index 544bbc99..6f3b9d7f 100644 --- a/BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/BKURequestHandler.java +++ b/BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/BKURequestHandler.java @@ -16,6 +16,9 @@ */ package at.gv.egiz.bku.online.webapp; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; import java.util.Enumeration; import java.util.HashMap; import java.util.Locale; @@ -32,6 +35,7 @@ import org.apache.commons.logging.LogFactory; import at.gv.egiz.bku.binding.HTTPBindingProcessor; import at.gv.egiz.bku.binding.HttpUtil; import at.gv.egiz.bku.binding.IdFactory; +import at.gv.egiz.bku.utils.StreamUtil; import at.gv.egiz.org.apache.tomcat.util.http.AcceptLanguage; /** @@ -40,51 +44,99 @@ import at.gv.egiz.org.apache.tomcat.util.http.AcceptLanguage; */ public class BKURequestHandler extends SpringBKUServlet { - public final static String REDIRECT_URL = "appletPage.jsp"; + public final static String REDIRECT_URL = "appletPage.jsp"; - protected Log log = LogFactory.getLog(BKURequestHandler.class); + protected Log log = LogFactory.getLog(BKURequestHandler.class); - protected void doPost(HttpServletRequest req, HttpServletResponse resp) - throws ServletException, java.io.IOException { - log.debug("Got new request"); - String lang = req.getHeader("Accept-Language"); - Locale locale = AcceptLanguage.getLocale(lang); - log.debug("Using locale: " + locale); - HttpSession session = req.getSession(); - if (session != null) { - log.warn("Already a session with id: "+session.getId()+ " active, deleting this one"); - getBindingProcessorManager().removeBindingProcessor(IdFactory.getInstance().createId(session.getId())); - } - String id = req.getSession(true).getId(); - log.debug("Using session id: " + id); - HTTPBindingProcessor bindingProcessor; + private static String getStringFromStream(InputStream is, String encoding) throws IOException { + if (is == null) { + return null; + } + if (encoding == null) { + encoding = HttpUtil.DEFAULT_CHARSET; + } + ByteArrayOutputStream os = new ByteArrayOutputStream(); + StreamUtil.copyStream(is, os); + return new String(os.toByteArray(), encoding); + } + + + protected void doPost(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, java.io.IOException { + log.debug("Got new request"); + HttpSession session = req.getSession(); + String lang = req.getHeader("Accept-Language"); + Locale locale = AcceptLanguage.getLocale(lang); + log.debug("Using locale: " + locale); - bindingProcessor = (HTTPBindingProcessor) getBindingProcessorManager() - .createBindingProcessor(req.getRequestURL().toString(), id, locale); + if (session != null) { + log.warn("Already a session with id: " + session.getId() + + " active, deleting this one"); + getBindingProcessorManager().removeBindingProcessor( + IdFactory.getInstance().createId(session.getId())); + } + String id = req.getSession(true).getId(); + log.debug("Using session id: " + id); + HTTPBindingProcessor bindingProcessor; - Map<String, String> headerMap = new HashMap<String, String>(); - for (Enumeration<String> headerName = req.getHeaderNames(); headerName - .hasMoreElements();) { - String header = headerName.nextElement(); - if (header != null) { - headerMap.put(header, req.getHeader(header)); - } - } - String charset = req.getCharacterEncoding(); - String contentType = req.getContentType(); - if (charset != null) { - contentType += ";" + charset; - } - headerMap.put(HttpUtil.HTTP_HEADER_CONTENT_TYPE, contentType); - bindingProcessor.setHTTPHeaders(headerMap); - bindingProcessor.consumeRequestStream(req.getInputStream()); - req.getInputStream().close(); - getBindingProcessorManager().process(bindingProcessor); - resp.sendRedirect(REDIRECT_URL); - } + bindingProcessor = (HTTPBindingProcessor) getBindingProcessorManager() + .createBindingProcessor(req.getRequestURL().toString(), id, locale); - protected void doGet(HttpServletRequest req, HttpServletResponse resp) - throws ServletException, java.io.IOException { - doPost(req, resp); - } + Map<String, String> headerMap = new HashMap<String, String>(); + for (Enumeration<String> headerName = req.getHeaderNames(); headerName + .hasMoreElements();) { + String header = headerName.nextElement(); + if (header != null) { + headerMap.put(header, req.getHeader(header)); + } + } + String charset = req.getCharacterEncoding(); + String contentType = req.getContentType(); + if (charset != null) { + contentType += ";" + charset; + } + headerMap.put(HttpUtil.HTTP_HEADER_CONTENT_TYPE, contentType); + bindingProcessor.setHTTPHeaders(headerMap); + bindingProcessor.consumeRequestStream(req.getInputStream()); + req.getInputStream().close(); + getBindingProcessorManager().process(bindingProcessor); + + log.trace("Trying to find applet parameters in request"); + String width = getStringFromStream(bindingProcessor.getFormData("appletWidth"), charset); + String height = getStringFromStream(bindingProcessor.getFormData("appletHeight"), charset); + String background = getStringFromStream(bindingProcessor.getFormData("appletBackground"), charset); + if (width != null) { + try { + log.trace("Found applet width parameter: " + width); + int wI = Integer.parseInt(width); + session.setAttribute("appletWidth", wI); + } catch (NumberFormatException nfe) { + log.warn(nfe); + } + } + if (height != null) { + try { + log.trace("Found applet height parameter: " + height); + int hI = Integer.parseInt(height); + session.setAttribute("appletHeight", hI); + } catch (NumberFormatException nfe) { + log.warn(nfe); + } + } + if (background != null) { + try { + log.trace("Found applet background parameter: " + background); + session.setAttribute("appletBackground", background); + } catch (NumberFormatException nfe) { + log.warn(nfe); + } + } + + resp.sendRedirect(REDIRECT_URL); + } + + protected void doGet(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, java.io.IOException { + doPost(req, resp); + } } diff --git a/BKUOnline/src/main/webapp/HTTP-ohne.html b/BKUOnline/src/main/webapp/HTTP-ohne.html index f61081cc..1923113e 100644 --- a/BKUOnline/src/main/webapp/HTTP-ohne.html +++ b/BKUOnline/src/main/webapp/HTTP-ohne.html @@ -86,6 +86,12 @@ legend { <sl:BinaryFileParameters ContentIsXMLEntity="true" /> </sl:InfoboxReadRequest> --> +<p><label for="appletWidth">Applet Width</label> <input + name="appletWidth" value="190" id="appletWidth"> +<p><label for="appletHeight">Applet Height</label> <input + name="appletHeight" value="130" id="appletHeight"> +<p><label for="appletBackground">Applet Background</label> <input + name="appletBackground" value="" id="appletBackground"> </textarea></p> <!-- diff --git a/BKUOnline/src/main/webapp/appletPage.jsp b/BKUOnline/src/main/webapp/appletPage.jsp index b9225e56..59dc2ad5 100644 --- a/BKUOnline/src/main/webapp/appletPage.jsp +++ b/BKUOnline/src/main/webapp/appletPage.jsp @@ -25,6 +25,10 @@ <script type="text/javascript" src="js/deployJava.js"></script> </head> <body> +<% int width= session.getAttribute("appletWidth") == null ? 190 : (Integer)session.getAttribute("appletWidth"); + int height=session.getAttribute("appletHeight") == null ? 130 : (Integer)session.getAttribute("appletHeight"); + String backgroundImg = (String) session.getAttribute("appletBackground"); +%> <script> if (!deployJava.versionCheck('1.6.0_04+')) { document @@ -34,10 +38,11 @@ codebase :'applet', code :'at.gv.egiz.bku.online.applet.BKUApplet.class', archive :'BKUApplet-1.0-SNAPSHOT.jar, commons-logging-1.1.1.jar, iaik_jce_me4se-3.04.jar', - width :190, - height :130 + width : <%= width %>, + height :<%= height %> }; var parameters = { + background : <%= backgroundImg %>, WSDL_URL :'../stal?wsdl', SessionID : '<%= session.getId() %>', redirectURL : '../bkuResult' |