因此,我使用setWar和正确的jar来使其工作。使用此代码,可以直接寻址jsp(localhost:8080 /
result.jsp),更重要的是使用servlet(localhost:8080 /
hello).forward命令将其转发到jsp。这将使我能够通过jsp提供一些动态内容。
代码如下…(注意:Embedded Jetty =>不需要web.xml)
import java.io.File;import java.io.IOException;import javax.servlet.RequestDispatcher;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.eclipse.jetty.server.Handler;import org.eclipse.jetty.server.Server;import org.eclipse.jetty.server.handler.DefaultHandler;import org.eclipse.jetty.server.handler.HandlerList;import org.eclipse.jetty.servlet.ServletHolder;import org.eclipse.jetty.webapp.WebAppContext;public class RunHelloServlet {public static void main(String[] args) throws Exception { System.setProperty("DEBUG", "true"); Server server = new Server(8080); WebAppContext webappcontext = new WebAppContext(); webappcontext.setContextPath("/"); File warPath = new File("C:/dev/workspace/JettyTest", "src/main/webapp"); webappcontext.setWar(warPath.getAbsolutePath()); HandlerList handlers = new HandlerList(); webappcontext.addServlet(new ServletHolder(new HelloServlet()), "/hello"); handlers.setHandlers(new Handler[] { webappcontext, new DefaultHandler() }); server.setHandler(handlers); server.start();}public static class HelloServlet extends HttpServlet { private static final long serialVersionUID = 1L; public HelloServlet() { } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { // logic try { request.getRequestDispatcher("/result.jsp").forward(request, response); } catch (Throwable e1) { e1.printStackTrace(); } }}}
POM.xml …
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.hp.it.kmcs.search</groupId> <artifactId>JettyTest</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>JettyTest</name> <url>http://maven.apache.org</url><properties> <jettyVersion>7.2.0.v20101020</jettyVersion></properties><dependencies> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-server</artifactId> <version>7.6.0.RC1</version> <type>jar</type> <scope>compile</scope></dependency><dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-util</artifactId> <version>7.6.0.RC1</version> <type>jar</type> <classifier>config</classifier> <scope>compile</scope></dependency><dependency> <groupId>org.mortbay.jetty</groupId> <artifactId>jsp-2.1-glassfish</artifactId> <version>2.1.v20100127</version> <type>jar</type> <scope>compile</scope></dependency><dependency> <groupId>org.eclipse.jdt.core.compiler</groupId> <artifactId>ecj</artifactId> <version>3.5.1</version> <type>jar</type> <scope>compile</scope></dependency><dependency> <groupId>org.mortbay.jetty</groupId> <artifactId>servlet-api-2.5</artifactId> <version>6.1.14</version> <type>jar</type> <scope>compile</scope></dependency><dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-webapp</artifactId> <version>7.6.0.RC0</version> <type>jar</type> <scope>compile</scope> </dependency></dependencies> <build> <plugins> <plugin> <!-- This plugin is needed for the servlet example --> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>${jettyVersion}</version> </plugin> <plugin> <groupId>org.prehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.1</version> <executions> <execution><goals><goal>java</goal></goals></execution> </executions> <configuration> <mainClass>com.hp.it.kmcs.JettyTest.RunHelloServlet</mainClass> </configuration> </plugin> </plugins> </build></project>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)