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中写入的信息?

只要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]

你需要URL重写技术
request.getSession().getId()得到JSESSIONID