cs_javabao 2012-12-10 16:38
浏览 485
已采纳

rest如何通过增加 jsessionid参数的方式实现session

rest是无状态的,想通过url增加jsessionid参数的方式实现session.
如:定义接口一:
@POST
@Produces( { "application/json", "application/xml" })
@Consumes(application/json)
@Path("/rest/test1")
public void test1(@Context HttpServletRequest request) throws Exception {
request.getSession().setAttribute("test","test");
}
问题一:如何在调用/rest/test1的时候取得jsessionid?
接口二:
@POST
@Produces( { "application/json", "application/xml" })
@Consumes(application/json)
@Path("/rest/test2")
public void test2() throws Exception {
//取得session
//session.getAttribute("test");
}
问题二:
如何在调用/rest/test2/?jsessionid=xxxxxxxx的时候取得session,进而取得test1中写入的信息?

  • 写回答

2条回答 默认 最新

  • blogzhoubo 2012-12-10 19:01
    关注

    只要session id正确传入,你这么做是可以的。
    问题出在你拼出来的url有问题,rest的url应该按下面这样写:

    /rest/test2/;jsessionid=2523035A40926EB72E984E0D703A2021

    如果有别的参数需要传递:
    /rest/test2/;jsessionid=2523035A40926EB72E984E0D703A2021?name1=value1

    [code="java"]@POST
    @Produces( { "application/json", "application/xml" })
    @Consumes(application/json)
    @Path("/rest/test2")
    public void test2() throws Exception {
    HttpSession session = request.getSession(false);
    if(session != null){
    session.getAttribute("test");
    }
    } [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?