一、工具
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访问