有系统要基于原有的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......