Android客户端与J2EE服务器的互联

Android客户端

LoginActivity.java:

//给Servlet传值:

package com.activity;

import java.io.BufferedReader;

import java.io.DataOutputStream;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.net.HttpURLConnection;

import java.net.URL;

import java.net.URLEncoder;

import org.apache.http.protocol.HttpContext;

import android.app.Activity;

import android.app.AlertDialog;

import android.app.AlertDialog.Builder;

import android.content.DialogInterface;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

public class LoginActivity extends Activity {

//声明Button实例

private Button btnCancel,btnLogin;

private EditText userEditText,pwdEditText;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.http1);

btnCancel=(Button)findViewById(R.id.cancelButton);

btnLogin=(Button)findViewById(R.id.loginButton);

userEditText=(EditText)findViewById(R.id.userEditText);

pwdEditText=(EditText)findViewById(R.id.pwdEditText);

//绑定监听事件

btnLogin.setOnClickListener(new ButtonConfirm());

btnCancel.setOnClickListener(new ButtonCancel());

}

/**

 * 用以显示对话框

 */

private void showDialog(String msg){

AlertDialog.Builder builder=new Builder(LoginActivity.this);

builder.setMessage(msg)

   .setCancelable(false)

   .setPositiveButton("确定", new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int id) {

}

});

AlertDialog alert=builder.create();

alert.show();

}

/**

 * 取消

 */

class ButtonCancel implements OnClickListener{

@Override

public void onClick(View arg0) {

finish();

}

}

/**

 * 登陆

 */

class ButtonConfirm implements OnClickListener{

@Override

public void onClick(View v) {

//获取用户名和密码

String userName=userEditText.getText().toString();

String pwd=pwdEditText.getText().toString();

//登陆

login(userName,pwd);

}

}

//通过用户名密码查询,发送Post请求,获取结果

protected void login(String username,String password){

System.out.println("username="+username+" password="+password);

//请求URL

String urlStr="http://10.0.2.2:8080/Network/servlet/LoginServlet";

//获得的数据

String resultData="";

try{

//实例化uRl

URL url=new URL(urlStr);

//获得HttpConnection连接实例

HttpURLConnection conn=(HttpURLConnection)url.openConnection();

/************************此段代码去掉然后将urlStr后面加上?username=..**参数的话就可以直接成为Get传值***************/

//因为这个是post请求,需要设置为true

conn.setDoOutput(true);

conn.setDoInput(true);

//设置以Post方式

conn.setRequestMethod("POST");

//Post请求不能使用缓存

conn.setUseCaches(false);

conn.setInstanceFollowRedirects(true);

//配置本次连接的Content-type,配置为application/x-www.form-urlencoded

conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

DataOutputStream out=new DataOutputStream(conn.getOutputStream());

//上传的参数

String content="username="+URLEncoder.encode(username,"gb2312")+"&password="+password;

System.out.println("conent--->"+"username="+URLEncoder.encode(username,"gb2312")+"&password="+password);

//写入流中

out.writeBytes(content);

//刷新,关闭

out.flush();

out.close();

/*****************************************************************/ 

BufferedReader buffer=new BufferedReader(new InputStreamReader(conn.getInputStream()));

String inputLine=null;

while((inputLine=buffer.readLine())!=null){

resultData+=inputLine+" ";

}

System.out.println("resultData--->"+resultData.toString().trim());

Toast.makeText(LoginActivity.this, "登陆成功!!!"+resultData, 10000).show();

showDialog(resultData);

//断开连接

conn.disconnect();

}catch(Exception e){

showDialog(e.getMessage());

}

}

}


 

AndroidManifest.xml:

 <uses-permission android:name="android.permission.INTERNET"></uses-permission>

http1.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:orientation="vertical" >

    <TableLayout

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:stretchColumns="1" >

        <TableRow >

            <TextView

                android:id="@+id/textView"

                android:layout_width="wrap_content"

                android:layout_height="wrap_content"

                android:text="用户名称" />

            <EditText

                android:id="@+id/userEditText"

                android:layout_width="fill_parent"

                android:layout_height="wrap_content"

                android:text="" />

        </TableRow>

        <TableRow >

            <TextView

                android:id="@+id/textView"

                android:layout_width="wrap_content"

                android:layout_height="wrap_content"

                android:text="密码" />

            <EditText

                android:id="@+id/pwdEditText"

                android:layout_width="fill_parent"

                android:layout_height="wrap_content"

                android:password="true"

                android:text="" />

        </TableRow>

        <TableRow android:gravity="right" >

            <Button

                android:id="@+id/cancelButton"

                android:layout_width="wrap_content"

                android:layout_height="wrap_content"

                android:text="取消" />

            <Button

                android:id="@+id/loginButton"

                android:layout_width="wrap_content"

                android:layout_height="wrap_content"

                android:text="登陆" />

        </TableRow>

    </TableLayout>

</LinearLayout>



J2EE网络端

LoginServlet.java

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class LoginServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

System.out.println("22222222222222");

//获取用户名和密码

String username=request.getParameter("username");

String password=request.getParameter("password");

System.out.println("username="+username+" password="+password);

//设置类型

response.setContentType("text/html");

//设置字符编码集

response.setCharacterEncoding("utf-8");

//获取打印输出流 

PrintWriter out=response.getWriter();

String msg=null;

if(username.equals("a")&&password.equals("1")){

msg="登陆成功";

}else{

msg="登陆失败";

}

//返回给客户端

out.print(msg);

out.flush();

out.close();

}

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doGet(request,response);

}

}


 

Web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 

http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<servlet>

<description>

This is the description of my J2EE component

</description>

<display-name>

This is the display name of my J2EE component

</display-name>

<servlet-name>LoginServlet</servlet-name>

<servlet-class>LoginServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>LoginServlet</servlet-name>

<url-pattern>/servlet/LoginServlet</url-pattern>

</servlet-mapping>

<welcome-file-list>

<welcome-file>index.jsp</welcome-file>

</welcome-file-list>

</web-app>


 

经过两天的测试终于成功了!~~呵呵 小有收获!~但是想了解HTTP协议底层,还得深入去学习才行。今天任务到此结束!~继续我的网络日记本的开发!~~
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值