• Android提交数据到JavaWeb服务器实现登录


    之前学习Android提交数据到php服务器没有成功,在看了两三个星期的视频之后,现在终于实现了与服务器的交互。虽然完成的不是PHP端的,但是在这个过程还是学到了不少东西的。现在我先来展示一下我的成果图。

    思想是:服务器端模拟数据库中存在一条数据为:username=123,password=123的用户。如果Android端提交的数据是用户名和密码都为123的数据。就返回成功,否则就返回失败。

    由于看的关于教程的视频都是跟javaweb进行交互,所以自己就尝试着搭建了javaweb服务器。在这个过程中,遇到了几个问题:

    一、tomcat与javaweb的位数不一致,32位的javaweb不能在64位的tomcat上面运行。

    二、tomcat默认的端口号是8080.但是运行的时候此端口被占用。所以就在web.xml文件中更改了端口号。

    解决了javaweb上面的问题就是写一个接口给Android端。

    先创建一个web工程,然后创建一个Servlet。

    package com.itcast.Login;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class Login extends HttpServlet {
    	private static final long serialVersionUID = 1L;
    	public Login(){
    		super();
    	}
    	
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		String username = request.getParameter("username");
    		String password = request.getParameter("password");
    		System.out.println("QQ号:"+username);
    		System.out.println("密码:"+password);
    		if ("123".equals(username)&&"123".equals(password)) {
    			System.out.println("登录成功");
    			response.getOutputStream().write("登录成功".getBytes("utf-8"));
    			
    		}else {
    			System.out.println("登录失败");
    			response.getOutputStream().write("登录失败".getBytes("utf-8"));
    			
    		}
    		
    	}
    
    	
    	public void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		doGet(request, response);
    		
    	}
    
    }
    

      然后利用get方式访问服务器得到的结果是:

    Android端的代码为:

    package com.itheima.login;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.ProtocolException;
    import java.net.URL;
    import java.net.URLEncoder;
    
    public class LoginService {
        public static String loginByPost(String username,String password){    
            try {
                String path = "http://192.168.1.101:8090/Java/servlet/Login";
                URL url = new URL(path);
                HttpURLConnection conn =  (HttpURLConnection) url.openConnection();
                conn.setConnectTimeout(5000);
                conn.setRequestMethod("POST");
                String data = "username="+URLEncoder.encode(username)+"&password="
                        +URLEncoder.encode(password);
                System.out.println(data);
                conn.setRequestProperty("Content=Type", "application/x-wwww-form-urlencoded");
                conn.setRequestProperty("Content-length", data.length()+"");
                conn.setDoOutput(true);
                OutputStream os = conn.getOutputStream();
                os.write(data.getBytes());
                int code = conn.getResponseCode();
                System.out.println(code);
                if (code == 200) {
                    InputStream is = conn.getInputStream();
                    String text = StreamTools.readInputStream(is);
                    return text;
                }else {
                    return null;
                }
                
            } catch (MalformedURLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                System.out.println("111111");
            } catch (ProtocolException e) {
                System.out.println("222222");
                e.printStackTrace();
            } catch (IOException e) {
                System.out.println("33333");
                e.printStackTrace();
            }
            return null;
        }
    }

    运行的结果为:

  • 相关阅读:
    python中的split、rsplit、splitlines
    docker 启动,端口映射,挂载本地目录
    pycharm18.2.4 + Python3.7.1 安装salt报错python pip install salt: Command "python setup.py egg_info" failed with error code 10 及解决方法
    Dockerfile 下安装Python3.7.4 环境命令
    linux项目部署学习(5)
    linux环境下安装selenium(python3)
    linux项目部署学习(4)
    linux项目部署学习(3) -nginx/发布crm
    linux项目部署学习(2)
    nginx语法之location详解
  • 原文地址:https://www.cnblogs.com/kangyaping/p/5565077.html
Copyright © 2020-2023  润新知