biGpython

生亦何欢,死亦何苦? 予我長袖,我必善舞!

导航

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编辑  收藏  举报