• Servlet


    Servlet

    Servlet是一个用于扩展服务器端功能的服务器端组件技术

    • 运行在服务器端,所以调用执行是由服务器负责——在web.xml中需要进行配置,就是将servlet和一个请求地址建立对应关系,当浏览器对地址 发起请求时,服务器则按照规则调用serlvet类中的方法
    • 服务器端的组件技术 ——直接或者间接的实现Servlet接口
    • 用于扩展服务器端功能,可以实现动态网页的开发

    Servlet接口

    1、定义类实现Servlet接口 

    1. public class HelloServlet implements Servlet {
    2. //在Servlet类实例化后自动执行的方法,这个方法在servlet对象的整个生命周期中运行且只运
    3. 行一次。主要用于实现Servlet的初始化操作,例如读取配置文件中当前Servlet的初始化配置信息。
    4. 当服务器调用该方法时会将当前servlet的初始化配置存储在cnfig对象中
    5. public void init(ServletConfig config) throws ServletException {
    6. this.config=config; //缓存config对象
    7. }
    8. //用于供其它位置获取config对象时进行调用
    9. private ServletConfig config;
    10. public ServletConfig getServletConfig() {
    11. return config;
    12. }
    13. //在init方法执行后,服务器调用service方法用于生成针对客户端的响应信息。服务器采用多
    14. 线程的方式运行service方法,一个客户端请求对应一个线程。服务器调用service方法时会传入2个参
    15. 数对象,req用于封装客户端的请求信息,resp用于封装服务器的响应信息。Servlet默认采用单实例
    16. 多线程的方式对客户端浏览器请求提供服务,service执行完成后不会自动销毁,而是常驻内存
    17. public void service(ServletRequest req, ServletResponse resp) throws
    18. ServletException, IOException {
    19. }
    20. //一般供获取当前servlet对象的说明信息
    21. public String getServletInfo() {
    22. return "当前servlet对象的说明信息";
    23. }
    24. //在servlet对象销毁之前执行,用于进行资源回收。一个servlet对象在整个生命周期运行且只
    25. 运行一次。servlet对象默认是常驻内存,只有在服务器关闭或者内存严重不足而当前Servlet对象被
    26. GC机制选中时才会被销毁
    27. public void destroy() {
    28. }
    29. }

    2、在web.xml中针对servlet类进行配置,将servlet和一个或者多个地址建立对应关系

    1. "1.0" encoding="UTF-8"?>
    2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    4. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
    5. http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
    6. id="WebApp_ID" version="4.0"> xml文件头用于说明当前xml文件的语法规则
    7. <servlet> 将servlet类和一个名称建立对应关系
    8. <servlet-name>helloservlet-name>
    9. <servlet-class>com.yan.action.HelloServletservlet-class>
    10. servlet>
    11. <servlet-mapping> 将一个servlet名称和请求地址建立对应关系
    12. <servlet-name>helloservlet-name>
    13. <url-pattern>/hello.dourl-pattern>
    14. servlet-mapping>
    15. web-app>

    servlet三生命周期

    • init 只运行一次
    • service 单实例多线程的方式对外提供服务 常驻内存
    • detroy

    Servlet开发 

    • 直接实现Servlet接口
    • 抽象类GenericServlet用于非标准协议开发,例如游戏的服务器端
    • 抽象类HttpServlet是GenericServlet的子类,用于http协议应用开发,例如网站 
  • 相关阅读:
    跨境电商开店咨询话术
    二分查找【数组】
    芒果改进YOLOv7系列:首发改进特征融合网络BiFPN结构,融合更多有效特征
    一文搞懂drag&drop浏览器拖放功能的实现
    回溯 Leetcode 332 重新安排行程
    Java并发编程指南:如何正确使用信号量和线程池熔断机制
    达梦数据库报错:Invalid column name [PASSWORD]
    信息学奥赛一本通 1357:车厢调度(train)
    博菱电器创业板过会:收入依赖单一客户,“创二代”袁琪本科肄业
    快速乘的不同实现方式
  • 原文地址:https://blog.csdn.net/weixin_50518344/article/details/127892519