servlet学习

1.Servlet 是一种通过实现 javax.servlet.Servlet 接口的 Java 类,用于处理 HTTP 请求并返回 HTTP 响应。它能够接受来自客户端(如浏览器)的请求,进行处理,并生成响应内容(通常是 HTML)。
2. Servlet 的工作原理
客户端(浏览器)发出 HTTP 请求。
Web 服务器接收到请求,并将其交给负责该请求的 Servlet。
Servlet 处理请求并生成响应内容。
Web 服务器将响应内容返回给客户端。

  1. Servlet 的生命周期
    Servlet 的生命周期由三个主要方法控制,这些方法由 servlet 容器(如 Tomcat)调用。

init():Servlet 被创建后调用。在此方法中可以进行初始化操作。
service():每当有请求来时,调用该方法。根据请求的类型(如 GET 或 POST),Servlet 会转发请求到相应的方法(如 doGet() 或 doPost())。
destroy():在 Servlet 被销毁前调用。可以在此方法中释放占用的资源。
4. 常用 API
javax.servlet.Servlet:定义 Servlet 的接口。
javax.servlet.http.HttpServlet:是 Servlet 接口的一个子接口,专门处理 HTTP 请求。
javax.servlet.ServletRequest:代表客户端请求。
javax.servlet.ServletResponse:代表响应客户端的响应。
javax.servlet.ServletContext:表示整个 Web 应用上下文信息。
javax.servlet.http.HttpServletRequest 和 javax.servlet.http.HttpServletResponse:分别代表 HTTP 请求和响应对象。
5. 示例代码

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

// 使用注解定义 Servlet
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
        
        // 设置响应内容类型
        response.setContentType("text/html");
        
        // 获取输出流
        PrintWriter out = response.getWriter();
        
        // 输出响应内容
        out.println("<html><body>");
        out.println("<h1>Hello, World!</h1>");
        out.println("</body></html>");
    }
}
  1. 部署 Servlet
    编写 web.xml:在 WEB-INF 目录下的 web.xml 文件中配置 Servlet。
<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>

打包和部署:将项目打包为 WAR 文件并部署到 Servlet 容器(如 Apache Tomcat)中。

  1. 访问 Servlet
    一旦 Servlet 部署成功,你可以通过浏览器访问 http://localhost:8080/yourapp/hello 来测试 Servlet。
posted @ 2024-10-29 21:23  Look_Back  阅读(4)  评论(0编辑  收藏  举报