alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

What this is

This file is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Other links

The source code

/**
 * Title:        PSI Java Framework: UserDialogRequestHandler

* Copyright: PSI-BT AG

* History: * Date Author What's new * 16.04.2001 VMentzner Created */ package com.psibt.framework.net; /** * This class implements a RequestHandler for the path "/userdialog/" in the PluggableHTTPServer. * A simple input form is presented in the browser where you can enter a message. This message will be sent * to the PluggableHTTPServer and shown in a JOptionPane MessageDialog. * * @author Volker Mentzner */ public class UserDialogRequestHandler extends RootRequestHandler { private Component parentComponent; /** * Creates a new UserDialogRequestHandler object */ public UserDialogRequestHandler() { this(null); } /** * Creates a new UserDialogRequestHandler object with a parentComponent reference */ public UserDialogRequestHandler(Component parentComponent) { this.setTitle("user dialog"); this.setDescription("show user dialog"); this.setHandledPath("/userdialog/"); this.parentComponent = parentComponent; } /** * Handles the given request and writes the reply to the given out-stream. * * @param request - client browser request * @param out - Out stream for sending data to client browser * @return if the request was handled by this handler : true, else : false */ public boolean handleRequest(String request, Writer out) { String path = ""; String query = null; try { URL url = new URL("http://localhost"+request); path = url.getPath(); query = url.getQuery(); if (path.startsWith(this.getHandledPath()) == false) { return false; } out.write("HTTP/1.0 200 OK\r\n"); out.write("Content-type: text/html\r\n\r\n"); out.write("" + this.getTitle() + "\r\n"); out.write("

" + this.getDescription() + "

\r\n"); if ((query != null) && (query.length() >= 0)) { int idx = query.indexOf("="); String message = query.substring(idx+1, query.length()); // replace '+' by space message = message.replace('+', ' '); // replace hex strings starting with '%' by their values idx = message.indexOf("%"); while (idx >= 0) { String sl = message.substring(0, idx); String sm = message.substring(idx+1, idx+3); String sr = message.substring(idx+3, message.length()); try { int i = Integer.parseInt(sm, 16); sm = String.valueOf((char)i); } catch (Exception ex) { sm = ""; } message = sl + sm + sr; idx = message.indexOf("%"); } // show message in a new thread if ((message != null) && (message.length() > 0)) { Thread t = new Thread(new DialogThread(parentComponent, message)); t.start(); } } out.write("
"); out.write("\r\n"); out.write(" \r\n"); out.write(" \r\n"); out.write("
Send message to user
\r\n"); out.write(""); out.write("
"); out.write("\r\n"); out.flush(); return true; } catch (Exception ex) { return false; } } /** * Internal class to start the user dialog in a new thread. This makes the RequestHandler return * immediatly */ class DialogThread implements Runnable { private Component parentComponent; private String message; public DialogThread(Component parentComponent, String message) { this.parentComponent = parentComponent; this.message = message; } public void run() { JOptionPane.showMessageDialog(parentComponent, message); } } }
... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.