使用Servlet需要在pom.xml中引入以下依赖:
<dependency>
<groupId>javax.servletgroupId>
<artifactId>javax.servlet-apiartifactId>
<version>4.0.1version>
<scope>providedscope>
dependency>
Servlet接口定义了以下5个方法
public void init(ServletConfig config) throws ServletException;
public ServletConfig getServletConfig();
public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException;
public String getServletInfo();
public void destroy();
init、service和destroy方法属于servlet生命周期方法。servlet根据以下原则调用这三个方法:
Servlet中的另外两个方法是非生命周期方法:getServletInfo和getServletConfig。必须注意的一点是线程安全性。一个应用程序中的所有用户将共用一个Servlet实例。
确保在pom.xml文件中已经引入servlet-api依赖包。项目目录结构如下:
package com.servlet.demo;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(name = "MyServlet", urlPatterns = {"/my"})
public class MyServlet implements Servlet {
private transient ServletConfig servletConfig;
@Override
public void init(ServletConfig config) throws ServletException {
this.servletConfig = config;
}
@Override
public ServletConfig getServletConfig() {
return servletConfig;
}
@Override
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
String servletName = servletConfig.getServletName();
res.setContentType("text/html");
PrintWriter writer = res.getWriter();
writer.print("Hello from " + servletName + "");
}
@Override
public String getServletInfo() {
return "My Servlet";
}
@Override
public void destroy() {
}
}
上述使用了@WebServlet注解,所以需要在web.xml中配置允许使用注解,web.xml 的顶层标签 中有一个属性:metadata-complete,该属性用于指定当前 web.xml 是否是完全的。若该属性设置为 true,则容器在部署时将只依赖 web.xml,忽略所有的注解。若不配置该属性,或者将其设置为 false,则表示启用注解支持。配置如下所示:
DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0" metadata-complete="false">
<display-name>Archetype Created Web Applicationdisplay-name>
web-app>
现在,就可以运行Servlet项目了。
依次按照下图顺序点击运行:
运行成功后如下图所示,有一个对钩
然后浏览器中输入如下所示:
【Java后台】从零开始的Java后台开发(二)
【Java后台】从零开始的Java后台开发(一)