jax-rs检索表单参数

我正在尝试使用HttpServletRequest检索从已发布表单传递给jax-rs的一些参数。 但是,我的请求对象始终为我的参数返回空值。 我不是以正确的方式去做这件事吗? 我已经发布了下面的代码,以及一个发送的示例请求。

这是我的服务:

@Path("/") @Stateless public class HomeController { @Context private HttpServletRequest request; @Context private HttpServletResponse response; @EJB private LoginServiceLocal loginService; @POST @Path("/authenticate") @Consumes("application/x-www-form-urlencoded") public void authenticate() throws Exception { String email = request.getParameter("email"); String password = request.getParameter("password"); if (loginService.authenticate(email, password)) { response.sendRedirect("/app"); } else { request.setAttribute("authenticationError", "Invalid email/password."); } } } 

示例请求:

 POST http://localhost:8081/cheetah-web/authenticate HTTP/1.1 Host: localhost:8081 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 115 Connection: keep-alive Referer: http://localhost:8081/cheetah-web/login Cookie: JSESSIONID=a4e7aec0624206ad33754e35cce4 Content-Type: application/x-www-form-urlencoded Content-Length: 39 email=unit%40test.com&password=testpass 

 @POST @Path("/authenticate") @Consumes(MediaType.APPLICATION_FORM_URLENCODED) public void authenticate(@FormParam("email") String email, @FormParam("password") String password) throws Exception { if (loginService.authenticate(email, password)) { response.sendRedirect("/app"); } else { request.setAttribute("authenticationError", "Invalid email/password."); } }