Jersey的使用——Post数据读取
web.xml添加适配器,截取请求
<servlet> <servlet-name>ServletAdaptor</servlet-name> <servlet-class>com.sun.jersey.server.impl.container.servlet.ServletAdaptor</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>ServletAdaptor</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping>
通过注解指定根路径和子路径
@Path("/")//根路径 public class TokenManagerImpl implements TokenManager{ @Override @POST @Path("GetLoginToken")//子路径 @Consumes(MediaType.APPLICATION_FORM_URLENCODED) @Produces( { MediaType.APPLICATION_JSON, "application/json" }) public String getLoginToken(InputStream in) throws Exception { byte[] buf = new byte[in.available()]; in.read(buf); //读取参数 String content = new String(buf); String scID = ""; if(content != null){ try { scID = content.split("\\=")[1]; } catch (Exception e) { return "ResultCode=" + e.getMessage(); } } User user = new User(); user.setScID(scID); LiveUsers lu = LiveUsers.getInstance(); String token = HeartBeatTokenFactory.allocToken(); if(lu.hasLogin(user)){ lu.delLiveUser(user); // 踢掉之前的用户 lu.addLiveUser(token, user); return "ResultCode=503&NewToken=" + token; }else{ lu.addLiveUser(token, user); return "ResultCode=200&Token=" + token; } }
请求时,通过HttpURLConnection发送post的二进制数据到HTTP://localhost:8080/应用名/GetLoginToken
posted on 2012-05-12 16:26 biGpython 阅读(2351) 评论(0) 编辑 收藏 举报