`
nbaertuo
  • 浏览: 75304 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

jetty 手动 加载spring mvc demo

阅读更多

搞了一个周末,终于把spring mvc的一个demo用jetty手动跑起来啦。中间还是碰到了一些问题,所以在这里把代码贴出来,给刚接触jetty的同学一个参考。

 

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);
  
 }
}
源代码在附件中,跑demo需要maven支持。

4
0
分享到:
评论

相关推荐

    maven+spring MVC+Mybatis+jetty+mysql

    利用maven搭起的Spring MVC+Mybatis框架,并带有数据库表结构,使用者可直接导入mysql使用,有主外键关系

    基于Spring MVC 和 WxJava 实现的微信公众号Java后端Demo

    本Demo使用Spring MVC 框架实现微信公众号开发功能。 本项目为WxJava的Demo演示程序,更多Demo请 查阅此处。 如果想支持多公众号,请参考spring boot版本的demo:...

    Spring MVC 项目Demo

    用Spring MVC+MyBaits+Maven+Jetty+IntelliJ IDEA 12.0.4 +Mysql 搭建了一个项目。比较简单。供参考。

    基于Spring MVC的web框架 1.1.11

    maven升级jdk1.8 jetty9.2.4 web升级jdk1.7 tomcat7 1.1.7(maven only) 包名修改 从此不再支持web版本,只支持maven版本 1.1.8 jquery 图片预览插件 图片滚动显示插件 1.1.9 jquery实现鼠标在按钮上显示窗口,离开...

    基于Spring MVC和WxJava实现的微信公众号Java后端Demo

    配置:复制/src/main/resources/wx.properties.template或者修改其扩展名生成wx.properties文件,填写相关配置;...使用Maven的运行演示程序:mvn jetty:run 或者自己打的战争包发布到tomcat的运行;

    weixin-java-mp-demo-springmvc:基于Spring MVC 和 WxJava 实现的微信公众号Java后端Demo

    本Demo使用Spring MVC 框架实现微信公众号开发功能。 本项目为WxJava的Demo演示程序,更多Demo请 。 如果想支持多公众号,请参考spring boot版本的demo: 使用步骤: 新手遇到问题,请务必先阅读的常见问题部分,...

    demo:构想dubbo + zookeeper + spring mvc

    使用Servlet容器运行(Tomcat、Jetty等),需要在web.xml中装配spring.xml、spring-dao、以及provider配置文件 缺点:增加复杂性(端口、管理、浪费资源(内存) 、需要占用多个端口和内存,不建议 第二种方式: ...

    基于SpringMVC的一个web框架

    maven升级jdk1.8 jetty9.2.4 web升级jdk1.7 tomcat7 1.1.7(maven only) 包名修改 从此不再支持web版本,只支持maven版本 1.1.8 jquery 图片预览插件 图片滚动显示插件 1.1.9 jquery实现鼠标在按钮上显示窗口,离开...

    spring-demo-application

    它是用于学习的简单Spring MVC应用程序。 目的是引入Spring Framework和其他技术。 有什么用? Spring框架 玛文 码头(Maven码头插件) JSP 如何使用? 在项目目录的命令行中键入“ mvn jetty:run”。

    hessian-demo示例

    hessian-demo工程示例,已集成内置jetty插件,可以直接运行。 spring4,hessian4.0.7

    SpringMVC基础上的web框架

    这个框架是在学习Spring的时候,为了积累学习成果,自己搭建的,一般的系统开发也可以直接使用,包括一个系统开发的基础功能。 以下是当时自己开发时的日志,大致可以说明框架里已有功能 1.0.5 从web项目迁移成maven...

    SSH2-DEMO:Struts2+Hibernate+Spring Web 应用

    ModeSpring 采用时髦的RESTful 风格和基于注释的Spring MVC 设计模式,遵循最新JPA (Hibernate ORM) 规范的DAO 设计模式,利用Maven 组织项目进行模块化管理&版本控制, 并使用Log4j 2 的日志管理模块,通过贯穿...

    java实现微信公众号源码-weixin-java-mp-multi-demo:微信公众号demo,基于WxJava和SpringMVC框架实

    本Demo使用Spring MVC 框架实现微信公众号开发功能,支持多公众号。 如果想使用更多公众号,请复制相关配置文件,修改spring配置文件添加相应配置,同时还需要增加相应的controller和service,具体可以参考已有源码...

    一个可以直接运行的基于SpringMVC的web框架1.1.12

    maven升级jdk1.8 jetty9.2.4 web升级jdk1.7 tomcat7 1.1.7(maven only) 包名修改 从此不再支持web版本,只支持maven版本 1.1.8 jquery 图片预览插件 图片滚动显示插件 1.1.9 jquery实现鼠标在按钮上显示窗口,离开...

    可以直接运行的基于SpringMVC的web框架示例,也可以直接当公司框架

    maven升级jdk1.8 jetty9.2.4 web升级jdk1.7 tomcat7 1.1.7(maven only) 包名修改 从此不再支持web版本,只支持maven版本 1.1.8 jquery 图片预览插件 图片滚动显示插件 1.1.9 jquery实现鼠标在按钮上显示窗口,离开...

    单点登录源码

    SpringMVC | MVC框架 | [http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc](http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc) ...

    Java-CMS-Framework-Base_jeesite.com:Java管理后台快速开发SSM框架_优化版-JDK1.8 spring,springMVC,MyBatis,mysql,shiro,redis,ehcache

    Java管理后台快速开发SSM框架_优化版-JDK1.8 框架简介 JeeSite是基于多个优秀的开源项目,高度整合封装而成的高效,高性能,强安全性的开源...mvn&gt; jetty:run Update 2019-01-16 增加maven自定义参数版本号 启动时增

Global site tag (gtag.js) - Google Analytics