• [Servlet]IJ idea搭建Servlet初步


    1____Servlet初步

    IJ Servlet 初始化博客推荐

    1.1____虚拟网页映射设置

    一般初始地址我们设置为 localhost:8081// 之后的就是我们设置的虚拟地址,或者是直接地址

    http://localhost:63342/test1/web/index.html?_ijt=o9vphrvo4tpl3tkh21plfhotpp 我初始化的界面用IJ 打开就是这个地址估计就是直接地址吧

    对于java的虚拟网页映射要在web.xml中设置,一个网页的虚拟映射由两个部分组成

    一个是
    - 这个是我们要注册servlet的名字,一般跟Servlet类名有关
    - 这个就是指向我们要注册的servlet 的类地址, 要带包路径

    另一个是
    - 这个要与 前面写的servlet一直
    - 配置这个组件的访问路径

    <servlet>
    <servlet-name>he</servlet-name>
    <servlet-class>src.hellow</servlet-class>
    </servlet>
    
    <servlet-mapping>
    <servlet-name>he</servlet-name>
    <url-pattern>/he</url-pattern>
    </servlet-mapping>
    ///---------------------------------------------
    <servlet>
    	<servlet-name>别名</servlet-name>
        <servlet-class>全类名</servlet-class>
    </servlet>
    <servlet-mapping>
         <servlet-name>别名</servlet-name>
         <url-pattern>需要servlet处理的请求地址</url-pattern>
    </servlet-mapping>
    
    

    servlet 的三个名字

    • Servlet的别名,程序员通过别名对Servlet进行配置

    Servlet的全类名,服务器通过全类名来创建Servlet的实例
    
    Servlet ***映射的请求地址***,用户通过该地址***访问Servlet***
    

    1.2____关于Servlet与HttpServlet


    HttpServlet 继承了Servlet类,这样便于处理HTTP协议的请求与相应,(Servlet还有个实现的抽象类 GenericServlet ,这里就不详细介绍了)

    补充一点HTTP协议的知识,便于理解后序的Cookie等方法的意义


    工作原理:

    ​ HTTP协议工作于客户端 -服务端(Client-server,C/S)架构上。浏览器作为HTTP客户端通过URL (在WWW上,每一信息资源都有统一的且在网上唯一的地址,它是WWW的统一资源定位标志,就是指网络地址。) 向HTTP服务端即WEB服务器发送所有请求。

    HTTP协调的特点

    • HTTP是无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
    • HTTP是媒体独立的:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。
    • HTTP是无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

    2____Servlet生命周期

    Tomcat里 servlet-api.jar - javax,serlet - resources - servlet

    //
    // Source code recreated from a .class file by IntelliJ IDEA
    // (powered by Fernflower decompiler)
    //
    
    package javax.servlet;
    
    import java.io.IOException;
    
    public interface Servlet {
        void init(ServletConfig var1) throws ServletException;
    
        ServletConfig getServletConfig();
    
        void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;
    
        String getServletInfo();
    
        void destroy();
    }
    
    

    Servlet 生命周期可被定义为从创建直到毁灭的整个过程。

    1. 构造器:
    • Servlet第一次处理请求时,会调用构造器,来创建Servlet实例。

    • 只会调用一次,Servlet是单例模式,他是以多线程的方式调用service()方法.

    • Servlet不是线程安全,所以尽量不要再service()方法中操作全局变量。

    1. init()方法:

      • 构造器调用之后马上被调用,用来初始化Servlet,只会调用一次。
    2. service()方法:

    • Servlet每次处理请求时都会调用service()方法,用来处理请求,会调用多次。
    1. destroy()方法:

      • Servlet对象销毁前(WEB项目卸载时)调用,用来做一些收尾工作,释放资源。

    注意指向 init() 的初始化方法,只执行一次

    1____init() 方法


    init 方法被设计成只调用一次。它在第一次创建 Servlet 时被调用,在后续每次用户请求时不再调用,因此它是用于一次性初始化。

    当用户调用一个 Servlet 时,就会创建一个 Servlet 实例,每一个用户请求都会产生一个新的线程,适当的时候移交给 doGet 或 doPost 方法。init() 方法简单地创建或加载一些数据,这些数据将被用于 Servlet 的整个生命周期。

  • 相关阅读:
    MyBatis参数传入集合之foreach动态sql
    【mybatis】多次查询缓存的问题
    svn is already locked解决方案
    Python 命令行之旅:使用 docopt 实现 git 命令
    Django 官方推荐的姿势:类视图
    这可能就是你苦苦寻找免费、高颜值、功能强大的 Markdown 编辑器(共5款)
    超级好用的 Java 数据可视化库:Tablesaw
    让你如“老”绅士般编写 Python 命令行工具的开源项目:docopt
    开发 Django 博客文章阅读量统计功能
    使用 Docker 让部署 Django 项目更加轻松
  • 原文地址:https://www.cnblogs.com/hoppz/p/14687605.html
Copyright © 2020-2023  润新知