servlet+jetty架设http服务端

一、工具

eclipse java Juno

jetty-distribution-8.1.17.v20150415(可以从http://download.eclipse.org/jetty/下载)

我用的是eclipse java版本,所以不支持发布web程序,可以通过安装插件来解决

插件地址http://download.eclipse.org/releases/juno

 

 

二、代码

创建servlet类,HelloServelt.java,代码如下

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class HelloServelt
 */
@WebServlet("/HelloServelt")
public class HelloServelt extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * Default constructor.
	 */
	public HelloServelt() {
		// TODO Auto-generated constructor stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		String msg = "hello word!!!";
		response.setContentType("text/html");
		response.setStatus(HttpServletResponse.SC_OK);
		response.getWriter().println("<h1>" + msg + "</h1>");
		response.getWriter().println("session=" + request.getSession(true).getId());
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

}

然后在WEB-INF中添加web.xml,内容如下

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>HelloServelt</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>hello</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>
</web-app>

 三、发布

扫描二维码关注公众号,回复: 678970 查看本文章

把代码发布成war包(hello.war),然后放入jetty-distribution-8.1.17.v20150415/webapps目录下,接着在contexts目录下添加hello.xml,内容如下

<?xml version="1.0"  encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">

<Configure class="org.eclipse.jetty.webapp.WebAppContext">

  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
  <!-- Required minimal context configuration :                        -->
  <!--  + contextPath                                                  -->
  <!--  + war OR resourceBase                                          -->
  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
  <Set name="contextPath">/test</Set>
  <Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/hello.war</Set>

</Configure>

 然后通过java -jar start.jar即可启动程序,通过http://localhost:8080/test/hello来访问

四、其他启动方式

在eclipse中,也可以通过run某个类来运行servlet程序,代码如下

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;

public class ServletServer {
	public static void main(String[] args) throws Exception {
		Server server = new Server(8081);

		ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
		context.setContextPath("/");

		server.setHandler(context);

		context.addServlet(new ServletHolder(new HelloServelt()), "/hello");

		server.start();
		server.join();
	}
}

 这样直接run之后,可以通过http://localhost:8081/hello访问

猜你喜欢

转载自pumbaa-he.iteye.com/blog/2281630