1. 示例⚓
Web 应用程序开发人员通常编写 Servlet 来扩展 javax.servlet.http.HttpServlet,并实现 Servlet 接口的抽象类专门用来处理 HTTP 请求。
package servlets;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/user")
public class User extends HttpServlet{
private String msg;
@Override
public void init() throws ServletException {
msg = "Who are you ?";
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html");
PrintWriter pw = resp.getWriter();
pw.write("#" + msg);
}
}
注意:只有设置了返回内容的类型后,其字符集设置才会生效,否则仍会导致乱码。
1.1 Servlet 部署⚓
默认情况下,Servlet 应用程序位于路径
如果您有一个完全合格的类名称 com.myorg.MyServlet,那么这个 Servlet 类必须位于 WEB-INF/classes/com/myorg/MyServlet.class 中。
URL的映射配置有两种方式,一种是使用@WebServlet(/user)
注解,上述代码中已使用;一种是配置web.xml
:
<web-app>
<servlet>
<servlet-name>User</servlet-name>
<servlet-class>servlets.User</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>User</servlet-name>
<url-pattern>/user</url-pattern>
</servlet-mapping>
</web-app>
注意:这两种方式不能重复配置,即配置了两种方式指向了同一个URL,这样做会导致Tomcat启动失败。
至此部署完成,启动Tomcat:
访问:http://localhost:8080/user