java基础_JavaWeb(一)

本文为JavaWeb知识点回顾笔记,有不足之处,错误之处,望各位读者指出。

JavaWeb知识点复习笔记


1、什么是Servlet?

存放在服务器端的一段java代码,对请求进行处理并做出响应。

2、Servlet的生命周期?

传送门:JavaWeb Servlet详解一

  • Servlet的生命周期就是Servlet从创建出实例对象到其销毁的过程。
  • Servlet是一个容器,它负责创建实例来接受客户端的请求,并且以多线程的方式响应给客户。
    Servlet生命周期之中一共经历了5各阶段:
  • 类的加载
  • 实例化(创建servlet实例对象)
  • 初始化(调用init()方法)
  • 服务(调用service()方法,根据客户请求方式选择用doGet()或doPost()方法)
  • Servlet销毁(调用destroy()方法)
    注意: Servlet在其整个生命周期中只创建了一个对象!!!
  • 3、Jsp和Servlet的区别和联系?

    区别:

  • jsp经编译后就变成了Servlet.
    (JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的java类)
  • jsp更擅长表现于页面显示,servlet更擅长于逻辑控制.
  • Servlet中没有内置对象,Jsp中的内置对象都是必须通过HttpServletRequest对象,HttpServletResponse对象以及HttpServlet对象得到.
  • Jsp是Servlet的一种简化,使用Jsp只需要完成程序员需要输出到客户端的内容,Jsp中的Java脚本如何镶嵌到一个类中,由Jsp容器完成。
    而Servlet则是个完整的Java类,这个类的Service方法用于生成对客户端的响应。
    联系:
  • JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。JSP编译后是“类servlet”。
    Servlet和JSP最主要的不同点在于:
  • Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。
  • 而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。
  • JSP侧重于视图,Servlet主要用于控制逻辑
  • Servlet更多的是类似于一个Controller,用来做控制。
  • 4、Http协议?

    HTTP协议(Hypertext Transfer Protocol)超级文本传输协议;
    HTTP的请求格式,总共分为三部分:

  • 请求方法,URL,HTTP协议的版本
  • 请求头(request Header)
  • 请求正文(request Content)
    HTTP的请求方式
  • get
  • post
  • 5、JavaBean的标准动作?
    • 创建JavaBean的对象
    • 设置对象的属性
    • 获得对象的属性的值
    • 把另一个jsp页面嵌入到本页面
    • 把用户请求转发到其它页面
    6、静态包含<%@ include>与动态包含<jsp:include>的区别?

    静态包含发生在:JSP—->java文件阶段。
    动态包含发生在:执行class文件阶段。动态加入。

    静态包含:只生成一个java文件
    动态包含:生成多个class文件。

    静态包含(指令元素)
    <%@ include file=”date.jsp” %>

  • 不能通过fileurl向被包含的jsp页面传递参数,因为此静态包含是发生在jsp页面转换为servlet的转换期间,此时的参数是服务器端设置的死的参数,完全没有经过客户端,这种参数是没有意义的,如<%@include file=“fileurl?user=admin”%>,而且此时会报错。
  • 包含的jsp页面与被包含的jsp页面共用一个request内置对象
    动态包含(动作元素)
  • include指令在转换时候不会被编译,只有在客户端请求时才会被动态的编译载入
  • 可带参数
  • 不同的request对象,可以取得包含它的页面的参数并添加了自己的参数
  • 7、sendRedirect(重定向) 和forward(转发)的区别?

    原文
    请求转发:request.getRequestDispatcher(“/xx.jsp”).forward(request,response);
    其特点是:地址栏无变化,始终是一个请求,转发的对象可以使本工程内的任何页面。
    重定向:response.sendRedirect(“资源的URL”);
    就相当于客户端向服务器请求时,服务器响应给客户端一个新的URL浏览器就把请求传递个一个新的页面
    特点是:地址发生了变化,重定向的范围没有限制。
    转发是服务器行为,重定向是客户端行为


    1.转发在服务器端完成的;重定向是在客户端完成的

    2.转发的速度快;重定向速度慢

    3.转发的是同一次请求;重定向是两次不同请求

    4.转发不会执行转发后的代码;重定向会执行重定向之后的代码

    5.转发地址栏没有变化;重定向地址栏有变化

    6.转发必须是在同一台服务器下完成;重定向可以在不同的服务器下完成

    在servlet中调用转发、重定向的语句如下:

    request.getRequestDispatcher(“new.jsp”).forward(request, response);//转发到new.jsp

    response.sendRedirect(“new.jsp”);//重定向到new.jsp

    转发过程:客户浏览器发送http请求,web服务器接受此请求,调用内部的一个方法在容器内部完成请求处理和转发动作,将目标资源发送给客户;在这里,转发的路径必须是同一个web容器下的url,其不能转向到其他的web路径上去,中间传递的是自己的容器内的request。在客户浏览器路径栏显示的仍然是其第一次访问的路径,也就是说客户是感觉不到服务器做了转发的。转发行为是浏览器只做了一次访问请求。

    重定向过程:客户浏览器发送http请求,web服务器接受后发送302状态码响应及对应新的location给客户浏览器,客户浏览器发现是302响应,则自动再发送一个新的http请求,请求url是新的location地址,服务器根据此请求寻找资源并发送给客户。在这里location可以重定向到任意URL,既然是浏览器重新发出了请求,则就没有什么request传递的概念了。在客户浏览器路径栏显示的是其重定向的路径,客户可以观察到地址的变化的。重定向行为是浏览器做了至少两次的访问请求的。

    重定向,其实是两次request

    第一次,客户端request A,服务器响应,并response回来,告诉浏览器,你应该去B。这个时候IE可以看到地址变了,而且历史的回退按钮也亮了。重定向可以访问自己web应用以外的资源。在重定向的过程中,传输的信息会被丢失。

    sendRedirectforward
    是不同的request虽是不同对象,但可取到上个页面的值
    send后的语句可以执行,除非returnforward后的内容不会继续发送到客户端
    需要到客户端的往返,可以转到任何页面服务器内部转换
    地址栏有变化地址栏无变化
    可以传参数,直接跟在URL后面不可传参数
    8、JavaBean的优点?

    可被多个页面重用
    可以在多个应用程序中使用
    可以跨平台

    9、JavaBean的范围?

    JavaBean的scope属性,scope属性决定了JavaBean对象存在的范围
    page:表示页面的范围;它是scope属性的默认值
    request:表示请求范围:(服务器端响应一次客户请求的过程,从servlet容器接受一个客户请求开始,到返回响应结果结束)
    session:表示会话范围(session的生命的周期及会话范围)
    application:表示在web应用范围

    10、web.xml顺序
    
    <WEB-APP>:web应用的根元素
    <display-name>:web应用的名字
    <discription>:对web应用的描述
    <filter>:定义过滤器
    <filter-mapping>为过滤器指定URL映射
    <servlet>定义servlet
    <sevlet-mapping>为servlet指定URL映射
    <session-config>配置http会话
    <welcome-file-list>设置web应用的welcome文件清单
    <taglib>声明引用标签
    <resource-ref>声明引用的JNDI(Java Naming And Directory Interface)资源
    <security-constraint>配置安全约束
    <login-config>配置安全验证登陆
    <security-role>配置安全角色
    
    11、EL表达式

    1)EL表达式语言中隐含的对象
    applicationScope:把web应用范围内的属性名和属性值进行映射
    cookie:把客户请求中的cookie名和cookie对象进行映射
    header:HTTP请求头部的项目名和项目值进行映射
    headerValues:把HTTP请求头部的项目名和所有匹配的项目值的数组进行映射
    initparam:把web应用的初始化参数名和参数值进行映射
    pageContext:表示javax.servlet .jsp.PageContext对象
    pageScope:把页面范围内的属性名和属性值进行映射
    param:把客户请求中的请求参数名和参数值进行映射
    paramValues:把客户请求中的请求参数名和所匹配的参数值数组进行映射
    requestScope:把请求范围的属性名和属性值进行映射
    sessionScope:把会话范围内的属性名和属性值进行映射
    2)EL中的表示特定范围
    pageScope,requestScope,sessionScope,applicationScope
    3)表示HTTP请求中的特定数据
    Header,headerValues,param,paramValues
    表示pageContext对象
    pageContext.servletContext p a g e C o n t e x t . s e r v l e t C o n t e x t {pageContext.request}
    pagecontext.response p a g e c o n t e x t . r e s p o n s e {pagecontext.session}
    4)表示web应用的初始化参数的集合
    initParam.driverEL访jsp i n i t P a r a m . d r i v e r 在 E L 表 达 式 里 面 无 法 直 接 访 问 j s p 文 件 中 的 隐 含 对 象 必 须 例 如 {pageContext.request.requestURL}

    12、自定义JSP标签

    1.Servlet容器得到了Tag对象后会通过下面的步骤
    Servlet容器调用Tag对象的setPageContext()和setParent()方法,把当前jsp页面的PageContext对象及父标签处理对象传给当前Tag。如果不存在父标签,把父标签处理对象设为null
    Servlet容器调用Tag对象的一系列set方法,设置Tag对象的属性。如果标签没有属性,则不需要这个步骤
    Servlet容器调用Tag对象的doStartTag()方法
    如果doStartTag()方法返回Tag.skip_body就不执行标签主体内容,如果doStartTag()方法返回Tag.EVAL_BODY_INCLUDE,就执行标签主体内容
    Servlet容器调用Tag对象的doEndTag()方法
    如果doEndTag方法返回Tag.SKIP_PAGE,就不执行标签后面的jsp代码。如果doEndTag方法返回Tag.EVAL_PAGE
    2.Servlet容器得到IterationTag对象后,会调用下面的方法
    1)Servlet容器调用IterationTag对象的setPageContext()和setParent()方法,把当前的jsp页面的PageContext对象及父标签处理对象传给当前IterationTag对象,如果不存在父标签,则把父标签处理对象设为NULL
    2)servlet容器调用IterationTag对象一系列的set方法,设置IterationTag对象的属性。如果没有标签,则没有这个步骤
    3)Servlet容器调用IterationTag对象的doStartTag方法;
    4)如果doStartTag()方法返回Tag.skip_body就不执行标签主体内容,如果doStartTag()方法返回Tag.EVAL_BODY_INCLUDE,就执行标签主体内
    5)如果执行了标签主体的内容,那么就调用doAfterBody方法
    6)如果doAfterBody放回Tag.SKIP_BODY,就不再执行标签的主体内容如果返回Tag.EVAL_BODY_AGAIN,就继续重复执行标签的主体的内容
    7)Servlet容器调用IterationTag对象的doEndTag()方法
    8) 如果doEndTag方法返回Tag.SKIP_PAGE,就不执行标签后面的jsp代码。如果doEndTag方法返回Tag.EVAL_PAGE

    13、JSTL语言

    JSTL标签库包含五个不同的标签库

    标签库名前缀URL描述
    Corechttp://java.sun.com/jsp/jstl/core核心标签库,包括一般用途,条件,迭代和URL相关的标签
    I18Nfmthttp://java.sun.com/jsp/jstl/fmt国际化web应用标签,以及日期,时间,数字格式化的标签
    Sqlsqlhttp://java.sun.com/jsp/jstl/sql访问关系数据库
    Xmlxhttp://java.sun.com/jsp/jstl/xml包含对xml文档进行操作的标签
    Functionfnhttp://java.sun.com/jsp/jstl/function包含一组通用的el函数,el表达式中可以应用这些el函数
    14、JSTL Core标签库
    1.一般用途的标签
    <c:out>:把一个表达式的结果打印到网页上
    <c:set>:设置命名变量的值。如果命名变量为JavaBean,还可以设置JavaBean的属性的值;
    如果命名变量为map类型,还可以设置与其中的key对应的值
    <c:remove>:删除一个命名变量
    <c:catch>:用于捕获异常,并把异常对象放在指定的命名变量中
    2.条件标签
    <c:if>:相当于java中的if语句
    <c:choose>,<c:when><c:otherwise>相当于java中的if-alse语句
    <c:choose>
        <c:when>IF
    </c:when>
    <c:when>ELSE IF
    </c:when>
    <c:otherwise>ALSE
    </c:otherwise>
    </c:choose>
    3.迭代标签
    <c:foreach>:用于遍历集合对象,并且能重复执行标签主体
    <c:forTokens>:用于遍历字符串中用特定分隔符分割的子字符串,并且能重复执行标签主体
    4.URL相关标签
    <c:import>包含其他web资源相当于<jsp:include>指令的作用
    <c:url>按照特定的重写规则重新构造url
    <c:redirect>:负责重定向
    5.JSTL 国际化标签
    <fmt:setLocale>设置locale,把locale保存到特定的范围内
    <fmt:setBundle>设置ResourceBundle,把ResourceBundle保存到特定范围内
    <fmt:bundle>设置标签主体使用的ResourceBundle;
    <fmt:message>根据属性key返回ResourceBundle中匹配的消息文本
    <fmt:param>为消息文本中的消息参数设置值
    <fmt:requestEncoding>:设置Http请求正文使用的字符编码
    6.JSTL 格式化标签
    <fmt:setTimeZone>:设置时区,把时区保存到特定的范围
    <fmt:timeZone>:设置标签主体使用的时区
    <fmt:formartNumber>:格式化数字
    <fmt:parseNumber>解析被格式化的字符串类型的数字
    <fmt:formartDate>格式化日期和时间
    <fmt:parseDate>解析被格式化的字符串类型的日期和时间
    7.SQL标签库
    <sql:setDateSource>设置数据源
    <sql:query>执行SQL select语句
    <sql:param>为SQL语句中的?表示的参数赋值
    <sql:dateparam>为SQL语句中的?表示的日期或时间类型参数赋值
    <sql:update>执行SQL insert,update,delete语句,以及执行SQL DDL
    <sql:transaction>:声名数据库事务,会话跟踪机制
    
    15、会话跟踪技术主要包括:Cookie、session、隐藏表单域、重写url

    Cookie会话:
    创建Cookie:
    Cookie cookie = new Cookie(“name”,”Tom”);
    将Cookie对象添加到HTTP响应中:
    Response.addCookie(cookie);
    读取客户端Cookie:
    Cookie[] cookies = request.getCookie();
    例子:

    Cookie cookie = new Cookie("name","value");
    response.addCookie(cookie);
    Cookie cookie = null;
    Cookie[] cookies = request.getCookies();
    if (cookies != null)
    {
        out.println(“<h2>找到的每个 cookie 的名称和值</h2>");
        for (int i = 0; i < cookies.length; i++)
        {
            cookie = cookies[i];
            cookie.getName();
            cookie.getValue();
        }
    }
    
    
    

    Session会话:

    获取session:
    HttpSession session = request.getSession();
    添加:
    Session.setAttribute(“name”,”tom”);
        RequestDispatcher rd= request.getRequestDispatcher(“/跳转的路径”);
        rd.forword(request,response);
        然后在跳转的页面上通过:
        session.getAttribute(“name”);来获得值。
    
    
    16、隐藏表单域
    将会话跟踪字段的隐藏表单域添加到 HTML 页面,但是不会
    显示在客户端浏览器中。如:
    <form action = “/firsthtml.jsp” method=”POST”>
    <input type = “hiddenname=“useridvalue=“zhangsan”>
    </form>
    
    17、URL重写
    URL(统一资源定位) 重写技术将一个唯一的会话 ID 添加到 
    URL 结尾,以标识该会话。例如,重写以下 URL 传递会话 ID:10
    原始 URLhttp://server:post/servlet/Rewritten
    用附加信息重写的 URLhttp://server:post/servlet/Rewritten/10
    用添加的参数重写的 URLhttp://server:post/servlet/Rewritten?sessionid=10
    用自定义修改重写的 URLhttp://server:post/servlet/Rewritten;$sessionid$10
    
    
    18、Jsp页面的构成元素
    1)静态模版:静态模版由HTML,CSS,JavaScript等静态网页元素组成;
    (2)指令:指令主要用来提供整个Jsp网页相关的信息,并且用来设定Jsp页面的相关属性。
    如:<%@......%>中的内容就是Jsp指令。在Jsp中两个最重要的指令是:page指令,include指令
    page 指令用于设置 JSP 页面的属性,主要属性有:
    language(声明脚本语言的种类,目前只能为java);
    import(用于导入一个或多个包,同时导入多个java包时中间用“,”隔开);
    session(表示是否允许session会话,其值默认为true),buffer(设置缓冲区大小,默认是8kb);
    autoFlush(是否刷新缓冲区);
    isThreadSafe(设置Jsp文件是否能多线程使用);
    errorPage(指定接收Exception对象的Jsp页面的URL);
    isErrorPage(设置当前页面是否是一个error页面,是否接受一个Exception对象);
    contentType(设置页面类型和字符集,默认是”text/html;charset=ISO-8859-1”)。
    include 指令用于在运行时将 HTML文件或 JSP页面嵌入到另一个 JSP页面
    include 指令语法<%@ include file = ”文件名” %>3)表达式:表达式元素表示的事一个在脚本语言中被定义的表达式,在运行后被自动转化为字符串,
    然后插入到这个表达式在Jsp文件的位置显示。如<%=java表达式%>4)也叫Java Scriptlet,就是在Jsp中写在<%与%>之间的Java代码
    (5)声明:在Jsp中声明函数或者方法。如<%!......%>6)动作: Jsp动作利用XML语法格式的标记来控制web服务器引擎的行为。利用Jsp动作可以动态地插入文件,
    重用JavaBean组件,把用户重定向到另外的页面,为java插件生成HTML代码。
    (7)注释:就是Jsp页面中的注释
    html注释,前台查看源代码可以看到,jsp注释看不到.<taglib 之类的代码需要使用jsp注释
    (a):由于Jsp页面中可以写入java代码,那么在java代码中的注释遵循java注释规范:
    //表示单行注释;/*…*/表示多行注释
    在Jsp的非JavaScript中,注释有分为两种
    (b):在HTML中的注释为<!--注释-->
    (c):Jsp 服务器端注释:<%--注释--%>
    (二)请求转发和重定向
    请求转发:request.getRequestDispatcher(“/xx.jsp”).forward(request,response); 
    其特点是:地址栏无变化,始终是一个请求,转发的对象可以使本工程内的任何页面。
    重定向:response.sendRedirect("资源的URL");
    就相当于客户端向服务器请求时,服务器响应给客户端一个新的URL浏览器就把请求传递个一个新的页面 
    特点是:地址发生了变化,重定向的范围没有限制。
    
    19、JDBC

    1.JDBC编程涉及的三个部分
    (1)应用程序: 开发人员编写的客户端程序。在应用程序中调用JDBC API,将SQL语句发送到数据库并检索结果。
    (2)驱动程序管理器 :JDBC将驱动程序管理器负责使用正确的JDBC驱动程序和连接信息访问数据库,在Java应用程序和数据库系统之间建立连接。
    (3)驱动程序:驱动程序由数据库厂商提供,实现数据库驱动接口,能够把SQL指令正确的发送的数据库服务器。
    2.JDBC的使用步骤
    注册:DriverManager.registerDriver(driver);一般不使用。
    加载:Class.forName(driver); driver:有效JDBC驱动程序名称。
    连接:Connection con = DriverManager.getConnection(URL,login_name, login_password);
    url:连接路径,login_name:数据库登陆账户名,login_passwoer:登陆密码。
    3.关于JDBC编程的重要类和接口
    DriverManager类,Connection接口,Statement接口,PreparedStatement接口,ResultSet接口,SQLException类
    一, DriverManager类 管理一组 JDBC 驱动程序的基本服务。
    最常用的方法
    getConnection(String url,String user,String password) 试图建立到给定数据库 URL 的连接。
    二,Connection 接口
    与特定数据库的连接(会话)。在连接上下文中执行 SQL 语句并返回结果。
    Connection 对象的数据库能够提供描述其表、所支持的 SQL 语法、存储过程、此连接功能等等的信息。
    常用的方法
    (1) createStatement()创建一个 Statement 对象来将 SQL 语句发送到数据库。
    (2) prepareStatement(String sql) 创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库。
    (3) close() 立即释放此 Connection 对象的数据库和 JDBC 资源,而不是等待它们被自动释放。
    三,Statement接口定义了一组数据库操作的方法,可以通过这个接口的实现类对象执行指定的SQL命令,Connection.createStatement()方法可以得到Statement类型的对象。
    Statement方法常用的方法有:
    (1)executeUpdate(sql) 返回Int类型,执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句。
    (2)executeQuery(sql) 返回单个 ResultSet 对象,执行给定的 SQL 语句,通常为静态 SQL SELECT 语句。

    例如ResultSet rs =
    DriverManager.getConnection(url,name,pwd).createStatemet.executeQuery(sql);
    (3)execute();执行SQL语句,返回Boolean类型,可能返回多个结果。execute 方法执行 SQL 语句并指示第一个结果的形式。然后,必须使用方法 getResultSet 或 getUpdateCount 来获取结果,使用 getMoreResults 来移动后续结果。
    (4)close() 立即释放此 Statement 对象的数据库和 JDBC 资源,而不是等待该对象自动关闭时发生此操作。
    四,PreparedStatement接口是Statement的子接口,扩展了Statement的功能,通过Connection.preparedStatament()方法获得PreparedStatement对象。
    PreparedStatement接口使我们可以使用占位符(?)作为参数定义一条SQL语句,占位符是在SQL语句中出现的标记符,在SQL语句执行之前会被替换成实际的值。
    常用方法:
    (1) int executeUpdate(sql) 执行 SQL 语句,该语句必须是一个 SQL 数据操作语言(Data Manipulation Language,DML)语句,比如 INSERT、UPDATE 或 DELETE 语句;或者是无返回内容的 SQL 语句。
    (2) ResultSet executeQuery()并返回该查询生成的 ResultSet 对象
    (3) boolean execute()在此 PreparedStatement 对象中执行 SQL 语句,该语句可以是任何种类的 SQL 语句。 (4) setString(int parameterIndex, String x) 将指定参数设置为给定 Java String 值。
    (5) setInt(int parameterIndex, int x)将指定参数设置为给定 Java int 值。

    五, ResultSet接口 表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。
    ResultSet接口的常用方法:
    (1) close()立即释放此 ResultSet 对象的数据库和 JDBC 资源,而不是等待该对象自动关闭时发生此操作。
    (2) next()将光标从当前位置向前移一行。
    (3) first()将光标移动到此 ResultSet 对象的第一行。
    (4)last()将光标移动到此 ResultSet 对象的最后一行。
    (5)getMetaData()获取此 ResultSet 对象的列的编号、类型和属性。
    (6)getMetaData().getColumnCount()得到元素个数
    (7)getMetaData().getColumnName(i)得到元素名称
    (8)getString(int columnIndex) 以Java 编程语言中 String 的形式获取此 ResultSet 对象的当前行中指定列的值。
    (9)getInt(int columnIndex) 以 Java 编程语言中 int 的形式获取此 ResultSet 对象的当前行中指定列的值。
    ……….等等。
    六,SQLException类
    如果发生数据库访问错误,或者是已经关闭的对象上使用一些方法就会产生异常,此时需要使用try/catch进行处理或者是将其thow掉。
    4.DriverManager,Connection,Statement,PreparedStatement,ResultSet之间的关系???
    DriverManeger类通过getConnection()方法获得Connection对象,
    Connecton接口通过CreateStatement()方法获得Statement对象,
    通过preparedStatement()方法获得PreparedStatement对象,
    Statement和PreparedStatement接口通过executeQuery()方法获得ResultSet对象。
    5,JDBC调用数据库的基本步骤
    导入必要的类,装入JDBC驱动程序,识别数据源,分配一个Connection对象,分配一个Statement对象,使用Statement执行一个查询,从返回的ResultSet对象中检索数据,关闭ResultSet,关闭Statement对象,关闭Connection对象

    20、Servlet接口中的方法

    (1)public void init(ServletConfig config) throws ServletException;
    Servlet引擎会在Servlet实例化之后,置入服务之前精确地调用init方法。在调用service方法之前,init方法必须成功退出。
    (2)public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException;
    Servlet引擎调用这个方法以允许Servlet响应请求。这个方法在Servlet未成功初始化之前无法调用。在Servlet被初始化之前,Servlet引擎能够封锁未决的请求。
    (3)public void destroy();
    当一个Servlet被从服务中去除时,Servlet引擎调用这个方法。
    (4) public ServletConfig getServletConfig()
    返回一个ServletConfig对象,作为一个Servlet的开发者,你应该通过init方法存储ServletConfig对象以便这个方法能返回这个对象。为了你的便利,GenericServlet在执行这个接口时,已经这样做了。
    (5) public String getServletInfo();
    允许Servlet向主机的Servlet运行者提供有关它本身的信息。返回的字符串应该是纯文本格式而不应有任何标志(例如HTML,XML等)。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jerryzhou;

您的鼓励,将是我的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值