`
changhongbao
  • 浏览: 123431 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Jetty实战(7)之嵌入式Jetty应用Demo

阅读更多

pom.xml:

<!-- jetty dependecies -->  
        <dependency>  
            <groupId>org.eclipse.jetty</groupId>  
            <artifactId>jetty-server</artifactId>  
            <version>9.0.0.v20130308</version>  
        </dependency>  
  
        <dependency>  
            <groupId>org.eclipse.jetty</groupId>  
            <artifactId>jetty-webapp</artifactId>  
            <version>9.0.0.v20130308</version>  
        </dependency>  
  
        <dependency>  
            <groupId>org.eclipse.jetty</groupId>  
            <artifactId>jetty-continuation</artifactId>  
            <version>9.0.0.v20130308</version>  
        </dependency>  
  
        <dependency>  
            <groupId>org.eclipse.jetty</groupId>  
            <artifactId>jetty-jsp</artifactId>  
            <version>9.0.0.v20130308</version>  
        </dependency>  
        <!-- jetty dependecies --> 

 demo:

package jetty.c1;  
  
import org.eclipse.jetty.server.Connector;  
import org.eclipse.jetty.server.Request;  
import org.eclipse.jetty.server.Server;  
import org.eclipse.jetty.server.ServerConnector;  
import org.eclipse.jetty.server.handler.*;  
import org.eclipse.jetty.servlet.ServletContextHandler;  
import org.eclipse.jetty.servlet.ServletHolder;  
  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
import java.io.IOException;  
  
/** 
 * Created by Administrator on 2016/10/31. 
 */  
public class HelloHandler  extends AbstractHandler  
{  
    public void handle(String target,Request baseRequest,HttpServletRequest request,HttpServletResponse response)  
            throws IOException, ServletException  
    {  
        response.setContentType("text/html;charset=utf-8");  
        response.setStatus(HttpServletResponse.SC_OK);  
        baseRequest.setHandled(true);  
        response.getWriter().println("<h1>Hello "+request.getAttribute("welcome")+"</h1><div style=\"height:500px;background-image: url(data/nm.png);\">");  
    }  
  
    public static void main(String[] args) throws Exception  
    {  
        Server server = new Server();  
        // 设置在JVM退出时关闭Jetty的钩子。  
        server.setStopAtShutdown(true);  
        //server.setHandler(new HelloHandler());  
  
    //设定多个connector绑定多个端口  
        ServerConnector connector1 = new ServerConnector(server);  
        connector1.setPort(8080);  
  
        ServerConnector connector2 = new ServerConnector(server);  
        connector2.setPort(9090);  
  
        server.setConnectors(new Connector[] { connector1, connector2 });  
  
        //资源目录 列出文件名  
        ResourceHandler resourceHandler = new ResourceHandler();  
  
        resourceHandler.setDirectoriesListed(true);  
        resourceHandler.setResourceBase("D:\\360Downloads");  
        resourceHandler.setStylesheet("");  
  
        //设置静态目录路径  
        ContextHandler staticContextHandler = new ContextHandler();  
        staticContextHandler.setContextPath("/data");  
        //staticContextHandler.setContextPath("/files");  
        staticContextHandler.setHandler(resourceHandler);  
  
        ServletContextHandler servletContextHandler = new ServletContextHandler(ServletContextHandler.NO_SESSIONS);  
        servletContextHandler.setContextPath("/");  
  
        /**可在下面依次添加多个servlet**/  
        servletContextHandler.addServlet(new ServletHolder(new MyTestServlet("show")), "/show");  
        servletContextHandler.addServlet(new ServletHolder(new MyTestServlet("display")), "/display");  
        //servletContextHandler.addServlet(new ServletHolder(new SpuSimilarityServlet()), "/spu");  
        //servletContextHandler.addServlet(new ServletHolder(new SpuResultServlet()), "/search");  
        //  servletContextHandler.addServlet(new ServletHolder(new AdminServlet()), "/db");  
  
        //设置request等 回话值  
        HandlerWrapper wrapper = new HandlerWrapper() {  
            @Override  
            public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response)  
                    throws IOException, ServletException {  
                request.setAttribute("welcome", "Wylazy");  
                super.handle(target, baseRequest, request, response);  
            }  
        };  
  
        HandlerList handlers = new HandlerList();  
        handlers.addHandler(wrapper);  
        handlers.addHandler(servletContextHandler);  
        handlers.addHandler(staticContextHandler);  
        handlers.addHandler(new HelloHandler());  
        server.setHandler(handlers);  
  
        server.start();  
        server.join();  
    }  
}  

 

package jetty.c1;  
  
import com.google.gson.Gson;  
  
import javax.servlet.ServletException;  
import javax.servlet.ServletOutputStream;  
import javax.servlet.annotation.WebServlet;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
import java.io.IOException;  
import java.util.ArrayList;  
import java.util.List;  
  
/** 
 * Created by Administrator on 2016/10/31. 
 */  
public class MyTestServlet extends HttpServlet {  
  
    private String msg = "init";  
  
    public MyTestServlet(String msg) {  
        this.msg = msg;  
    }  
  
    @Override  
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)  
            throws ServletException, IOException {  
        // TODO Auto-generated method stub  
        doPost(req, resp);  
    }  
  
    @Override  
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)  
            throws ServletException, IOException {  
  
        List<String> list = new ArrayList<String>();  
  
        list.add("A");  
        list.add("中国");  
        list.add("外国");  
        list.add(msg);  
  
        Gson g = new Gson();  
  
        //resp.setContentType("charset=utf-8");  
        ServletOutputStream out = resp.getOutputStream();  
        String json = g.toJson(list);  
        out.write(json.getBytes());  
        out.flush();  
        out.close();  
    }  
  
    @Override  
    protected void doDelete(HttpServletRequest req, HttpServletResponse resp)  
            throws ServletException, IOException {  
        super.doDelete(req, resp);  
    }  
  
    @Override  
    protected void doPut(HttpServletRequest req, HttpServletResponse resp)  
            throws ServletException, IOException {  
        super.doPut(req, resp);  
    }  
  
}  

 运行效果:

localhost:8080/9090

 

localhost:8080/show

http://localhost:8080/data/  文件目录展示:

分享到:
评论

相关推荐

    Jetty Demo

    此外,还会涉及如何使用Jetty的嵌入式模式,即直接在应用中包含Jetty服务器,而不是将其作为独立服务运行。 通过这个JettyDemo,你将对Jetty的使用有初步的认识,为进一步学习和使用Jetty打下基础。随着你对Jetty的...

    jetty+maven webapp,http,https实现的简单demo

    `embedded`可能指的是将Jetty作为一个嵌入式服务器在你的应用中启动,而不是作为独立进程。`ManyConnectors`可能表示在同一个服务器实例上配置多个连接器,以便同时提供HTTP和HTTPS服务。 **7. 运行与测试** 通过...

    Spring整合Jetty开发web应用的例程

    Jetty不依赖于特定的Java EE容器,这使得它非常适合于嵌入式环境,比如与Spring框架整合,直接在应用中启动服务器。 3. **整合过程**:整合Spring和Jetty通常涉及到以下步骤: - 引入依赖:在项目中添加Jetty和...

    一键部署demo+jetty+svn+ant配置

    本教程将详细介绍如何通过“一键部署”实现对一个基于Java的项目(DEMO)进行配置,结合Jetty服务器、Subversion(SVN)版本控制系统以及Ant构建工具的整合使用。 首先,让我们了解这些组件的作用: 1. **DEMO**:...

    maven+spring MVC+Mybatis+jetty+mysql

    与传统的Tomcat相比,Jetty 更轻量级,启动更快,适合快速部署和嵌入式应用。在本项目中,Jetty 作为应用服务器,承载Spring MVC 应用,接收和响应HTTP请求。 5. MySQL: MySQL 是一个流行的开源关系型数据库管理...

    struts2+maven+jetty 示例

    总的来说,这个"struts2Demo"项目展示了如何利用Struts2处理请求、Maven管理依赖和Jetty快速运行Web应用。这种组合为Java Web开发提供了便捷的工具链,便于开发者快速搭建、测试和部署应用程序。

    maven+spring+jetty+logback简单项目源码

    `Jetty`是一个轻量级的嵌入式Servlet容器,可以直接在Java应用中使用,而无需单独部署到像Tomcat这样的独立服务器中。`Jetty`可以快速启动,适合用于开发和测试环境。在这个项目中,`Jetty`可能被`Spring`整合,作为...

    embedded-jetty-jsp:带有JSP支持的嵌入式Jetty示例

    示例:带JSP支持的嵌入式Jetty 这是一个maven项目,用于构建它: $ mvn clean package 要运行示例org.eclipse.jetty.demo.Main : $ mvn exec:exec 打开您的Web浏览器以: http://localhost:8080/ 停止码头: 使用...

    spring boot 所有‘demo,打包下载’

    7. **WAR 包**: WAR 是 Web 应用程序的标准部署格式。Spring Boot 可以创建传统的 WAR 文件,以便在外部容器如 Tomcat 或 Jetty 中部署。 8. **Web 开发**: Spring Boot 为开发 RESTful web 服务和传统 MVC 应用...

    Spring MVC 项目Demo

    【Spring MVC 项目Demo】是一个基于Java开发的Web应用程序示例,它利用了Spring MVC、MyBatis、Maven、Jetty服务器以及IntelliJ IDEA作为集成开发环境,并且依赖MySQL数据库来存储数据。这个项目旨在展示如何将这些...

    springboot-demo-helloworld-jetty.rar

    同时也可以修改默认值来满足特定的需求提供了一些大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标,健康检测、外部配置等SpringBoot不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式# ...

    Spring boot基础demo

    Spring Boot支持嵌入式Web服务器,如Tomcat和Jetty,无需额外安装服务器,大大简化了部署流程。 3. **自动配置(Auto Configuration)**: Spring Boot通过扫描类路径中的特定注解(如@Configuration、@...

    jfinal的maven工程

    Jetty是一款嵌入式的HTTP服务器和Servlet容器,常用于测试和部署Java Web应用。本文将深入探讨这三个技术的结合与应用。 **JFinal框架详解** JFinal的核心理念是"Simple is the best",其设计原则是减少不必要的...

    Spring boot小demo

    Spring Boot允许你直接将应用打包成可执行的JAR或WAR,内含嵌入式Web服务器如Tomcat或Jetty。这样,你无需单独部署到外部服务器,大大简化了部署流程。 5. **Spring Initializr** Spring Initializr是一个在线...

    springboot2.4从实战到源码分析Demo源码工程.zip

    3. **嵌入式Web服务器**:SpringBoot可以内嵌Tomcat、Jetty或Undertow等Web服务器,这样应用可以直接打包成可执行的JAR或WAR,无需额外部署到外部服务器。 4. **Actuator**:这个模块提供了许多端点,用于监控和...

    跟我学Shiro第13章Demo(RememberMe)

    5. **Jetty服务器**:Demo提到使用Jetty作为应用服务器,Jetty是一个轻量级、嵌入式的HTTP服务器和Servlet容器,便于快速部署和测试Shiro的应用。 6. **MavenTest13**:这个文件名可能是项目的一个模块或者测试目录...

    Spring-Boot启动Demo

    通过嵌入式的Servlet容器如Tomcat或Jetty,可以直接运行这个JAR文件启动Spring Boot应用。命令行中使用以下命令启动: ```bash java -jar demo.jar ``` 这里的`demo.jar`是你的Spring Boot应用打包后的文件名...

    SpringBoot文档+Demo

    3. **嵌入式服务器(Embedded Server)**: Spring Boot允许选择内嵌的Tomcat、Jetty或Undertow服务器,无需额外部署到外部容器,简化了开发和测试流程。 4. **健康检查(Actuator)**: Actuator提供了监控和管理...

    shiro登录/退出demo(web应用)

    Jetty则是一个轻量级的嵌入式Servlet容器,可以直接运行Web应用程序,无需额外安装服务器,这对于快速测试和开发非常方便。 在Shiro中,我们主要关注以下几个核心组件: 1. **Subject**: Shiro 的核心概念,代表...

    spring boot 学习demo

    在Spring Boot中,开发者可以选择内嵌的Tomcat、Jetty或Undertow作为Web服务器,无需额外的部署步骤,应用程序可以直接运行在JAR或WAR包中。 4. **Actuator** Spring Boot Actuator 提供了一套丰富的监控和管理...

Global site tag (gtag.js) - Google Analytics