Jetty实战(5)之嵌入式Jetty运行Servlet
时间: 2024-03-12 19:44:31 浏览: 20
好的,我知道了。关于嵌入式Jetty运行Servlet的实现,可以参考以下步骤:
1. 导入相关依赖
在Maven项目中,需要在pom.xml文件中添加以下依赖:
```
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
<version>9.4.6.v20170531</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>9.4.6.v20170531</version>
</dependency>
```
2. 编写Servlet类
在项目中创建一个继承自javax.servlet.http.HttpServlet的类,重写doGet/doPost方法来处理请求。
```
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
response.getWriter().write("Hello,Jetty!");
}
}
```
3. 创建Server对象并配置
创建Server对象,并设置端口号、上下文路径等信息。
```
Server server = new Server(8080);
ServletContextHandler contextHandler = new ServletContextHandler(ServletContextHandler.SESSIONS);
contextHandler.setContextPath("/");
contextHandler.addServlet(new ServletHolder(new HelloServlet()), "/hello");
server.setHandler(contextHandler);
```
4. 启动Server
调用start方法启动Server。
```
server.start();
server.join();
```
完整代码示例:
```
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
response.getWriter().write("Hello,Jetty!");
}
}
public class EmbeddedJettyDemo {
public static void main(String[] args) throws Exception {
Server server = new Server(8080);
ServletContextHandler contextHandler = new ServletContextHandler(ServletContextHandler.SESSIONS);
contextHandler.setContextPath("/");
contextHandler.addServlet(new ServletHolder(new HelloServlet()), "/hello");
server.setHandler(contextHandler);
server.start();
server.join();
}
}
```
这样,就可以使用嵌入式Jetty运行Servlet了。访问http://localhost:8080/hello即可看到“Hello,Jetty!”的输出。