Java J2EE与httppostservlet

Java J2EE与httppostservlet,java,angular,typescript,servlets,ionic2,Java,Angular,Typescript,Servlets,Ionic2,我在谷歌上搜索了很多,尝试了所有主要针对PHP的解决方案,但都不起作用。我试图将POST参数发送到J2EEServlet,但servlet并没有接收到参数,尽管我是通过附加URL(GET)来发送参数,以便能够接收数据 这是密码 import { Component } from '@angular/core'; import { IonicPage, NavController, NavParams } from 'ionic-angular'; import { Http,

我在谷歌上搜索了很多,尝试了所有主要针对PHP的解决方案,但都不起作用。我试图将POST参数发送到J2EEServlet,但servlet并没有接收到参数,尽管我是通过附加URL(GET)来发送参数,以便能够接收数据

这是密码

   import { Component } from '@angular/core';
   import { IonicPage, NavController, NavParams } from 'ionic-angular';
   import { Http, Headers, RequestOptions } from '@angular/http';
   import 'rxjs/Rx';
   @IonicPage()
   @Component({
  selector: 'page-login',
  templateUrl: 'login.html',
 })
export class LoginPage {
 userName: string;
password: string;

constructor(public navCtrl: NavController, public navParams: NavParams, 
public http: Http) {
 }

login() {

var headers = new Headers({ 'Content-Type': 'application/json' });

let options = new RequestOptions({ headers: headers });
let devicecode = '1-001-001-009-1';

let postParams = {
  loginid: this.userName,
  password: this.password,
  devicecode: devicecode
}

this.http.post("http://localhost:8092/OCWebService/LoginOSO", postParams
  , options)
  .subscribe(data => {
    console.log(data);
    alert(data);
  }, error => {
    console.log(error);// Error getting the data
  });


    }

   }
以下是Servlet代码:

  protected void processRequest(HttpServletRequest request, 
  HttpServletResponse response)
        throws ServletException, IOException {
    response.setHeader("Access-Control-Allow-Origin", "*");
    response.setHeader("Access-Control-Allow-Credentials", "true");
    response.setHeader("Access-Control-Allow-Methods", "GET,PUT,POST,DELETE");
    response.setContentType("text/html;charset=UTF-8");    

        BufferedReader bf = request.getReader();
        String userName = request.getParameter("loginid");
        String password = request.getParameter("password");
        String deviceCode = request.getParameter("devicecode");
      }
注意:我是离子2的新手。

参数(
request.getParameter()
)仅用于
应用程序/x-www-form-urlencoded
数据或参数。您正在发送JSON

为了解决这个问题,您可以从请求输入流中提取JSON,或者自己解析它。为此,您需要使用类似Jackson的库。比如说

 InputStream in = request.getInputStream();
 MyPojo pojo = new ObjectMapper().readValue(in, MyPojo.class);

ObjectMapper
是一个Jackson类。

您应该发布servlet代码的堆栈跟踪谢谢。工作得很有魅力!我使用了第一种解决方案。