有系统要基于原有的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,如需转载请自行联系原作者