通过 jsp+ajax+servlet+webservice 远程访问天气预报服务
   - webservice 客户端访问的方式
     1. java代码来访问
     2. ajax 方式异步加载webservice

- 通过 ajax 异步加载 天气信息实现步骤:
     1. 了解远程第三方的天气预报webservice服务
        广东,31124   广州,2350   东莞,2351  深圳,2419   温度信息  String[8]
     2. wsimport 生成本地代理
     3. 准备一个index.jsp  页面,显示城市信息 ,下拉城市,显示天气信息  
     4. 准备一个weatherServlet ,通过它来访问webservcie
     5. Servlet要在web .xml注册

通过Jdk  
   声明 :@Webservice
     发布 :EndPoint
      不足: 希望tomcat启动时,webservice服务能够开启 ,最好与Spring集成
              希望有一个webservice的服务列表
   通过Webservice框架来实现 :axis2  、xfire

1.通过wsimport生成本地代理与打成jar包

wsimport http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?WSDL

发现产生错误:

将源码考到本地,将错误行删除(15,61,101),然后存为xml文件后重新进行wsimport,发现只有三个警告,同时生成对应的class文件打成jar包。

C:\Users\liqiang\Desktop>wsimport weather.xml
parsing WSDL... [WARNING] Ignoring SOAP port "WeatherWSSoap12": it uses non-standard SOAP 1.2 bi
nding.
You must specify the "-extension" option to use this binding.
line 533 of file:/C:/Users/liqiang/Desktop/weather.xml [WARNING] ignoring port "WeatherWSHttpGet": no SOAP address specified. try runni
ng wsimport with -extension switch.
line 536 of file:/C:/Users/liqiang/Desktop/weather.xml [WARNING] ignoring port "WeatherWSHttpPost": no SOAP address specified. try runn
ing wsimport with -extension switch.
line 539 of file:/C:/Users/liqiang/Desktop/weather.xml Generating code... Compiling code... C:\Users\liqiang\Desktop>jar -cvf weather.jar ./cn

2.index.jsp:选择地区的时候异步请求天气情况

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script type="text/javascript" src="jquery-1.8.2.js"></script>
</head> <body>
<select id="province">
<option value="31124">广东省</option>
</select>
<select id="city">
<option value="2350">广州</option>
<option value="2419">深圳</option>
<option value="2351">东莞</option>
</select>
<hr/>
<span>XXXX</span>
<script type="text/javascript">
$("#city").change(function(){
var city=$("#city option:selected").val();
$.post("weatherServlet",{"city":city},function(backdata){
$("span").text(backdata).css("color","blue");
});
});
</script>
</body>
</html>

3.接收请求的servlet

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import cn.com.webxml.WeatherWS;
import cn.com.webxml.WeatherWSSoap; public class WeatherServlet extends HttpServlet {
private WeatherWS ws; public WeatherServlet() {
super();
}
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String cityCode=request.getParameter("city");
System.out.println("获取城市的id"+cityCode);
//通过webservice获取远程的天气预报信息
WeatherWSSoap weatherWSSoap = ws.getWeatherWSSoap();
List<String> weathers = weatherWSSoap.getWeather(cityCode, "").getString();
String weather=weathers.get(8);//取得温度信息 //把结果回显给页面
response.setContentType("text/html;charset=UTF-8");
PrintWriter printWriter=response.getWriter();
printWriter.write(weather);
printWriter.flush();
printWriter.close(); } public void init() throws ServletException {
// Put your code here
ws=new WeatherWS();
} }

效果:

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKIAAABiCAIAAABceJ/4AAADTklEQVR4nO2cW26DMBBF2Rn77G+Sj5BkDewoQtmA+1EJUbDHY4/BJvceVVXABnvmMIb0kc4RALraEyBHQM0QUDME1AwBNUNAzRBQMwTUDEFE8/v9fjwe99MyDMM0TZpENBupPoR8zZfLxThAdV6vl6Zby5EqQxCIaL7f78YBqqMMoeVI7XOj5rRuVaivueviD3GaPqk99ZTSHJ2bt0ORiOprdrnxeztsX9gpWM3yrLyTP7HmTkTTJ5SIv9fL73YsmpUhzJ1XL9zZNScMoKuAeTMpR33fL/Pe9/22j1Gz5tjVdVkrBGmGcrNRszfyUM+MC38cx2WOxnHc9jlS83Y1ip6hYAjSDOVme/DyIUmrope5Grx14PbXvLqUlzNXRlEqBGmScrNRs9Kf94TKUeZq8NaBO6SaV5011/eSUiFIc5Ob7cFrDrFUs3Ou7/tQHbgzaHaFQhA4+t6sL1z9KOM4hurAHaU5pFa/JtlDEKhwb/Yu2pZqljmFZpl2Na/6JG3qR9Fw2JO2d/OsmvNuzLvem2WyNec5zjuJTBM/7Gwc/urCUXNqtyrsrnkYBuMA1bler5puLUeqDEEgonmaptvtZv9Ll1o8n8/P56NJRLOR6kPI10y+A2qGgJohoGYIqBkCaoaAmiGgZgioGQJqhiCo+Yd8EZLmN/kWuGhDQM0QUDME1AwBNUNAzRBQMwTUDAE1Q1BSc9e5HT4ipt1xT0Sx9MyJXmb8T8D8tWo99bjnYi/N3gqTyy7PhH1cBKIfCfKvJrY7l03L0gmlVbnfO26ov2VcEOT/5vNvRlOWUbIrbfIhIZ3Fl4qvobzmvBXSrpkrs0ATmqMn3G5ScxIJiVndg4WVs6Bm/aVGzQL6z9aIv573JKVbuFt7T15qXCiUn7uQ0FpK87a17OUFRTwxqc/VZTW7wM0i9DaPeIm/b47uFJbW+PBZ50/aSZz9STv1KSxDYZJm/njES0SzvELKT8jRKo8eLrw/llvlcQHZNwFRJVXGBYQ5gICaIaBmCKgZAmqGgJohoGYIqBkCaoaAmiGgZgioGQJqhoCaIaBmCKgZAmqGgJohoGYIqBkCaoaAmiGgZgioGQJqhoCaIaBmCKgZAmqGgJohoGYIqBkCaobgF5sTRpQjUTtIAAAAAElFTkSuQmCC" alt="" />

通过 jsp+ajax+servlet+webservice 远程访问天气预报服务的更多相关文章

  1. jsp+ajax+servlet+jquery从后台取json数据示例

    <span style="font-size:18px;"><%@ page language="java" import="jav ...

  2. WebService技术,服务端发布到Tomcat(使用Servlet发布),客户端使用axis2实现(二)

    还是在WebService技术,服务端and客户端JDK-wsimport工具(一)的基础上实现.新建一个包:com.aixs2client.目录结构如下: 一.服务端: 1.还是使用com.webs ...

  3. ajax调用webservice服务

    ajax调用是 html方向调用的, 而sqlconnection是 java代码调用的,本质差不多 <html> <head> <title>通过ajax调用we ...

  4. Jquery AJAX 调用WebService服务

    对Jquery+JSON+WebService的一点认识 文章不错:http://www.cnblogs.com/tyb1222/archive/2011/10/13/2210549.html Jqu ...

  5. Spring+SpringMVC+Mybatis+Maven+CXF+WebService整合之服务端

    WebService服务端项目结构: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="h ...

  6. SpringMVC内容略多 有用 熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。

    熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构 ...

  7. Myeclipse+AJAX+Servlet

    最近刚开始学AJAX的知识,这里介绍一个简单的Myeclipse+AJAX+Servlet项目. 此项目包含3个文件:index.jsp.check.java.还有一个需要配置的文件是:web.xml ...

  8. Jquery ajax调用webservice总结

    jquery ajax调用webservice(C#)要注意的几个事项: 1.web.config里需要配置2个地方 <httpHandlers>      <remove verb ...

  9. Ajax调用WebService

    前台代码: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1 ...

随机推荐

  1. http 实战练习

    http 实战练习 建立httpd服务器,要求提供两个基于名称的虚拟主机: (1)www.X.com,页面文件目录为/web/vhosts/x:错误日志为/var/log/httpd/x.err,访问 ...

  2. VirtualBox下vim无法正常使用问题解决

    由原来的使用VMware转到使用Virtual Box,发现其vim编辑器不是特别好用,需要进行一下更改设置: 1.使用命令删除vim,sudo apt-get remove vim-common 2 ...

  3. python网络-多任务实现之协程(27)

    一.协程 协程,又称微线程,纤程.英文名Coroutine. 协程不是进程,也不是线程,它就是一个函数,一个特殊的函数——可以在某个地方挂起,并且可以重新在挂起处继续运行.所以说,协程与进程.线程相比 ...

  4. 问题 1936: [蓝桥杯][算法提高VIP]最大乘积

    问题 1936: [蓝桥杯][算法提高VIP]最大乘积 时间限制: 1Sec 内存限制: 128MB 提交: 77 解决: 16 题目描述 对于n个数,从中取出m个数,如何取使得这m个数的乘积最大呢? ...

  5. (洛谷)P1019 单词接龙

    题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都最多在"龙" ...

  6. 8、python中的集合

    集合是python中无序.可变的数据结构.集合与字典类似,集合中的元素必须是可哈希的(等同于字典中的键),也就是说集合中的元素是唯一.不可变的数据类型.这里前面说集合可变,后面又说集合中的元素不可变是 ...

  7. Win7系统桌面便签怎么添加?

    参考:http://jingyan.baidu.com/article/ab69b270c207432ca7189f99.html Win7系统桌面便签怎么添加?有时候工作.学习忙起来就会忘记要办的事 ...

  8. 《鸟哥的Linux私房菜》学习笔记(5)——权限管理

    一.权限的基本概念                                                   权限:访问计算机资源或服务的访问能力. Linux中,每一个资源或者服务的权限, ...

  9. 【Kubernetes】资源列表

    1.Kubernetes资源列表 https://www.cnblogs.com/linuxk/p/10436260.html

  10. Core Java的那点事儿之ArrayList

    Core Java的那点事儿之ArrayList 万丈高楼平地起,Java基础要拿起.今天就从我看的Core Java里找了些小基础点来分享一下. 首先隆重介绍一下专业级龙套演员---Employee ...