androidstudio 通过webservice访问sqlserver 求教! 创建了一个webservice 运行正常如 就写了一条简单的
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了androidstudio 通过webservice访问sqlserver 求教! 创建了一个webservice 运行正常如 就写了一条简单的相关的知识,希望对你有一定的参考价值。
查询。public List<string> selectAllCargoInfor() List<string> list = new List<string>(); try SqlConnection conn = new SqlConnection(con); conn.Open(); string sql = "select * from C"; SqlCommand cmd = new SqlCommand(sql, conn); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) //将结果集信息添加到返回向量中 list.Add(reader[0].ToString()); list.Add(reader[1].ToString()); list.Add(reader[2].ToString()); reader.Close(); cmd.Dispose(); catch (Exception) return list; 就是返回的是list。 图可以看到是正常的。 现在我新建一个项目,就一个MainActivity,只有一个按钮一个listView,这个按钮里面要怎么写,才能显示webservice的内容呢。。。求教万分感谢
参考技术A 建议 其实,不如使用json的方式,更实际 。。。。。~java webserver-反射webxml
思路:通过解析xml将各个类存入容器内,然后通过map存放各个标签的内容,通过url-pattern的内容找到servlet-name,通过servlet-name的内容,找到对应的类servlet-class,然后通过servlet-class内的内容(包名.类名)反射得到对应的类,然后输出
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<servlet>
<servlet-name>login</servlet-name>
<servlet-class>hello.RegisterServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>reg</servlet-name>
<servlet-class>hello.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/login</url-pattern>
<url-pattern>/g</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>reg</servlet-name>
<url-pattern>/reg</url-pattern>
</servlet-mapping>
</web-app>
xml:
public class xmll
public static void main(String[] args) throws Exception
//SAX解析
//1、获取解析工厂
SAXParserFactory factory=SAXParserFactory.newInstance();
//2、从解析工厂获取解析器
SAXParser parse =factory.newSAXParser();
//3、编写处理器
//4、加载文档 Document 注册处理器
WebHandler handler=new WebHandler();
//5、解析
parse.parse(Thread.currentThread().getContextClassLoader()
.getResourceAsStream("hello\\web.xml")
,handler);
//获取数据
WebContext context=new WebContext(handler.getEntitys(),handler.getMappings());
//假设你输入了 /login
String className=context.getClz("/login");
//反射
Class clz=Class.forName(className); //className返回的是servlet-class的内容,即包名.类名
Servlet servlet=(Servlet)clz.getConstructor().newInstance();
servlet.service();
class WebHandler extends DefaultHandler
private List<Entity> entitys = new ArrayList<Entity>();
private List<Mapping> mappings = new ArrayList<Mapping>();
private Entity entity ;
private Mapping mapping ;
private String tag; //存储操作标签
private boolean isMapping = false;
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException
if(null!=qName)
tag = qName; //存储标签名
if(tag.equals("servlet"))
entity = new Entity();
isMapping = false;
else if(tag.equals("servlet-mapping"))
mapping = new Mapping();
isMapping = true;
@Override
public void characters(char[] ch, int start, int length) throws SAXException
String contents = new String(ch,start,length).trim();
if(null!=tag) //处理了空
if(isMapping) //操作servlet-mapping
if(tag.equals("servlet-name"))
mapping.setName(contents);
else if(tag.equals("url-pattern"))
mapping.addPattern(contents); //添加的是url对应的内容,不是标签,并且内容不能相同
//因为一个类有多个url的内容,所以加入集合,要不然要两个变量来保存,且这两个url都是对应的一个name一个class
else //操作servlet
if(tag.equals("servlet-name"))
entity.setName(contents);
else if(tag.equals("servlet-class"))
entity.setClz(contents);
@Override
public void endElement(String uri, String localName, String qName) throws SAXException
if(null!=qName)
if(qName.equals("servlet"))
entitys.add(entity);
else if(qName.equals("servlet-mapping"))
mappings.add(mapping);
tag = null; //tag丢弃了
public List<Entity> getEntitys()
return entitys;
public List<Mapping> getMappings()
return mappings;
webContext:
public class WebContext
private List<Entity> entitys=null;
private List<Mapping> mappings=null;
//key:servlet-name value:servlet-class
private Map<String,String> entityMap=new HashMap<String,String>();
//key:url-pattern value :servlet-name
private Map<String,String> mappingMap=new HashMap<String,String>();
public WebContext(List<Entity> entitys,List<Mapping> mappings)
this.entitys=entitys;
this.mappings=mappings;
for(Entity entity:entitys)
entityMap.put(entity.getName(), entity.getClz());
for(Mapping mapping:mappings)
for(String pattern:mapping.getPatterns())
mappingMap.put(pattern, mapping.getName());
public String getClz(String pattern)
String name=mappingMap.get(pattern);
return entityMap.get(name);
Servlet:
public interface Servlet
void service();
LoginServlet:
public class LoginServlet implements Servlet
public void service()
System.out.println("LoginServlet");
RegisterServlet:
public class RegisterServlet implements Servlet
public void service()
System.out.println("RegisterServlet");
以上是关于androidstudio 通过webservice访问sqlserver 求教! 创建了一个webservice 运行正常如 就写了一条简单的的主要内容,如果未能解决你的问题,请参考以下文章
具有相同域名的 Webserver 和 Cloudfront 分发