📄 weatherforecastservlet.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 + -