• 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协议应用开发,例如网站 
  • 相关阅读:
    vue进阶04-vue文档生成工具vuepress2
    动态规划:2304. 网格中的最小路径代价
    34汽车租聘系统Javaweb ssm
    儿童龋齿:原因与预防护理
    Java——JDBC(Java DataBase Connectivity)数据库连接技术
    【Python】万字长文,Locust 性能测试指北
    算法_每日一题(9.6)
    区分公私件教程
    国考省考行测:问题型材料主旨分析,有问题有对策,主旨是对策,有问题无对策,要合理引申对策
    LinkedIn领英开发客户方法大全(篇二)
  • 原文地址:https://blog.csdn.net/weixin_50518344/article/details/127892519