这里我们实现一个借助于Maven的运行在Jetty上的Web应用。
#1 new一个Maven project
#2 选择maven-archetype-webapp
#3 我们对它默认生成的index.jsp稍作修改:【如果是运行在Jetty7上就不用修改了,参照书上的写法就可以了】
<html> <body> <h2>Hello World!</h2> <a href="/helloWebonJetty/hello">Hello Servlet</a> </body> </html>
#4 我们加一个HelloServlet.java。这里需要注意的是,你需要额外自己建个叫java的文件夹,在\src\main目录下面(可能有其他的比较好的方法,不过我暂时还不清楚)。它默认会建成resources下面,所以一定要记得修改。还有要记得在pom.xml加入servlet的依赖。
package com.licanjing.helloWebonJetty; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HelloServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); response.setStatus(HttpServletResponse.SC_OK); response.getWriter().println("<h1>Hello Servlet</h1>"); response.getWriter().println("session=" + request.getSession(true).getId()); } }
#5 在web.xml中加入如下servlet配置:
<servlet>
<servlet-name>Hello</servlet-name>
<servlet-class>com.licanjing.helloWebonJetty.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello</servlet-name>
<url-pattern>/hello/*</url-pattern>
</servlet-mapping>
<servlet> <servlet-name>Hello</servlet-name> <servlet-class>com.licanjing.helloWebonJetty.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Hello</servlet-name> <url-pattern>/hello/*</url-pattern> </servlet-mapping>
#6 maven install然后就可以运行了
不过我这里有个严重的疏忽,Jetty的插件忘记装了。不过可以在tomcat里运行一下。放到tomcat里运行通过。
顺便还发现一个有趣的东西,在tomcat的启动log里面:
Sep 20, 2010 3:02:03 PM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(C:\tomcat6\webapps\helloWebonJetty\WEB-INF\lib\geronimo-servlet_2.4_spec-1.1.jar) - jar not loaded. See Servlet Spec 2
.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
接下来我就得装jetty对于eclipse的插件了。