最近项目上需要用到jetty,我在服务启动时用addServlet增加了几个servlet,另外还用WebAppContext添加了web目录运行jsp.现在发现只有jsp与jsp之间可以互相传递session,jsp和servlet之间session不能互相传递.甚至连servlet之间也不能互相传session.但是jsp和servlet用request.getSession(true).getId()获得sessionid都是一样的. 我分析了一下,每个contents好像都有自己的session.但又不知道怎么改,才能让jsp和servlet之间互传session,高手看看,下面是启动服务的代码: 另外,我只是引用了jetty的jar,没用使用任何jetty配置方面xml.
package test;import org.mortbay.jetty.Connector;
import org.mortbay.jetty.Handler;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.handler.ContextHandlerCollection;
import org.mortbay.jetty.handler.HandlerCollection;
import org.mortbay.jetty.nio.SelectChannelConnector;
import org.mortbay.jetty.servlet.Context;
import org.mortbay.jetty.servlet.ServletHolder;
import org.mortbay.jetty.webapp.WebAppContext;public class test { public static void main(String[] args)
throws Exception
{
Server server = new Server();
Connector connector=new SelectChannelConnector();
connector.setPort(Integer.getInteger("jetty.port",8080).intValue());
connector.setHost("127.0.0.1");
server.setConnectors(new Connector[]{connector});
ContextHandlerCollection contexts = new ContextHandlerCollection();
server.setHandler(contexts);
Context root = new Context(contexts,"/co",Context.SESSIONS);
root.addServlet(new ServletHolder(new hello_one("Ciao")), "/*");
Context yetanother =new Context(contexts,"/yo",Context.SESSIONS);
yetanother.addServlet(new ServletHolder(new hello_two("YO!")), "/*");
WebAppContext webapp = new WebAppContext(contexts,"webapp","/");
HandlerCollection handlers = new HandlerCollection();
handlers.setHandlers(new Handler[]{root,yetanother,webapp});
server.setHandler(handlers);
server.start();
server.join();
}
}
package test;import org.mortbay.jetty.Connector;
import org.mortbay.jetty.Handler;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.handler.ContextHandlerCollection;
import org.mortbay.jetty.handler.HandlerCollection;
import org.mortbay.jetty.nio.SelectChannelConnector;
import org.mortbay.jetty.servlet.Context;
import org.mortbay.jetty.servlet.ServletHolder;
import org.mortbay.jetty.webapp.WebAppContext;public class test { public static void main(String[] args)
throws Exception
{
Server server = new Server();
Connector connector=new SelectChannelConnector();
connector.setPort(Integer.getInteger("jetty.port",8080).intValue());
connector.setHost("127.0.0.1");
server.setConnectors(new Connector[]{connector});
ContextHandlerCollection contexts = new ContextHandlerCollection();
server.setHandler(contexts);
Context root = new Context(contexts,"/co",Context.SESSIONS);
root.addServlet(new ServletHolder(new hello_one("Ciao")), "/*");
Context yetanother =new Context(contexts,"/yo",Context.SESSIONS);
yetanother.addServlet(new ServletHolder(new hello_two("YO!")), "/*");
WebAppContext webapp = new WebAppContext(contexts,"webapp","/");
HandlerCollection handlers = new HandlerCollection();
handlers.setHandlers(new Handler[]{root,yetanother,webapp});
server.setHandler(handlers);
server.start();
server.join();
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货