1. 程式人生 > >jetty內嵌web頁面服務入門

jetty內嵌web頁面服務入門

一個特別好的Demo,記錄一下

 

package wang.jettyTest2;

import org.eclipse.jetty.server.Server;

public class JettyServer {
	public static void main(String[] args) throws Exception {
                //訪問http://127.0.0.1:8989/?name=name
		Server server = new Server(8989);
		server.setHandler(new TestHandler());
		server.start();
		server.join();
	}
}
package wang.jettyTest2;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;

public class TestHandler extends AbstractHandler {
	 
    @Override
    public void handle(String target, Request baseRequest, HttpServletRequest request,
            HttpServletResponse response) throws IOException, ServletException {
        //使用者請求的uri
        //http://localhost:8080/index.html?name=rolin  -> target=/index.html
        System.out.println("target is :" + target);
        
        //設定http頭資訊
        response.setContentType("text/html;charset=utf-8");
        request.setCharacterEncoding("utf-8");
        response.setStatus(HttpServletResponse.SC_OK);
        
        baseRequest.setHandled(true);
        
        //獲取向瀏覽器輸出的流
        PrintWriter out = response.getWriter();
        if("/favicon.ico".equals(target)){//jetty預設會在每次請求結束,再請求一次這個uri
            System.out.println("request /favicon.ico");
            out.write("404");
        }else{
            System.out.println("request other!");
            //out.print("{['name':'name','id':'id']}");
            out.print("<h3>hello jetty!</h3>");
            //其他請求引數
            if(request.getParameter("name") != null) {
                out.print("<h3>your name is "+request.getParameter("name")+"!</h3>");
            }
        }
    }
 
}