使用Http协议实现安卓与服务器端的通信
HttpHttp 实现实现 AndroidAndroid 与与 strutsstruts 服务端通信服务端通信 ————androidandroid 实现登录为例实现登录为例 1 1、开发环境的主要配置、开发环境的主要配置 服务器端服务器端: : Struts2+Hibernate3.1+Spring3.2 架构,主要是 MyEclipse 环境下的 Struts 架 构配置,服务器 Tomcat7x。 几个必须 jar 包 ezmorph-1.0.6.jar commons-lang 2.4 commons-beanutils 1.7.0 commons-collections 3.2 commons-logging 1.1.1 AndroidAndroid 端:端: 4.4 版本,采用 http 协议、json 参数通信, PS:PS:androidandroid 通过通过 strutsstruts 服务端的服务端的 actionaction 调用,使用独立的调用,使用独立的 jsonjson 返回类型返回类型 来进行数据的交换,因为来进行数据的交换,因为 structs2structs2 中数据是通过表单直接和中数据是通过表单直接和 actionaction 进行绑定的进行绑定的, , 所以不能直接调用所以不能直接调用 webweb 前端写好的前端写好的 actionaction 进行调用。进行调用。 2 2、服务端实现、服务端实现 2.12.1 对对 strutsstruts 进行配置,在进行配置,在 web.xmlweb.xml 文件中进行配置文件中进行配置 struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndcuteFilter struts2 /* 2.22.2 实现登录验证类和数据库操作实现登录验证类和数据库操作 DAODAO 类类 (1)(1) 定义定义 DAODAO公共接口类公共接口类 package com.wyjksys.dao; import java.util.List; import com.wyjksys.entity.TStudent; public interface IStuDao { TStudent get(int id); boolean save(TStudent user); boolean delete(TStudent user); boolean update(TStudent user); public abstract ListfindByName(String name); } (2)(2) 定义定义 DAODAO基类基类 package com.wyjksys.dao.impl; import javax.annotation.Resource; import org.hibernate.SessionFactory; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; public class BaseDao extendsHibernateDaoSupport { @Resource public void setSessionFactoryOverride(SessionFactory sessionFactory) { super.setSessionFactory(sessionFactory); } } (3) DAO(3) DAO 具体实现类具体实现类 package com.wyjksys.dao.impl; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import org.springframework.stereotype.Repository; import com.wyjksys.dao.IStuDao; import com.wyjksys.entity.TStudent; @Repository public class StuDaoImplextends BaseDao implements IStuDao { public TStudent get(int userid){ return this.getHibernateTemplate().get(TStudent.class, userid); } public boolean save(TStudent user){ try{ this.getHibernateTemplate().save(user); return true; }catch(RuntimeException re){ throw re; } } public boolean delete(TStudent user){ try{ Sessionsession=this.getSession(); String hql = “delete from TStudent where account = ? and password= ?“; Query query = session.createQuery(hql); query.setString(0, user.getAccount()); query.setString(1, user.getPassword()); query.cuteUpdate(); session.close(); return true; }catch(RuntimeException re){ throw re; } } public boolean update(TStudent user){ try{ Sessionsession=this.getSession(); String hql = “update TStudent set password=? where account = ? “; Query query = session.createQuery(hql); query.setString(0, user.getPassword()); query.setString(1, user.getAccount()); query.cuteUpdate(); session.close(); return true; }catch(RuntimeException re){ throw re; } } @SuppressWarnings(“unchecked“) public List findByName(String name){ try{ return(List)this.getHibernateTemplate().find(“from TStudent where account=?“,name); }catch(RuntimeException re){ throw re; } } } (4)(4) 定义登录验证类