Servlet 使用

Servlet 使用

  • 1. Servlet 常见方法与生命周期
    • 1.1 概念
    • 1.2 HttpServlet处理Http请求
    • 1.3 Servlet
  • 2. 表单的方式提交http请求

1. Servlet 常见方法与生命周期

1.1 概念

Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程:

  • Servlet 通过调用 init () 方法进行初始化。
  • Servlet 调用 service() 方法来处理客户端的请求。
  • Servlet 通过调用 destroy() 方法终止(结束)。
  • 最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。

1.2 HttpServlet处理Http请求

HttpServlet中的Service方法会检验用来发送请求的HTTP方法(通过调用request.getMethod() ), 并调用以下方法之一:

方法名称 重要性
doGet 重要且常用
doPost 重要且常用
doHead 了解
doPut 了解
doTrace 了解
doOptions 了解
doDelete 了解

这7中方法, 每一种都表示一个HTTP方法. doGet 和 doPost 最常用.

1.3 Servlet

Servlet 使用_第1张图片
Servlet是以java代码的方式, 提供一个服务资源

2. 表单的方式提交http请求

<form action="login" method="post">
    用户名:<input type="text" name="username">
    <br><br>
    密码:<input type="password" name="password">
    <br><br>
    <input type="submit" value="登录">
form>

Servlet 使用_第2张图片
表单提交格式:

  • get方法, queryString 作为请求数据集
  • post方法, 请求数据是放在body, 格式和 queryString格式一样

Servlet 使用_第3张图片
Servlet 使用_第4张图片

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("/login")

public class LoginServlet extends HttpServlet {
     

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
     
        req.setCharacterEncoding("UTF-8");
        resp.setCharacterEncoding("UTF-8");
        resp.setContentType("text/html");

        // 解析请求: header, method, url, 请求数据
        // 通过键获取值, 如果改键没有值, 返回 null
        String username = req.getParameter("username");
        String password = req.getParameter("password");


        PrintWriter pw = resp.getWriter();

        // 数据库根据客户端用户输入的账号密码, 查询有没有该数据
        // 简单的模拟

        if ("abc".equals(username) && "123".equals(password)) {
     
            pw.println("

欢迎你 " + username + "

"
); } else { pw.println("

用户名或密码错误

"
); } } }

你可能感兴趣的:(Web开发,servlet)