TelnetみたいなHttpクライアント
HttpClient使ったら,ごっつ簡単にできた.
コードを載せるまでもないが,まあいいか.
import java.io.BufferedReader; import java.io.InputStreamReader; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.util.EncodingUtil; public class Console { private static String url = "http://localhost:7001/example/echo.jsp"; private HttpClient client; public Console(String args) { client = new HttpClient(); } public static void main(String args) { Console console = new Console(args); console.go(); } private void go() { try { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); String str = ""; while (str != null) { System.out.print("console> "); str = in.readLine(); process(str); } } catch (Exception e) { e.printStackTrace(); } } private void process(String str) throws Exception { PostMethod post = new PostMethod(url); NameValuePair[] data = { new NameValuePair("input", str) }; String encodedDate = EncodingUtil.formUrlEncode(data, "Windows-31J"); post.setRequestBody(encodedDate); post.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); client.executeMethod(post); String output = post.getResponseBodyAsString(); System.out.println(output); } }
ほいで呼び出してるJSPはこんなの.
<%@ page contentType="text/html;charset=Windows-31J" %> <%= request.getParameter("input") %>
これをふくらまして,Groovy Consoleみたいなのを呼び出したら,ちょっと楽しいかも.:-)
(追記)PnutsConsoleなるものをチョロりとつくり,テキトウなEARに紛れ込ませ,さっきのクライアントから操作してみた.こりゃ,ちょっとどころじゃなく,すごく楽しい.
#うひゃぁ.