天天看点

Swing与Servlet通信简单示例

有系统要基于原有的Web项目,开发客户端,由原有的Servlet提供请求处理。

技术关键词:Java,Servlet,Swing

这显然要用到Java网络编程,通过程序来模拟请求。

假设Servlet简化为如下代码:

                response.setContentType("text/html;charset=UTF-8");

                PrintWriter out = response.getWriter();

                try {

                        out.println("你好");

                } finally { 

                        out.close();

                }

客户端简化为一个按钮和一个单行文本框。点击按钮则请求Servlet,并将响应文本显示到文本框中:

private void btGetActionPerformed(java.awt.event.ActionEvent evt) {                                                                            

        String urlString = tfURL.getText();

        StringBuffer document = new StringBuffer();

        try {

                URL url = new URL(urlString);

                URLConnection conn = url.openConnection();

                BufferedReader reader = new BufferedReader(new InputStreamReader(

                                conn.getInputStream(),"UTF-8"));

                String line = null;

                while ((line = reader.readLine()) != null) {

                        document.append(line + "\r\n");

                reader.close();

        } catch (MalformedURLException e) {

                System.out.println("不能连接URL: " + urlString);

        } catch (IOException e) {

                System.out.println("响应操作失败: " + urlString);

        }

        this.tfMessage.setText(document.toString());

}

注意其中

new InputStreamReader(conn.getInputStream(),"UTF-8")

表示响应流采用UTF-8解析,这样就与Servlet编码一致起来,就不会出现乱码结果。英语系程序员真幸福,从来不用考虑编码问题,羡慕ing......

本文转自 王杰瑞 51CTO博客,原文链接:http://blog.51cto.com/wangjierui/110426,如需转载请自行联系原作者

上一篇: 换Vista啦