Android工程与web工程通过tomcat服务器建立网络连接案列
来源:互联网 发布:校园网mac地址被修改 编辑:程序博客网 时间:2024/06/15 23:19
TestApp中Android客户端MainActivity
package com.example.testapp;
import java.net.URLEncoder;
import com.google.gson.Gson;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
private Button btnTxt = null;
private String txtUrl = "http://192.168.23.1:8080/TaxiServlet/TxtDataServlet";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnTxt=(Button) findViewById(R.id.btnTxt);
btnTxt.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
new Thread(new Runnable() {
@SuppressWarnings("deprecation")
@Override
public void run() {
// TODO Auto-generated method stub
String retStr = "";
Student student = new Student();
student.setId(1);
student.setName("吕健1");
student.setClasse("1班");
Gson gson = new Gson();
String jsonTxt = gson.toJson(student);
try {
retStr = NetTool.sendTxt(txtUrl, jsonTxt,"UTF-8");
} catch (Exception e2) {
e2.printStackTrace();
}
}
}).start();
}
});
}
// Handler handler=new Handler(){
// public void handleMessage(android.os.Message msg) {};
// };
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
//Android端通过post传递数据TestApp
package com.example.testapp;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class NetTool {
/**
* 传送文本,例如Json,xml等
*/
public static String sendTxt(String urlPath, String txt, String encoding)
throws Exception {
byte[] sendData = ("json="+txt).getBytes();
URL url = new URL(urlPath);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setConnectTimeout(5000);
// 如果通过post提交数据,必须设置允许对外输出数据
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Charset", encoding);
conn.setRequestProperty("Content-Length", String
.valueOf(sendData.length));
OutputStream outStream = conn.getOutputStream();
outStream.write(sendData);
outStream.flush();
outStream.close();
if (conn.getResponseCode() == 200) {
// 获得服务器响应的数据
BufferedReader in = new BufferedReader(new InputStreamReader(conn
.getInputStream(), encoding));
// 数据
String retData = null;
String responseData = "";
while ((retData = in.readLine()) != null) {
responseData += retData;
}
in.close();
return responseData;
}
return "发送文本失败";
}
}
Servlet服务器端通过json获得数据,并与本地数据库进行连接查询,servlet是在web项目中
因此,需要配置web.xml
package com.test.servlet;
import java.awt.Button;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URLDecoder;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import ceshi.User;
import com.db.D1;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import net.sf.json.JSON;
import net.sf.json.JSONObject;
public class TxtDataServlet extends HttpServlet {
@SuppressWarnings("deprecation")
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("post成功了,杜哥");
request.setCharacterEncoding("UTF-8");
Gson gson=new Gson();
String jsonStr= request.getParameter("json");
Student k=gson.fromJson(jsonStr, Student.class);
Connection con = null;
ResultSet rs = null;
try {
Class.forName( "oracle.jdbc.driver.OracleDriver" );// 加载驱动程序
con = DriverManager.getConnection( "jdbc:oracle:thin:@127.0.0.1:1521:test", "system", "123456" );
String sql="select * from student where id='"+k.getId()+"'and name='"+k.getName()+"'";
Statement stmt=con.createStatement();//创建SQL命令对象
stmt.executeQuery(sql);//执行查询命令
rs=stmt.executeQuery(sql);//返回SQL语句查询结果集(集合)
// if(rs.next()){
//
// }
while(rs.next()){
System.out.println("连接成功");
System.out.println(rs.getString("id")+"\t"+rs.getString("name")+"\t"+rs.getString("classes")
+"\t"+rs.getString("age"));
}
//关闭连接
stmt.close();//关闭命令对象连接
con.close();//关闭数据库连接
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
web.xml中的配置
<servlet>
<servlet-name>SynDataServlet</servlet-name>
<servlet-class>com.test.servlet.TxtDataServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SynDataServlet</servlet-name>
<url-pattern>/TxtDataServlet</url-pattern>
</servlet-mapping>
- Android工程与web工程通过tomcat服务器建立网络连接案列
- 建立web工程
- nginx与tomcat配合部署web工程
- Android教程(三)-- 建立工程与工程目录介绍
- tomcat 识别 web 工程
- tomcat部署web工程
- tomcat部署web工程
- tomcat部署web工程
- android建立库工程
- 如何通过Maven的Tomcat插件运行Web工程
- 通过Maven的Tomcat插件运行web工程
- 如何通过Maven的Tomcat插件运行Web工程
- eclipse下新建maven web工程(是web工程!)以及部署maven web工程到tomcat服务器
- 一个Web应用部署到Tomcat服务器上之后的目录结构是怎样的?以及web工程与maven web工程的目录结构
- 使用maven建立WEB工程
- 用Maven建立WEB工程
- 使用maven建立WEB工程
- MYeclipse中的web工程不能部署tomcat服务器上报错
- ButterKnife 8.1.0版本在AndroidStudio中的配置
- iOS 在NavigationController 基类中 自定义全局后退按钮 且 开启手势后退
- React知识库内容精选:10篇文章让你迅速了解该框架
- Listview
- pc端vnc连接android 端
- Android工程与web工程通过tomcat服务器建立网络连接案列
- 12-CSS布局模型
- 86. Partition List
- iOS图片的缓存
- LeetCode:Binary Tree Zigzag Level Order Traversal
- iOS快速得到视图的width,height,x,y
- tar命令详解
- 本地如何搭建IPv6环境测试你的APP
- C语言:全局变量在多个c文件中公用的方法