1:使用eclipse模本创建webDemo
给工程赋予合适的名字,点击完成。
工程结构如图所示:
修改web.xml文件,将实例中的index.jsp添加为首页,修改后的web.xml 内容如下:
<web-app>
<display-name>Archetype Created Web Application</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
2:使用jetty容器发布
首先,我们将上面工程编译打成war包,run as --> Maven install 在工程的target目录下,我们可以得到WebDemo.war包
然后,我们将WebDemo.war拷贝到jetty容器的\webapps目录下,如我的是D:\jetty-6.1.14\webapps,启动jetty容器即可,如下图所示:
3:在浏览器中访问
http://localhost:8080/WebDemo/index.jsp
显示如下:
4:使用servlet
我们在以上工程目录下添加java代码文件目录,如下图所示:
向pom中添加servlet依赖:
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId>
<version>7.6.3.v20120416</version>
</dependency>
</dependencies>
添加类HelloServlet,如下:
/**
* @功能:
* @版本号:
* @作者: netboy
* @时间: 2012-12-13
*/
public class HelloServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("Content-Type: text/plain;charset=utf-8");
ServletOutputStream out = resp.getOutputStream();
out.println(" ************* hello jetty servlet! ***************** ");
@SuppressWarnings("unchecked")
Enumeration<String> name = req.getParameterNames();
while(name.hasMoreElements()) {
String myName = name.nextElement();
out.println(myName+"="+req.getParameter(myName));
}
}
}
在web.xml文件中添加对HelloServlet的映射,修改后如下所示:
<web-app>
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>helloServlet</servlet-name>
<servlet-class>webapp.demo.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
5:重新打包发布,重启jetty容器
http://localhost:8080/WebDemo/hello
6: 在其他目录下发布war包
我们可以将应用程序的war包发布在其它路径下,而不是默认的webapps目录下。因为jetty容器默认是在webapps目录下查找部署的war包,so,需要告诉jetty让它在指定的路径下加载war包,怎么告诉它呢?我们只需在contexts目录下创建相应的配置文件即可,如我的是:WebDemo.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
<Configure class="org.mortbay.jetty.webapp.WebAppContext">
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Required minimal context configuration : -->
<!-- + contextPath -->
<!-- + war OR resourceBase -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<Set name="contextPath">/</Set>
<Set name="war">D:\workspace\WebDemo\target</Set>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Optional context configuration -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<Set name="extractWAR">false</Set>
<Set name="copyWebDir">false</Set>
<Set name="defaultsDescriptor">
<SystemProperty name="jetty.home" default="." />/etc/webdefault.xml</Set>
<!--
<Set name="overrideDescriptor"><SystemProperty name="jetty.home"
default="."/>/contexts/test.d/override-web.xml</Set>
-->
</Configure>
其中上下文路径设置为contextPath:/
war包的发布路径设置为:D:\workspace\WebDemo\target (这个是我应用程序,在eclipse下生成war包的路径)
7:重启jetty
显示如下:
-----------------------------------------------------------------------------------------------------------
http://localhost:8080/WebDemo/
显示:
-----------------------------------------------------------------------------------------------------------
http://localhost:8080/WebDemo/hello
显示:
-----------------------------------------------------------------------------------------------------------
8: OK,enjoy it