Servlet 教程学习笔记

什么是Servlet?

Servlet也叫做Java Servlet,是运行在Web服务器上的Java程序,用于处理客户端发送的请求并返回响应。Servlet通常作为Web应用程序的一部分被部署,可以动态地生成HTML页面。

Servlet的基本结构

Servlet主要由以下三个部分组成:

  1. 初始化参数:在Servlet运行之前必须进行设置的参数,例如数据库连接信息等。

  2. 生命周期方法:Servlet在运行过程中会调用这些方法,如init()、service()和destroy()。

  3. 业务处理代码:在service()方法中编写,用于处理客户端请求并生成响应。

如何创建一个Servlet

创建Servlet需要按照以下步骤进行:

  1. 创建Java类,继承javax.servlet.http.HttpServlet。
javaCopy Code
import javax.servlet.http.HttpServlet; public class MyServlet extends HttpServlet { // 实现业务处理代码 }
  1. 在web.xml文件中配置Servlet。
xmlCopy Code
<servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.example.MyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/myservlet</url-pattern> </servlet-mapping>
  1. 部署Web应用程序并启动Web服务器。

Servlet的常用注解

除了在web.xml文件中配置Servlet外,还可以使用注解方式进行配置。常用的注解有:

  1. @WebServlet:用于配置Servlet的URL映射信息。
javaCopy Code
@WebServlet(urlPatterns = {"/myservlet/*"}) public class MyServlet extends HttpServlet { // 实现业务处理代码 }
  1. @WebInitParam:用于在Servlet初始化时设置参数。
javaCopy Code
@WebServlet(urlPatterns = {"/myservlet/*"}, initParams = {@WebInitParam(name = "database_url", value = "jdbc:mysql://localhost:3306/mydb")}) public class MyServlet extends HttpServlet { // 实现业务处理代码 }

Servlet的应用场景

Servlet通常用于实现以下功能:

  1. 动态网页生成:根据用户请求生成动态HTML页面。

  2. 表单数据处理:处理用户提交的表单数据并将其插入数据库等操作。

  3. AJAX交互:处理前端发送的AJAX请求,返回JSON数据等响应。

实例:一个简单的Servlet程序

下面是一个简单的Servlet程序,用于接收GET请求并向客户端返回一段文本。

javaCopy Code
import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class HelloServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { response.setContentType("text/plain;charset=UTF-8"); response.getWriter().write("Hello, World!"); } }

在web.xml文件中添加以下配置:

xmlCopy Code
<servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>com.example.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping>

启动Web服务器,访问http://localhost:8080/your-webapp-context/hello,即可看到"Hello, World!"这段文字。