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条)

报告相同问题?

悬赏问题

  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试