将Post方法中的数据从Android客户端发送到Java Servlet

时间:2013-05-06 07:04:58

标签: android http servlets http-post httpresponse

我使用java android实现客户端服务器代码。问题是我无法连接到servlet。我的问题在哪里?这是我的代码:

安卓代码: ....

HttpClient client=new DefaultHttpClient();
HttpPost getMethod=new HttpPost("http://" + Server + "/RestaurantServer/Login");

try {
    // Add your data
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(3);
nameValuePairs.add(new BasicNameValuePair("Mode", "Login"));
nameValuePairs.add(new BasicNameValuePair("userName",txtusername.getText().toString() ));
    nameValuePairs.add(new BasicNameValuePair("password",txtpassword.getText().toString() ));

    getMethod.setEntity(new UrlEncodedFormEntity(nameValuePairs));
    client.execute(getMethod);

} catch (ClientProtocolException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

和服务器端:

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();

    try {
        String mode=request.getParameter("Mode");
        if ("Login".equals(mode)) {
            String userName= request.getParameter("userName");
            String password= request.getParameter("password");
            System.out.println("post method: "+userName + "! pass :"+password);
            user = new User(password,userName);
            if (UserDao.authenticate(user)==true)
                out.write("Accept".toString());
            else
                out.write("Wrong".toString());
        } else if ("Register".equals(mode)) {
            String userName= request.getParameter("userName");
            String password= request.getParameter("password");
            String name= request.getParameter("name");
            String email= request.getParameter("email");
            String address= request.getParameter("address");
            String phoneNumber= request.getParameter("phoneNumber");
            System.out.println("reg mod: "+userName + "! pass :"+password);
            user = new User(userName,password,name,email,address, phoneNumber);

            if (UserDao.addUser(user) == true)
                out.write("Added");
            else
                out.write("NotAdded");
        }
    } catch (Exception ex) {
        System.out.println("Problem in message reading");
    }
}

1 个答案:

答案 0 :(得分:1)

将方法名称从processRequest()更改为doPost()并检查web.xml中的映射。可能是Servlet和URL映射不正确。发送web.xml和Servlet名称。

相关问题