Java登陆第二十六天——Servlet

静态资源和动态资源

  • 静态资源
    • 程序运行之前就存在于服务器之中的资源。

例如html、css、js、img、音频文件和视频文件等。

  • 动态资源
    • 不是指动画,运动的效果。

    • 程序运行之前无法确定其数据,通过代码动态的生成数据。

    • 程序运行时,通过代码生成的资源。

例如Servlet、Thymeleaf(模板引擎)等。

Servlet

Servlet是主要运行在服务端(Tomcat)的一种Java程序,可以动态生成Web网页。
image

能够处理客户端请求并作出响应的一套技术标准就是Servlet。

Servlet是运行在服务端的,所以Servlet必须运行在Tomcat这样的服务器软件中。

从代码层面上来说,Servlet就是一个接口。

Servlet运行流程

image

Servlet开发过程

1.开发一个Web

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form method="get" action="TestServlet">
        用户名:<input type="text" name="uname"><br>
        <input type="submit" value="提交">
    </form>
</body>
</html>

2.编写一个Servlet(注意导包,如果是javax的需要引入Tomcat10的Servlet)

import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;
import java.io.PrintWriter;

public class HelloServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        /*
        1.从HttpServletRequest(请求报文)中获取参数uname
        2.逻辑代码
        3.将要响应的数据放入HttpServletResponse(响应报文)
         */
        String str = req.getParameter("uname");
        boolean flag=true;//设置一个待返回的标记
        if (str.equals("abc")){
            flag=false;
        }
        PrintWriter writer = resp.getWriter();//获取打印流
        writer.write(flag+"");
    }
}

3.编写web.xml映射

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <!--
     1.servlet-name     用于关联映射路径
     1.servlet-class    告诉Tomcat要实例化Servlet类的全类名
     2.url-pattern      URL路径
               -->
    <servlet>
        <servlet-name>Test1</servlet-name>
        <servlet-class>com.example.JavaWeb.HelloServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>Test1</servlet-name>
        <url-pattern>/TestServlet</url-pattern>
    </servlet-mapping>

</web-app>

image

当请求方式为POST时,参数在请求报文体中。

如何引入Tomcat10的Servlet?

点击右上角查看项目结构
image
+号引入依赖
image
选择lib-servlet-api即可(同时也要删除pom.xml中自带的servlet)
image

posted @ 2023-12-20 22:12  rowbed  阅读(6)  评论(0编辑  收藏  举报