summaryrefslogtreecommitdiff
path: root/BKUOnline/src
diff options
context:
space:
mode:
Diffstat (limited to 'BKUOnline/src')
-rw-r--r--BKUOnline/src/main/java/at/gv/egiz/bku/online/webapp/BKURequestHandler.java136
-rw-r--r--BKUOnline/src/main/webapp/HTTP-ohne.html6
-rw-r--r--BKUOnline/src/main/webapp/appletPage.jsp9
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'