`

Android手机客户端通过JSP实现与Tomcat服务器端通信(Msql数据库,Json作为载体)--服务端代码

    博客分类:
  • web
阅读更多
工程结构图:
[img]

[/img]

运行效果图:
浏览器输入:http://localhost:8080/test1/myJson.jsp
[img]

[/img]

package com.json.servlet;

import java.util.ArrayList;
import java.util.List;

public class Person {
	private String name;  
    private String address;  
    private Integer age;
    private List<Student> list = new ArrayList<Student>();
    public Person() {  
        super();  
    }  
  
    public Person(String name, String address, Integer age) {  
        super();  
        this.name = name;  
        this.address = address;  
        this.age = age;  
    }  
  
    public String getName() {  
        return name;  
    }  
  
    public void setName(String name) {  
        this.name = name;  
    }  
  
    public String getAddress() {  
        return address;  
    }  
  
    public void setAddress(String address) {  
        this.address = address;  
    }  
  
    public Integer getAge() {  
        return age;  
    }  
  
    public void setAge(Integer age) {  
        this.age = age;  
    }

	public List<Student> getList() {
		return list;
	}

	public void setList(List<Student> list) {
		this.list = list;
	}  
    
    
    
}



package com.json.servlet;

public class Student {
	private String name;
	private int age;
	private String school;
	
	
	public Student(){
		super(); 
	}
	public Student(String name,String school,int age){
		this.name = name;
		this.school = school;
		this.age = age;
	}
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getSchool() {
		return school;
	}
	public void setSchool(String school) {
		this.school = school;
	}
	
	
}


package com.json.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.google.gson.Gson;

public class JsonServlet extends HttpServlet {
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		secondMethod(request,response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request, response);
	}

	// ======第一种方法============
	public void firstMethod(HttpServletRequest request,
			HttpServletResponse response) {
		response.setContentType("text/html");
		response.setCharacterEncoding("UTF-8");

		try {
			PrintWriter out = response.getWriter();
			// List<Person> persons = JsonService.getListPerson();//
			// 返回JsonService的数据
			List<Person> persons = new ArrayList<Person>();
			for (int i = 0; i < 5; i++) {
				Person p = new Person("张" + i + "号", "北京" + i + "号", i);
				
				
				
				persons.add(p);

			}

			StringBuffer sb = new StringBuffer();// 数据缓存
			sb.append('[');

			for (Person person : persons) {// person.getName(),person.getAddress()获得姓名,地址,一些符号转换为char
				// 锁定输出=> {"name":"姓名","address":"地址","age":年龄},
				sb.append('{').append("\"name\":").append(
						"\"" + person.getName() + "\"").append(",");
				sb.append("\"address\":").append(
						"\"" + person.getAddress() + "\"").append(",");
				sb.append("\"age\":").append(person.getAge());
				sb.append('}').append(",");
			}
			sb.deleteCharAt(sb.length() - 1);
			sb.append(']');
			out.write(new String(sb));
			out.flush();
			out.close();// 关闭

		} catch (Exception e) {
			System.out.println(e);
			e.printStackTrace();
		}
	}

	// ======第二种方法============
	public void secondMethod(HttpServletRequest request,
			HttpServletResponse response) {
		// 设置编码格式
		response.setContentType("application/json;charset=utf-8");
		response.setHeader("pargma", "no-cache");
		response.setHeader("cache-control", "no-cache");
		PrintWriter out = null;
		try {
			out = response.getWriter();
			List<Person> persons = new ArrayList<Person>();
			for (int i = 0; i < 5; i++) {
				Person p = new Person("张小胖" + i + "号", "北京昌平区" + i + "号", i);
				
				List<Student> list = new ArrayList<Student>();
				for(int j = 0;j<2;j++){
					Student mStudent = new Student("无敌小和尚","清华大学",20);
					list.add(mStudent);
				}
				p.setList(list);
				
				
				persons.add(p);
			}
			Gson gson = new Gson();
			String reslut = gson.toJson(persons);
			System.out.println("reslut:" + reslut);
			out.println(reslut);
			out.flush();
			out.close();
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

}

注意:

<一>
导包: 记得在WebRoot/WEB-INF/lib里面 放入 gson-1.6.jar

<二>
整个工程要放在tomcat下:
我的是:E:\save\My_eclipse\apache-tomcat-5.5.20\conf\server.xml
打开这个server.xml 文件 添加:
<Context path="/test1" docBase="E:\MyEclipse8.6_workspace\test1\WebRoot" reloadable="true" /> 

看清楚位置:
<Context path="/test1" docBase="E:\MyEclipse8.6_workspace\test1\WebRoot" reloadable="true" /> 
  </Host>
  </Engine>
  </Service>
  </Server>


<三>
在WebRoot/WEB-INF/web.xml里面  添加JsonServlet的声明,请看的我实例:
<?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">
  <servlet>
  	<servlet-name>JsonServlet</servlet-name>
  	<servlet-class>com.json.servlet.JsonServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>JsonServlet</servlet-name>
  	<url-pattern>/myJson.jsp</url-pattern>
  </servlet-mapping>

</web-app>



如果是从mysql数据库中读取数据然会的话,需要下面这个类:
package com.json.servlet;
import java.io.PrintWriter;  
import java.sql.*;  
import java.util.*;
public class JsonService {
	public static List<Person> getListPerson() {

		String a, b, allString = "";
		int c = 0;
		List<Person> mLists = new ArrayList<Person>();
		// List<Person> mLists = new ArrayList<Person>();
		// mLists.add(new Person("临风", "北京", 20));
		System.out.println(mLists);
		try {
			Class.forName("com.mysql.jdbc.Driver");// 链接数据库
			Connection conn = DriverManager.getConnection(
					"jdbc:mysql://127.0.0.1:3306/json", "root", "123456");
			Statement stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery("select * from people");// 遍历数据库

			Person p = null;

			while (rs.next()) {

				System.out.println(rs.getString(1) + "\t" + rs.getString(2)
						+ "\t" + rs.getInt(3));
				a = rs.getString(1);
				b = rs.getString(2);
				c = rs.getInt(3);

				mLists.add(new Person(a, b, c));// 添加到List中
			}
			System.out.println(mLists);

		} catch (Exception e) {
			System.out.println(e);
			e.printStackTrace();
			return mLists;
		}
		// finally{
		// return mLists;
		// }
		System.out.println(mLists);
		return mLists;

	}

	// 测试用主函数
	public static void main(String[] args) throws Exception {
		String str[] = null;

		JsonService con = new JsonService();
		List<Person> temp = con.getListPerson();

		// System.out.println(temp.);

		// str = temp.split(" ");
		// for(int i = 0 ; i < str.length ; i++){
		// System.out.println(str[i]);
		// }
		// System.out.println(str.length);
	}

}





  • 大小: 22.2 KB
  • 大小: 21.3 KB
分享到:
评论

相关推荐

    web项目jsp后台_servlet入门练习demo+可返回json+说明文档+数据库-android后台服务端

    web项目jsp后台_servlet入门练习demo+可返回json+说明文档+数据库。 === 可以用来做android服务端测试,也可以作为java开发入门练习。 === demo_myweb:项目目录 lxb_test.sql:数据库文件 ====== 数据库版本 mysql...

    Android studio 通过以servlet搭建的服务器访问 PC端 mysql数据库(一)服务端源代码

    总之,通过Android Studio开发的应用利用Servlet作为与PC端MySQL数据库的接口,可以实现数据的读取和写入。这个过程涉及Android的网络请求、Servlet的编程以及JDBC与MySQL的交互。理解并掌握这些技术对于构建基于...

    Tomcat+MySQL为自己的APP打造服务器(4)完结篇Demo

    在“Tomcat+MySQL为自己的APP打造服务器(4)完结篇Demo”中,我们重点关注的是实际的示例代码,涵盖了Android客户端与服务端的交互过程。以下是对这个项目的详细解析: 首先,Tomcat是Apache软件基金会的一个开源...

    android通过连接服务器验证实现登录的demo

    这个“android通过连接服务器验证实现登录的demo”就是一个很好的实例,展示了如何利用Android客户端、JSP、Servlet、Tomcat服务器以及MySQL数据库协同工作,完成用户的登录验证。 首先,我们来看Android客户端部分...

    酒店点餐系统(带客户端服务端数据库)

    【酒店点餐系统】是一个基于网络的餐饮管理系统,它整合了客户端、服务器端以及数据库三大部分,以实现高效、便捷的点餐流程。系统通常由前端界面、后端服务器处理和数据库存储三个主要组成部分。 【JSP(Java...

    口袋微博for android源码

    此项目不仅提供了客户端的代码,还涉及到服务端的架构,包括了jsp、tomcat服务器和mysql数据库的交互。下面将详细探讨这个项目中涉及的IT知识点。 1. **Android开发**: - **Android SDK**: 是开发Android应用的...

    Ajax学习:MySQL + Tomcat + ajax

    本教程将深入探讨如何结合MySQL数据库和Tomcat服务器来实现Ajax的应用。 **一、Ajax基础** Ajax的核心是JavaScript,它利用XMLHttpRequest对象与服务器进行异步通信。通过创建XMLHttpRequest实例,设置请求方法...

    基于Android和Java Web的学生公寓智能报修系统设计.pdf

    系统使用Tomcat作为Web服务器,Java Web作为主要的开发语言,MySQL社区版作为数据库,移动端采用Android Studio进行开发,并通过Volley与JSON实现移动端与服务端的数据交互。 综上所述,该系统通过整合现代Web开发...

    仿QQ聊天安卓APP

    在【压缩包子文件的文件名称列表】中,"仿QQ聊天安卓APP(服务器+客户端)"这一条目暗示了压缩包内包含了服务器端和客户端的全部源代码和资源文件。客户端代码可能包括Activity(应用组件)、布局文件(XML描述UI)...

    android连接服务器实现登录的demo

    本教程将详述如何使用Android客户端、JSP、Servlet、Tomcat服务器和MySQL数据库来实现一个登录功能的DEMO。 首先,我们要理解Android客户端的角色。在Android应用中,通常会创建一个Activity或Fragment作为登录界面...

    毕业设计管理系统java服务端,采用spring mvc.zip

    - JSON:数据交换格式,用于客户端与服务器之间的通信。 - JWT:JSON Web Token,用于安全的身份验证和授权。 - JWT-Spring-Security:整合JWT与Spring Security进行权限控制。 【开发环境】 开发者可能使用...

    基于springboot的摄影网站源码数据库.doc

    项目采用了当前流行的前后端分离架构,前端通过JSP技术实现用户界面,后端则利用SpringBoot框架结合Mysql数据库来完成业务逻辑处理及数据存储。本文将详细介绍系统的架构设计、关键技术选型、核心功能模块等内容。 ...

    太原理工大学javawebusic-mai开发笔记

    4. **数据库交互**:JavaWeb项目通常需要与数据库进行交互,如MySQL、Oracle等。这涉及到了JDBC(Java Database Connectivity)技术,通过JDBC API,开发者可以连接数据库,执行SQL语句,处理查询结果,实现数据的增...

    基于springboot的新闻推荐系统源码数据库.doc

    ### 基于Spring Boot的新闻推荐系统源码数据库知识点解析 #### 一、项目背景与概述 在当今数字化时代,随着互联网技术的迅速发展,尤其是移动互联网的普及,人们获取信息的方式发生了巨大变化。越来越多的企业意识...

    基于JavaWeb的健康管理系统源码+数据库

    4. **前后端交互**:前端可能使用HTML、CSS和JavaScript构建,与后端通过Ajax或Fetch API进行异步通信,实现页面的动态更新。此外,可能还用到了jQuery、Bootstrap等前端框架,提高开发效率和用户体验。 5. **数据...

    java毕业设计&课设-商品供销系统(视频+源码+资料).doc

    3. **部署**: 将打包后的war文件上传至服务器,使用Tomcat部署。 4. **域名绑定**: 若有需要,可购买域名并进行域名绑定。 5. **测试**: 在浏览器中输入地址进行访问测试。 #### 七、常见问题及解决方案 1. **...

    基于Springboot+vue的餐饮管理系统源码数据库.zip

    在这个系统中,Java编写的服务端代码用于处理业务逻辑,与数据库交互,以及提供API接口供前端调用。 3. **SSM**: SSM是Spring、SpringMVC和MyBatis的组合,是Java Web开发中的经典架构。虽然本系统直接使用了...

Global site tag (gtag.js) - Google Analytics