写一个servlet实现GPS坐标偏移接口功能
这两天写了一个servlet,用于实现GPS坐标偏移接口功能。大概就是,我需要首先接收一个经纬度串数组,然后用json解析,给URL服务发送请求,服务器返回json格式的数组.
0、需要引入json-simple-1.1的类库。
1、GPS坐标偏移接口文档见附件
2、具体servlet代码:
package com.tm.gpsController;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public class GPSConventCoordinateServlet extends HttpServlet {
private static final long serialVersionUID = 3018725984829044717L;
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// 我申请的key
String a_k = "XXXXXX";
String coors = req.getParameter("lonLatStr");
JSONParser parser = new JSONParser();
Object obj = "";
try {
obj = parser.parse(coors);
} catch (ParseException e) {
e.printStackTrace();
}
String lonLatStr = "";
JSONArray array = (JSONArray) obj;
for (Object j : array) {
//
lonLatStr = lonLatStr + ((JSONObject) j).get("lon") + ","
+ ((JSONObject) j).get("lat") + ";";
}
lonLatStr = lonLatStr.substring(0, lonLatStr.length() - 1);
String postParam = "config=RGC&flag=true&resType=json&cr=0&coors="
+ lonLatStr + "&a_k=" + a_k;
System.out.println(postParam);
// 服务地址
String urlString = "XXXXXX";
URL url = new URL(urlString);
URLConnection urlc = url.openConnection();
HttpURLConnection httpConnection = (HttpURLConnection) urlc;
httpConnection.setRequestMethod("POST");
httpConnection.setDoInput(true);
httpConnection.setDoOutput(true);
httpConnection.connect();
OutputStreamWriter osw = new OutputStreamWriter(
new BufferedOutputStream(httpConnection.getOutputStream()));
osw.write(postParam);
osw.flush();
System.out.println();
osw.close();
BufferedReader br = new BufferedReader(new InputStreamReader(
httpConnection.getInputStream()));
String line;
StringBuffer sbuffB = new StringBuffer();
while ((line = br.readLine()) != null) {
sbuffB.append(line + "\n");
System.out.println(line);
}
br.close();
httpConnection.disconnect();
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doGet(req, resp);
}
}
3、web.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>GPSConventCoordinateServlet</servlet-name>
<servlet-class>com.tm.gpsController.GPSConventCoordinateServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>GPSConventCoordinateServlet</servlet-name>
<url-pattern>/GPSConventCoordinateServlet</url-pattern>
</servlet-mapping>
</web-app>
4、启动tomcat,部署一下,运行。
5、在浏览器中输入
http://localhost:8080/gpsCoordinateConvent/GPSConventCoordinateServlet?lonLatStr=[{"lon":133.34,"lat":35.33},{"lon":134.33,"lat":34.33]进行测试。
6、在控制台输出返回的信息{"message":"ok","list":[{"gridcode":"873482645301","y":"582.5422219509549","x":"582.5422219509549"},{"gridcode":"873482645301","y":"582.5422219509549","x":"582.5422219509549"}]} 就对了
7、注意 在浏览器中输入的参数lonLatStr=[{"lon":133.34,"lat":35.33},{"lon":134.33,"lat":34.33] 参数格式有时候输入的特殊,服务器端就会返回一个默认的返回的结果。"[{"gridcode":"873482645301","y":"582.5422219509549","x":"582.5422219509549"},这时候,其实程序是没有问题的,只需要改一下参数,就可以了。
分享到:
相关推荐
servlet实现密码修改功能,这个功能可以实现前台JSP页面提交信息,通过servlet直接处理实现密码修改功能,希望对需要的朋友有所帮助,谢谢使用本资源!JAVA文件
Servlet实现增删改查功能Servlet实现增删改查功能Servlet实现增删改查功能
这里的User是由user表来定义的一个类,再封装增删改查等操作,实现从数据库查询与插入,修改与删除等操作,并实现了分页操作,也实现了将图片放到服务器上运行的效果。 Dao层:主要实现了User类的定义,接口IUserDao...
Servlet实现增删改查功能 Servlet实现增删改查功能 Servlet实现增删改查功能
使用html和servlet实现登录
通过JSP加Servlet技术实现简易的购物车功能,适合初学JSP的程序猿参考该代码理解JSP与客户端页面相结合的强大功能
非常适合java的学习,利用servlet实现增删查找功能.pdf
基于jsp+servlet实现的小项目(实现图片上传功能)
使用jsp,servlet实现的注册和登陆功能源码和数据库,详细介绍网址http://www.cnblogs.com/biehongli/p/6424406.html
主要介绍了使用Java servlet实现自动登录退出功能,,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
使用Servlet实现简易的历史记录功能
实验1: 利用servlet实现一个简单的聊天室 实验目的 (1) 理解servlet的工作原理 (2) 掌握servlet编程基本技能 实验内容及要求 1. 利用servlet技术实现一个简单的聊天室,实现多人同时交流。当发送聊天信息时,信息...
JAVAWEB:使用JSP+Servlet实现商品管理功能,后台为数据库,功能包括商品信息浏览、商品信息详情、商品信息删除及修改。
在数据库基础上用servlet实现用户注册,登录功能,显示所有用户功能
通过servlet以及JDBC等知识点,实现分页功能,满足分页需求!
增删改查:( Servlet实现增删改查功能_+jsp登录页面.)
Servlet接口及其实现类 Java Servlet Jsp XML HTML Servlet接口及其实现类 Servlet接口及其实现类 Servlet接口 GenericServlet类 HttpServlet类 实现Servlet接口 继承GenericServlet类 Servlet接口及其实现类 方法...