一、在上一篇文章中,我只是提到了其中一种方法来实现登陆

大家可以参见:

http://www.apkbus.com/android-45004-1-1.html android获取web服务器端session并验证登陆

http://blog.csdn.net/cainiao123hack/article/details/8255848 服务器端向Android客户端传值——登录实现

http://zhidao.baidu.com/link?url=8g9EWhyUkUgUr1dh3_tEmmJgBcVLVVVJLtDrk_hJBm_-3n-SSBSItPdo1kjlC8MbeWyaK_fhgISCJbwGF4wQIa

请问如何写一个java 服务器端的servlet,然后可以当客户端发出http请求的时候,可以接受请求,读取数据库

二、一些代码的讲解:

什么是servlet:一个小的,具有平台无关性,没有图形用户界面的java程序,他可以在很多方面扩充web服务的功能。

HttpServlet 类 :

参考文献:http://blog.csdn.net/jay198746/article/details/4489571

http://www.cnblogs.com/amboyna/archive/2007/09/18/897101.html Java学习之Servlet-doGet()与doPost()

提供了一个处理 HTTP 协议的框架。
在这个类中的 service 方法支持例如 GET、POST 这样的标准的 HTTP 方法。这一支持
过程是通过分配他们到适当的方法(例如 doGet、doPost)来实现的。

doGet方法:被这个类的service方法调用,用来处理一个HTTP GET操作。这个操作允许客户端简单的从一个HTTP服务器获得资源。对这个方法的重载将自动支持HEAD方法。安全的方法。

doPost方法:被service方法调用,用来处理一个HTTP POST操作。这个操作包含请求的数据体,servlet应该按照此行事。此操作可能是负面的操作。

三、客户端与服务器端的数据传递

相对于客户端的post与get方法,其都有数据传递,都在request于response当中。我们通过ServiceInputStream与ServiceOutputStream类来实现数据的共享。

参考文献: http://bbs.csdn.net/topics/370118463 servlet服务器端如何向客户端返回数据

1、客户端发出http请求,服务器端接受请求,进行响应,然后读取数据库。

2、在客户端:利用内置对象requst获取数据,并传至服务器端。

put 与 getparameter是一对 ; setAtribute与getAttibute是一对。

服务器端:我们除了用response返回数据外,也可以用request返回数据。将封装好的对象放到requets.session中,直接用它们的setAtributer (“key”,"value");然后,在客户端:我们用request.getAttibute来获取数据。

int i=10;
把数据放到Servlet请求的属性中
request.setAttribute("i",i);
转发到客户端
request.getRequestdispatcher("url").forward(request,response);
在转发到的页面用request.getAttribute(i)取出来..记得类型转换

在服务器端:利用内置对象response获取数据,并传至客户端。与之对应方法中的response。

eg: response.getOutStream(); PrintWrite pw = response.getPrintWrite();

pw.out(“你想要传到客户端的数据”);

response这个对象就是用来响应的呀!
response.getOutputSteam().write("写数据");
response.flushBuffer()这样就可以发往数据到客户端了呀!

当然,假如我们只想知道返回的标识,而不想要数据,那么我们通过标识码来判断

服务器端代码:

if (userlist != null) {
resp.setStatus(200);
} else {
resp.sendError(345, "用户名密码不正确!");

写在了resp当中。

在客户端代码:

    httpClient.post("http://192.168.1.106:8080/login", param,                new BaseJsonHttpResponseHandler<Object>() {                    @Override                    public void onSuccess(int statusCode, Header[] headers,                            String rawJsonResponse, Object response) {                        Log.d(TAG, rawJsonResponse);                        Intent intent = new Intent(LoginActivity.this,                                BMapApiDemoMain.class);                        LoginActivity.this.startActivity(intent);                        finish();                    }

根据我们传递过来的标识码的值(statusCode),就知道到底是进入到onSuccess还是onFailure方法中。然后,在这些方法中选择我们所要进行的操作。

四、mybatis当中resultMap等的作用:

参考文献:http://zhuyuehua.iteye.com/blog/1721715

 <mapper  namespace="zhuxuekui.data.UserlistMapper">                <resultMap id="userResultMap"  type="Userlist">            <result property="username" column="username"></result>            <result property="passward" column="passward"></result>        </resultMap>                        <select id="selectUserlist"  parameterType="Map"            resultMap="userResultMap">            select  * from userlist                 where username = #{username}  and passward = #{passward}        </select>          </mapper>

<mapper></mapper>映射标签

<resultMap id =”与类名相关的id名” type =”类名”/> id 与下面的select中的resultMap一一对应,type后面是一个类名。通过id找到此类。

下面全是 此类的一些属性名用<result property=”” column=””/> 最好是一一对应

其中:property为你自己建立的类当中的属性,column是你自己建立的数据库当中的字段名。

<select id = “函数名” xxxxxxxx \>

paremeterType这个为selectUserlist函数的参数类型,假如只有一个参数,我们可以写string或int等。但假如有多个参数,需要封装在Map里面。

<!-- 查询, 1.输入用map传入多个参数 2.<where>语句, 智能添加where和and关键字 3.输出直接映射对象 -->    <select id="findAll" resultMap="navigations" parameterType="map" >        select * from s_navigation        <where>            <if test="portletid != null">                portletid=#{portletid}            </if>            <if test="uuid != null">                and uuid=#{uuid}            </if>            <if test="uuid != null and portletid != null">                and isshow=1            </if>        </where>    </select>

更多相关文章

  1. [图解]Android源码分析——Service的启动和绑定过程
  2. Android手机客户端与Servlet交换数据(by quqi99)
  3. 修改android项目sdk版本的方法
  4. Android中文API(128) —— HandlerThread
  5. Android(安卓)布局加载源代码分析
  6. 浅谈Java中Collections.sort对List排序的两种方法
  7. mybatisplus的坑 insert标签insert into select无参数问题的解决
  8. python起点网月票榜字体反爬案例
  9. Python list sort方法的具体使用

随机推荐

  1. Android(安卓)VectorDrawable与SVG
  2. 【Android】android按钮的四种点击事件
  3. Android静态,动态广播示例
  4. android:windowSoftInputMode用法
  5. [Android] 环境配置之Android(安卓)Studi
  6. android layout布局属性
  7. Android学习笔记之mainfest文件中android
  8. android布局属性详解
  9. spring android 编译环境搭建
  10. Android笔记: Android版本号