说明:此程序为简单的登录案例 用户名为abc 密码为123 输入正确登陆成功,输入错误登录失败。
服务器代码:使用的时候首先开启tomcat服务器
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class loginServit
*/
@WebServlet("/loginServit")
public class loginServit extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public loginServit() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//response.getWriter().append("Served at: ").append(request.getContextPath());
//获取用户名和密码
String username = request.getParameter("username").trim();
String password = request.getParameter("password").trim();
//先解决中文问题
//判断账号和密码是否为空
if(username==null||username.length()==0||password==null||password.length()==0){
return;
}else{
if("abc".equals(username)&&"123".equals(password)){
response.setContentType("text/html;charset=utf-8");
response.getWriter().print("登陆成功");
}else{
response.getWriter().print("login fail".getBytes());
}
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
get方式提交参数
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
// 设置一个路径
private String path = "http://10.0.2.2:8080/day10_login/loginServit";
private EditText et_username;
private EditText et_password;
// Button bt_login;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_username = (EditText) findViewById(R.id.et_password);
et_password = (EditText) findViewById(R.id.et_username);
//bt_login = (Button) findViewById(R.id.bt_login);
}
public void login(View v) {
new Thread() {
public void run() {
// 获取输入的账号和密码
String username = et_username.getText().toString().trim();
String password = et_password.getText().toString().trim();
String address = path + "?username=" + username + "&password="
+ password;
try {
URL uri = new URL(address);
HttpURLConnection openConnection = (HttpURLConnection) uri
.openConnection();
// 设置请求方式
openConnection.setRequestMethod("GET");
// 设置请求超时的是金
openConnection.setConnectTimeout(10000);
// 获取响应吗
int code = openConnection.getResponseCode();
// 判断响应吗状态
if (code == 200) {
// 获取输入流
InputStream inputStream = openConnection
.getInputStream();
// 将读取的东西转换为字符串
String result = Utils.getString(inputStream);
showToast(result);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
};
}.start();
}
public void showToast(final String result) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), result,
Toast.LENGTH_SHORT).show();
}
});
}
}
utils工具类代码:
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
public class Utils {
public static String getString(InputStream inputStream) throws Exception {
//创建数组输出流
ByteArrayOutputStream bos = new ByteArrayOutputStream();
//读取数据
int len = 0;
byte[] bys = new byte[1024];
while((len = inputStream.read(bys))!=-1){
bos.write(bys,0,len);
}
//释放资源
inputStream.close();
//转换为字符串
byte[] byteArray = bos.toByteArray();
//转换为字符串
String result = new String(byteArray);
return result;
}
}
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
public class Utils {
public static String getString(InputStream inputStream) throws Exception {
//创建数组输出流
ByteArrayOutputStream bos = new ByteArrayOutputStream();
//读取数据
int len = 0;
byte[] bys = new byte[1024];
while((len = inputStream.read(bys))!=-1){
bos.write(bys,0,len);
}
//释放资源
inputStream.close();
//转换为字符串
byte[] byteArray = bos.toByteArray();
//转换为字符串
String result = new String(byteArray);
return result;
}
}
post方式提交数据:
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
private EditText et_username;
private EditText et_password;
private Button bt_login;
private String path="http://10.0.2.2:8080/day10_login/loginServit";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_username = (EditText) findViewById(R.id.et_username);
et_password = (EditText) findViewById(R.id.et_password);
bt_login = (Button) findViewById(R.id.bt_login);
//给按钮设置监听事件
bt_login.setOnClickListener(new MyOnclickListener());
}
public class MyOnclickListener implements OnClickListener{
@Override
public void onClick(View v) {
//创建子线程,并启动
new Thread(){
public void run() {
//获取输入的账号和密码
String username = et_username.getText().toString().trim();
String password = et_password.getText().toString().trim();
//设置参数
String params = "username="+username+"&password="+password;
//设置网络
try {
URL url = new URL(path);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
//设置请求的方式
connection.setRequestMethod("POST");
//设置请求超时事件
connection.setConnectTimeout(10000);
//设置两个请求头
connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
//告诉服务器传递数据的长度
connection.setRequestProperty("Content-Length", String.valueOf(params.length()));
//打开输出流
connection.setDoOutput(true);
//通过流把数据写到服务端
connection.getOutputStream().write(params.getBytes());
//获取响应吗
int code = connection.getResponseCode();
//判断响应吗的状态
if(code==200){
InputStream inputStream = connection.getInputStream();
String result = Utils.getString(inputStream);
showToast(result);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
};
}.start();
}
}
public void showToast(final String result){
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), result, Toast.LENGTH_SHORT).show();
}
});
}
}
工具类代码相同。