SpringMVC结合天气api实现天气查询

网友投稿 246 2023-05-18


SpringMVC结合天气api实现天气查询

本实例实现在jsp页面实现查询全国城市天气预报的功能,供大家参考,具体内容如下

实例目录:

实现效果:

具体思路:

从和风天气api那里取得具体城市的api接口,获取json数据,再对json数据进行解析。

获取json数据:

package com.util;

import java.io.BufferedReader;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

import java.nio.ByteBuffer;

import java.nio.channels.FileChannel;

public class NetUtilImpl implements NetUtil{

@Override

public String getJson(String url) throws IOException{

HttpURLConnection connection = null;

URL url2 = new URL(url);

connection=(HttpURLConnection) url2.openConnection();

/*对和风天气提供的链接进行连接*/

connection.connect();

/*获取状态码*/

int recode = connection.getResponseCode();

BufferedReader bufferedReader = null;

String json = new String();

/*如果连接成功*/

if(recode==200) {

/*对数据进行读,并且封装到json这个字符串,并且返回json*/

InputStream inputStream = connection.getInputStream();

bufferedReader=new BufferedReader(new InputStreamReader(inputStream,"UTF-8"));

String string = null;

while ((string=bufferedReader.readLine())!=null) {

json=json+string;

ByteBuffer buffer = ByteBuffer.wrap(new String(string).getBytes("UTF-8"));

}

}

return json;

}

}

对json字符串进行解析,这里使用谷歌的gson工具包:

package com.util;

import java.io.FileReader;

import java.util.ArrayList;

import java.util.List;

import com.google.gson.JsonArray;

import com.google.gson.JsonObjecheOwNXt;

import com.google.gson.JsonParser;

public class JsonUtilImpl implements JsonUtil{

@Override

public List getData(String json) {

ArrayList lists = new ArrayList();

JsonParser jsonParser = new JsonParser();//json解析器

JsonObject object=(JsonObject) jsonParser.parse(json); //创建JsonObject对象

JsonArray array=object.get("results").getAsJsonArray();//得到json数组

JsonObject sJsonObject = array.get(0).getAsJsonObject();//按索引得到其中具体数据

JsonObject location = sJshttp://onObject.get("location").getAsJsonObject();

JsonObject now = sJsonObject.get("now").getAsJsonObject();

lists.add(location.get("name").getAsString());

lists.add(now.get("text").getAsString());

lists.add(now.get("temperature").getAsString());

// lists.add(now.get("humidity").getAsString());

// lists.add(now.get("wind_speed").getAsString());

return lists;

}

}

完整代码:

Controller层:

package com.web;

import java.io.IOException;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;

import org.w3c.dom.ls.LSException;

import com.google.common.collect.Lists;

import com.sun.org.apache.bcel.internal.generic.NEW;

import com.util.JsonUtil;

import com.util.JsonUtilImpl;

import com.util.NetUtil;

import com.util.NetUtilImpl;

@Controller

@RequestMapping("/wea")

public class Forest {

NetUtilImpl netUtilImpl = new NetUtilImpl();

JsonUtilImpl jsonUtilImpl = new JsonUtilImpl();

@RequestMapping("/forest")

public String forest(String city,Model model) throws IOException {

String url = "https://api.seniverse.com/v3/weather/now.json?key=mtpmwyecaphmrzwc&location="+city+"&language=zh-Hans&unit=c";

String data = netUtilImpl.getJson(url);

List lists = jsonUtilImpl.getData(data);

model.addAttribute("lists",lists);

return "display";

}

@RequestMapping("/fff")

public String fff() {

return "a";

}

}

springMVC配置文件:

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xmlns:context="http://springframework.org/schema/context"

xmlns:mvc="http://springframework.org/schema/mvc"

xsi:schemaLocation="http://springframework.org/schema/beans

http://springframework.org/schema/beans/spring-beans.xsd

http://springframework.org/schema/context

http://springframework.org/schema/context/spring-context-3.2.xsd

http://springframework.org/schema/mvc

http://springframework.org/schema/mvc/spring-mvc-3.2.xsd">

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xmlns:context="http://springframework.org/schema/context"

xmlns:mvc="http://springframework.org/schema/mvc"

xsi:schemaLocation="http://springframework.org/schema/beans

http://springframework.org/schema/beans/spring-beans.xsd

http://springframework.org/schema/context

http://springframework.org/schema/context/spring-context-3.2.xsd

http://springframework.org/schema/mvc

http://springframework.org/schema/mvc/spring-mvc-3.2.xsd">

查询主页:

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

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

city:

展示页面:

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

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java 值Document解析xml详细介绍
下一篇:Mybatis 简介与原理
相关文章

 发表评论

暂时没有评论,来抢沙发吧~