import java.util.HashMap;
import java.util.Map;
import org.apache.jasper.servlet.JspServlet;
import org.mortbay.jetty.Connector;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.bio.SocketConnector;
import org.mortbay.jetty.servlet.Context;
import org.mortbay.jetty.servlet.DefaultServlet;
import org.mortbay.jetty.servlet.FilterHolder;
import org.mortbay.jetty.servlet.ServletHolder;
import org.springframework.js.resource.ResourceServlet;
import org.springframework.web.context.ContextLoaderListener;
import org.springframework.web.filter.DelegatingFilterProxy;
import org.springframework.web.servlet.DispatcherServlet;
/**
* 在eclipse中启动
* @author ertuo
*/
public class JettyWebStarter {
/**
* 服务器启动。
*/
public void start() {
Server server = new Server();
Connector connector = new SocketConnector();
connector.setPort(8080);
server.addConnector(connector);
Context root = new Context(server, "/booking-mvc", Context.SESSIONS);
/**启动的时候就会加载这个listener 这里开始建立spring的application content*/
ContextLoaderListener listener = new ContextLoaderListener();
/**设置spring配置文件位置*/
Map<String, String> initParams = new HashMap<String, String>();
initParams.put("contextConfigLocation", "/WEB-INF/config/web-application-config.xml");
root.setInitParams(initParams);
/**servlet context*/
root.setResourceBase("E:/sources/spring/spring-webflow-2.0.5.RELEASE/projects/spring-webflow-samples/booking-mvc/src/main/webapp");
root.addEventListener(listener);
/**资源文件解析*/
ServletHolder holder=new ServletHolder(new ResourceServlet());
root.addServlet(holder, "/resources/*");
/**spring control*/
holder = new ServletHolder(new DispatcherServlet());
holder.setInitParameter("contextConfigLocation", "/WEB-INF/config/web-application-config.xml");
root.addServlet(holder, "/spring/*");
/**jsp 解析servlet*/
holder=new ServletHolder(new JspServlet());
root.addServlet(holder, "*.jsp");
/**html*/
holder=new ServletHolder(new DefaultServlet());
root.addServlet(holder, "*.html");
/**welcome file 这里没有生效 不知道为什么*/
root.setWelcomeFiles(new String[]{"index.html"});
postStart(root);
try {
server.start();
server.join();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
private void postStart(Context root){
/**spring内部过滤器代理 里面包含了默认的11个过滤器 这里的初始化参数可以直接些spring的bean名称*/
FilterHolder filterHolder=new FilterHolder(DelegatingFilterProxy.class);
filterHolder.setName("springSecurityFilterChain");
root.addFilter(filterHolder, "/*", org.mortbay.jetty.Handler.DEFAULT);
}
}http://nbaertuo.iteye.com/blog/366847
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com