⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 weatherforecastservlet.java

📁 < J2EE应用开发详解>>一书全部的源代码. 本书基于J2EE 1.4平台
💻 JAVA
字号:
package com.j2ee14.ch21;

import javax.xml.rpc.Call;
import javax.xml.rpc.Service;
import javax.xml.rpc.JAXRPCException;
import javax.xml.namespace.QName;
import javax.xml.rpc.ServiceFactory;
import javax.xml.rpc.ParameterMode;
import javax.servlet.*;
import java.io.*;
import javax.servlet.http.*;
import java.net.*;

/**
 *调用Web服务的Servlet
 */
public class WeatherForecastServlet extends javax.servlet.http.HttpServlet {

    /**
     *以下是Web服务调相关的参数
     */
    String UrlString = "http://localhost:8000/WeatherForecastService?WSDL";//目标地址
    String nameSpaceUri = "urn:WeatherForecast";//Web服务的名称空间
    String serviceName = "MyWeatherForecastService";//服务的名称
    String portName = "WeatherForecastServicePort";//端点的名称         
    
    public 	 void doGet(HttpServletRequest request,HttpServletResponse response)
		throws javax.servlet.ServletException,java.io.IOException
	{ 

        String action=(String)request.getParameter("action");
        String zone=(String)request.getParameter("zone");
        String nextPage="index.jsp";
        try {
             URL weatherWsdlUrl = new URL(UrlString);
            /**
             *创建web服务调用代理
             */
            ServiceFactory serviceFactory = ServiceFactory.newInstance();
            
            Service weatherService = serviceFactory.createService(weatherWsdlUrl, 
                new QName(nameSpaceUri, serviceName));
            
            WeatherForecastService   myProxy = (WeatherForecastService) 
               weatherService.getPort(new QName(nameSpaceUri, portName), 
             WeatherForecastService.class); 
            /**
             *根据不同的action进行不同的处理
             */
            if(action.equals("getTemperature"))
            {
            	float tempture=myProxy.getTemperature(zone);
            	request.setAttribute("tempture",new Float(tempture));
            	nextPage="viewTempture.jsp";
            }
            else if(action.equals("getDescription"))
            {
            	String description=myProxy.getDescription(zone);
            	request.setAttribute("description",description);
            	nextPage="viewDescription.jsp";
            }
            else if(action.equals("createNewWeatherRecoder"))
            {
            	float tempture=Float.parseFloat((String)request.getParameter("tempture"));
            	myProxy.createNewWeatherRecoder(zone,tempture);
            	nextPage="sucess.html";
            }
            else if(action.equals("modifyWeatherRecoder"))
            {   
            	float tempture=Float.parseFloat((String)request.getParameter("tempture"));
            	myProxy.modifyWeatherRecoder(zone,tempture);
            	nextPage="sucess.html";
            }

        } catch (Exception ex) {
             nextPage="error.jsp";
            ex.printStackTrace();
        }
        /**
         *把视图派发到目的
         */
        javax.servlet.RequestDispatcher dis=request.getRequestDispatcher(nextPage);
        dis.forward(request,response);
        
    }
     
	public void service(HttpServletRequest req, HttpServletResponse resp) 
		throws javax.servlet.ServletException,java.io.IOException
	{

		doGet(req,resp);	
    }   
   
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -