• 我的学习之路_第三十章_servlet


    servlet:小服务程序


    servlet是JavaWeb体系中的三大核心(servlet/Filter/Listener)之一,而且是最主要的那个.

    作用:接受请求,处理请求,做出响应

    继承体系:servlet(接口)-->GenericServlet(抽象类)-->HttpServlet(抽象类)

    servlet(接口):

    init:初始化:servlet是第一次被访问时初始化的,在服务器运行期间,servlet都只有一个对象
    多个访客使用的是多条线程.

    destroy:销毁:只有正常关闭服务器时才会调用此方法.

    servlet:服务:被访问时调用此方法

    在运行过程中某一个类的对象永远只有一个,叫单例模式

    service( ServletRequest , ServletResponse ):服务,接收请求

    Request对象代表的是浏览器发送到服务器的请求*
    Response对象代表的是服务器向浏览器发送的响应*


    getServletConfig:取得servletConfig

    getServletinfo:取得servletinfo

    【Servlet的生命周期】

    创建:
    第一次被访问(默认),只初始化一次
    通过修改web.xml配置文件把servlet的创建改为项目启动即初始化
    web.xml的servlet标签中添加一个 load-on-startup 标签,值为整数,一般设置为2(0-4,是一个优先级),
    其中0和1是系统使用的,所以尽量不要用.
    销毁:项目关闭(并不是服务器的启动和停止)

    【servlet的路劲设置】 : url-pattern(过滤器也使用)

    完全匹配:不含通配符的
    /aaa/bbb 访问目标为/aaa/bbb的请求,运行此servlet

    路径匹配:
    /aaa/* /* /ab* ,前半段匹配即可

    后缀匹配:
    *.xxx 后半段匹配即可

    默认: / 执行默认servlet(不用)

    原则:
    1.*要么开头,要么结尾,不能在中间.
    2.路径如果不以*开头,则必须以/开头.(也就是说必须是绝对路径)
    3.配置文件中的路径/aa/bb不带项目名的
    4.页面中的超链接 表单提交的路径,绝对路径是要项目名的
    原因:1.配置文件是属于某一个WEB项目的,所以不需要项目名
    2.而对于页面来说,浏览器面对的WEB服务器,而服务器中是可以有多个项目的,所以
    页面中的绝对路径的根代表的是服务器,所以以后要带项目名
    例如:http://localhost:8080/day34/hello.servlet
    程序 配置文件中的路径,服务端的WEB路径:
    配置文件:<url/pattern> /hello.servlet</url-pattern>,开头的/代表的是当前项目的根
    页面中的路径,客户端的WEB路径:
    页面:<a href="day34/hello.servlet">aaa</a> 开头/代表的是服务器
    特列:重定向


    【servlet如何接受请求】

    servlet的核心方法(servlet接口 servlet,HttpServlet : doGet doPost)接受两个参数:请求和响应对象,这两个对象是WEB服务器在接收到Http的请求
    后,封装的两个JavaBean.请求和响应相关的信息都封装在这两个对象中
    如果浏览器在发送请求是提交的表单的参数,则找Request对象来取得:
    String getParameter(String name) <input type="" name="" value="">

    【servlet如何发送响应:】

    resp.getWriter().write("响应内容") 响应对象的输出流(向浏览器输出内容的流)

    代码分层:
    servlet:负责流程,接受请求,调用哪个service,响应什么信息
    service:负责实现功能(业务逻辑),涉及底层的数据时,调用dao层
    dao:只负责数据的操作(CURD),不参与业务

    代码分层的总结:
    1.为了让程序结构更加清楚
    2.后续的维护和扩展工作中,变的更简单
    3.工程性(后续的可维护性和可扩展性)

  • 相关阅读:
    【转载】C#中List集合使用Remove方法移除指定的对象
    【转载】C#中List集合使用RemoveAt方法移除指定索引位置的元素
    【转载】C#中ToArray方法将List集合转换为对应的数组
    【转载】C#中List集合使用RemoveRange方法移除指定索引开始的一段元素
    【转载】C#中Add方法将往List集合末尾添加相应元素对象
    【转载】C#中List集合使用Reverse方法对集合中的元素进行倒序反转
    【转载】C#中通过Distinct方法对List集合进行去重
    【转载】 C#中使用CopyTo方法将List集合元素拷贝到数组Array中
    【转载】 C#中通过Where方法查找出所有符合条件的元素集合
    Android -- Camera聚焦流程
  • 原文地址:https://www.cnblogs.com/jia-/p/7163191.html
Copyright © 2020-2023  润新知