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

pom.xml:

  1. <!-- jetty dependecies -->  
  2.         <dependency>  
  3.             <groupId>org.eclipse.jetty</groupId>  
  4.             <artifactId>jetty-server</artifactId>  
  5.             <version>9.0.0.v20130308</version>  
  6.         </dependency>  
  7.   
  8.         <dependency>  
  9.             <groupId>org.eclipse.jetty</groupId>  
  10.             <artifactId>jetty-webapp</artifactId>  
  11.             <version>9.0.0.v20130308</version>  
  12.         </dependency>  
  13.   
  14.         <dependency>  
  15.             <groupId>org.eclipse.jetty</groupId>  
  16.             <artifactId>jetty-continuation</artifactId>  
  17.             <version>9.0.0.v20130308</version>  
  18.         </dependency>  
  19.   
  20.         <dependency>  
  21.             <groupId>org.eclipse.jetty</groupId>  
  22.             <artifactId>jetty-jsp</artifactId>  
  23.             <version>9.0.0.v20130308</version>  
  24.         </dependency>  
  25.         <!-- jetty dependecies -->  
<!-- 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:

  1. package jetty.c1;  
  2.   
  3. import org.eclipse.jetty.server.Connector;  
  4. import org.eclipse.jetty.server.Request;  
  5. import org.eclipse.jetty.server.Server;  
  6. import org.eclipse.jetty.server.ServerConnector;  
  7. import org.eclipse.jetty.server.handler.*;  
  8. import org.eclipse.jetty.servlet.ServletContextHandler;  
  9. import org.eclipse.jetty.servlet.ServletHolder;  
  10.   
  11. import javax.servlet.ServletException;  
  12. import javax.servlet.http.HttpServletRequest;  
  13. import javax.servlet.http.HttpServletResponse;  
  14. import java.io.IOException;  
  15.   
  16. /** 
  17.  * Created by Administrator on 2016/10/31. 
  18.  */  
  19. public class HelloHandler  extends AbstractHandler  
  20. {  
  21.     public void handle(String target,Request baseRequest,HttpServletRequest request,HttpServletResponse response)  
  22.             throws IOException, ServletException  
  23.     {  
  24.         response.setContentType("text/html;charset=utf-8");  
  25.         response.setStatus(HttpServletResponse.SC_OK);  
  26.         baseRequest.setHandled(true);  
  27.         response.getWriter().println("<h1>Hello "+request.getAttribute("welcome")+"</h1><div style=\"height:500px;background-image: url(data/nm.png);\">");  
  28.     }  
  29.   
  30.     public static void main(String[] args) throws Exception  
  31.     {  
  32.         Server server = new Server();  
  33.         // 设置在JVM退出时关闭Jetty的钩子。  
  34.         server.setStopAtShutdown(true);  
  35.         //server.setHandler(new HelloHandler());  
  36.   
  37.     //设定多个connector绑定多个端口  
  38.         ServerConnector connector1 = new ServerConnector(server);  
  39.         connector1.setPort(8080);  
  40.   
  41.         ServerConnector connector2 = new ServerConnector(server);  
  42.         connector2.setPort(9090);  
  43.   
  44.         server.setConnectors(new Connector[] { connector1, connector2 });  
  45.   
  46.         //资源目录 列出文件名  
  47.         ResourceHandler resourceHandler = new ResourceHandler();  
  48.   
  49.         resourceHandler.setDirectoriesListed(true);  
  50.         resourceHandler.setResourceBase("D:\\360Downloads");  
  51.         resourceHandler.setStylesheet("");  
  52.   
  53.         //设置静态目录路径  
  54.         ContextHandler staticContextHandler = new ContextHandler();  
  55.         staticContextHandler.setContextPath("/data");  
  56.         //staticContextHandler.setContextPath("/files");  
  57.         staticContextHandler.setHandler(resourceHandler);  
  58.   
  59.         ServletContextHandler servletContextHandler = new ServletContextHandler(ServletContextHandler.NO_SESSIONS);  
  60.         servletContextHandler.setContextPath("/");  
  61.   
  62.         /**可在下面依次添加多个servlet**/  
  63.         servletContextHandler.addServlet(new ServletHolder(new MyTestServlet("show")), "/show");  
  64.         servletContextHandler.addServlet(new ServletHolder(new MyTestServlet("display")), "/display");  
  65.         //servletContextHandler.addServlet(new ServletHolder(new SpuSimilarityServlet()), "/spu");  
  66.         //servletContextHandler.addServlet(new ServletHolder(new SpuResultServlet()), "/search");  
  67.         //  servletContextHandler.addServlet(new ServletHolder(new AdminServlet()), "/db");  
  68.   
  69.         //设置request等 回话值  
  70.         HandlerWrapper wrapper = new HandlerWrapper() {  
  71.             @Override  
  72.             public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response)  
  73.                     throws IOException, ServletException {  
  74.                 request.setAttribute("welcome""Wylazy");  
  75.                 super.handle(target, baseRequest, request, response);  
  76.             }  
  77.         };  
  78.   
  79.         HandlerList handlers = new HandlerList();  
  80.         handlers.addHandler(wrapper);  
  81.         handlers.addHandler(servletContextHandler);  
  82.         handlers.addHandler(staticContextHandler);  
  83.         handlers.addHandler(new HelloHandler());  
  84.         server.setHandler(handlers);  
  85.   
  86.         server.start();  
  87.         server.join();  
  88.     }  
  89. }  
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();
    }
}


  1. package jetty.c1;  
  2.   
  3. import com.google.gson.Gson;  
  4.   
  5. import javax.servlet.ServletException;  
  6. import javax.servlet.ServletOutputStream;  
  7. import javax.servlet.annotation.WebServlet;  
  8. import javax.servlet.http.HttpServlet;  
  9. import javax.servlet.http.HttpServletRequest;  
  10. import javax.servlet.http.HttpServletResponse;  
  11. import java.io.IOException;  
  12. import java.util.ArrayList;  
  13. import java.util.List;  
  14.   
  15. /** 
  16.  * Created by Administrator on 2016/10/31. 
  17.  */  
  18. public class MyTestServlet extends HttpServlet {  
  19.   
  20.     private String msg = "init";  
  21.   
  22.     public MyTestServlet(String msg) {  
  23.         this.msg = msg;  
  24.     }  
  25.   
  26.     @Override  
  27.     protected void doGet(HttpServletRequest req, HttpServletResponse resp)  
  28.             throws ServletException, IOException {  
  29.         // TODO Auto-generated method stub  
  30.         doPost(req, resp);  
  31.     }  
  32.   
  33.     @Override  
  34.     protected void doPost(HttpServletRequest req, HttpServletResponse resp)  
  35.             throws ServletException, IOException {  
  36.   
  37.         List<String> list = new ArrayList<String>();  
  38.   
  39.         list.add("A");  
  40.         list.add("中国");  
  41.         list.add("外国");  
  42.         list.add(msg);  
  43.   
  44.         Gson g = new Gson();  
  45.   
  46.         //resp.setContentType("charset=utf-8");  
  47.         ServletOutputStream out = resp.getOutputStream();  
  48.         String json = g.toJson(list);  
  49.         out.write(json.getBytes());  
  50.         out.flush();  
  51.         out.close();  
  52.     }  
  53.   
  54.     @Override  
  55.     protected void doDelete(HttpServletRequest req, HttpServletResponse resp)  
  56.             throws ServletException, IOException {  
  57.         super.doDelete(req, resp);  
  58.     }  
  59.   
  60.     @Override  
  61.     protected void doPut(HttpServletRequest req, HttpServletResponse resp)  
  62.             throws ServletException, IOException {  
  63.         super.doPut(req, resp);  
  64.     }  
  65.   
  66. }  
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/  文件目录展示:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值