Jetty(6.1.3版本)-轻量级的web容器

来源:互联网 发布:linux jenkins 安装 编辑:程序博客网 时间:2024/05/21 17:00
jetty是一个轻量级的web容器,速度比tomcat快,配置简单,快速启动。可以方便对web程序进行运行调试。一个例子胜过许多描述。下面举几个简单使用例子。

另注:jetty6.x版本和以前的一些版本写法有些不同,这里的例子都是真的6.1.3这个版本的

要想使用jetty,当然首先要现在相关的jar包。最好到其官方(http://www.mortbay.org/jetty-6/)进行下载,我下载时,已经推出7.0的beta版本。
工程结构
(注:灰色部分为依赖的jar包)
1 启动jetty服务

package com.css;

import org.mortbay.jetty.Handler;
import org.mortbay.jetty.Request;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.handler.AbstractHandler;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class SerJetty {
    public static void main(String[] args) throws Exception {
        System.out.println(" start server ... ... ");
        Server server = new Server(80); //创建服务,80 为服务端口
        Handler handler = new AbstractHandler() { //创建一个句柄
            public void handle(String target, HttpServletRequest request, HttpServletResponse response, int dispatch) throws IOException {
                response.setContentType("text/html");
                response.setStatus(HttpServletResponse.SC_OK);
                response.getWriter().println("<h1>Hello world</h1>");
                ((Request) request).setHandled(true);
            }
        };
        server.setHandler(handler);
        server.start(); //启动服务
    }
}
执行main函数后,打开浏览器,在地址栏中输入:http://localhost/ 就会看到如下页面展示:

2 触发servlet服务
SerJetty.java
package com.css;

import org.mortbay.jetty.Server;
import org.mortbay.jetty.servlet.ServletHandler;

public class SerJetty {
    public static void main(String[] args) throws Exception {
        Server server = new Server(80);
        ServletHandler handler=new ServletHandler();
        server.setHandler(handler);
        handler.addServletWithMapping("com.css.HelloServlet", "/*"); //com.css.HelloServlet 为对应的servlet类,/* 表示任意的url都可以触发
        server.start();
    }
}
HelloServlet.java
package com.css;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class HelloServlet extends HttpServlet {
    public HelloServlet() {
        System.out.println(">>> ");
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
        System.out.println(" ------------------------------- ");
        response.setContentType("text/html");
        response.setStatus(HttpServletResponse.SC_OK);
        response.getWriter().println("<h1>Hello SimpleServlet</h1>");
    }

}
启动main函数中的服务,在浏览器中执行:http://localhost/ ,执行结果如图:

3 用jetty测试jsp文件
工程目录结构(注意所引入的jar包,比前面两个例子多了两个apache的jar包)

所需的jar包如图:
代码如下:
SerJetty.java
package com.css;

import org.mortbay.jetty.Server;
import org.mortbay.jetty.servlet.ServletHandler;
import org.mortbay.jetty.webapp.WebAppContext;

public class SerJetty {
    public static void main(String[] args) throws Exception {
        Server server = new Server(80);
        WebAppContext context = new WebAppContext("web", "/web");
        server.setHandler(context);
        server.start();
    }
}
web/index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Simple jsp page</title></head>
<body>Place your content here </body>
</html>
启动main函数,在浏览器中输入:http://localhost/web/
执行结果:
原创粉丝点击