• JavaWeb之Servlet-----(1)


    目录

    Servlet简介:

    servlet是什么?

    优势:

    任务:

    创建Servlet

    Servlet的生命周期 

    Servlet的配置/注册

    web.xml:

    映射的匹配

    通过注解来简单写: 


    Servlet简介:

    servlet是什么?

    javaservelt是运行在web服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。

    通过使用Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。

    优势:

    • 性能更好
    • Servlet在Web服务器的地址空间内执行,这样他就没有必要再创建一个单独的进程来处理每个客户端请求。
    • Servlet独立于平台,因为它使用java编写的
    • Servlet是可信的,因为服务器上的java安全管理器执行了一系列限制,为了保护服务器计算机上的资源
    • Java类库的全部功能对于Servlet来说都是可用的。它可以通过 sockets 和 RMI 机制与 applets、数据库或其他软件进行交互。

    任务:

    1. Servlet就是一个普通的java类
    2. 可用处理发来的请求,给出响应

    创建Servlet

    我们在开发中一般会使用第三种方法来创建Servlet。

    1. 实现javax.servlet.Servlet接口
    2. 继承javax.servlet.GenericServlet

    3. 继承javax.servlet.http.HttpServlet

    Servlet的生命周期 

    1. 初始化后调用init()
    2. 调用service()来处理请求
    3. Servlet销毁前调用destroy()方法
    4. 最后由JVM的垃圾回收器进行回收

     加载类—>实例化(为对象分配空间)—>初始化(为对象的属性赋值)—>请求处理(服务阶段)—>销毁

    Servlet的配置/注册

    web.xml:

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
    5. version="4.0">
    6. <!-- 注册servlet -->
    7. <servlet>
    8. <servlet-name>hello</servlet-name>
    9. //servlet类地址
    10. <servlet-class>com.afternoon.HelloServlet</servlet-class>
    11. </servlet>
    12. <servlet-mapping>
    13. //给hello做一个映射↑的映射
    14. <servlet-name>hello</servlet-name>
    15. //处理什么请求
    16. <url-pattern>/hello.do</url-pattern>
    17. </servlet-mapping>
    18. </web-app>

    映射的匹配

    路径匹配:

    1.一个Servlet可以指定一个/多个映射路径

    1. <servlet-mapping>
    2.           <servlet-name>hello</servlet-name>
    3.           <url-pattern>/hello</url-pattern>
    4. </servlet-mapping>
    5. <servlet-mapping>
    6. <servlet-name>hello</servlet-name>
    7. <url-pattern>/hello2</url-pattern>
    8. </servlet-mapping>

    2.Servlet多种请求方式:都能访问到login.html  

    1. <servlet-mapping>
    2. <servlet-name>hello</servlet-name>
    3. <url-pattern>/hello.do</url-pattern>
    4. <url-pattern>/login.html</url-pattern>
    5. <url-pattern>/login/hello.do</url-pattern>
    6. <url-pattern>/login/add.cation</url-pattern>
    7. </servlet-mapping>

    3.Servlet无论输入的内容是什么都可以访问:

    <url-pattern>/user/*</url-pattern>

    扩展名匹配

    <url-pattern>*.do</url-pattern>

    如果用路径匹配:必须有/

    如果用扩展名匹配:必须不能有/ ,两者无法同时设立

    通过注解来简单写: 

    在类的顶上添加注解:@WebServlet("/hello.do")

  • 相关阅读:
    Vue3:父组件向子组件传值(Props)
    es笔记三之term,match,match_phrase 等查询方法介绍
    【C++并发编程】(九)线程池
    腾讯mini项目-【指标监控服务重构】2023-07-17
    ubuntu环境变量配置
    CarSim仿真快速入门(十七)—ADAS范围和跟踪传感器
    树论_1.
    深度学习十年感悟,从入门到放弃
    rabbitMQ系列之二 docker安装rabbitMQ
    C语言习题练习8--二进制&操作符
  • 原文地址:https://blog.csdn.net/weixin_49627122/article/details/126602114