• Servlet


    Java类必须符合一定的 规范:

    a.必须继承 javax.servlet.http.HttpServlet

    b.重写其中的 doGet()或doPost()方法

    • doGet(): 接受 并处 所有get提交方式的请求
    • doPost():接受 并处 所有post提交方式的请求

    Servlet要想使用,必须配置

    • Serlvet2.5:web.xml
      • 项目的根目录:WebContent 、src(所有的构建路径)

        <a href="WelcomeServlet">所在的jsp是在 WebContent目录中,因此 发出的请求WelcomeServlet 是去请求项目的根目录。

        例子:

        WebContent中有一个文件index.jsp

        src中有一个Servlet.java

        如果index.jsp中请求 <a href="abc">...</a> ,则寻找范围:既会在src根目录中找,会在WebContent根目录中找

        如果index.jsp中请求<a href="a/abc"></a>,寻找范围:先在src或WebContent中找a目录,然后再在a目录中找abc

    • Servlet3.0:@WebServlet
      • Servlet3.0不需要在web.xml中配置,但需要在 Servlet类的定义处之上编写注解@WebServlet("url-pattern的值")

      • 匹配流程: 请求地址 与@WebServlet中的值进行匹配,如果匹配成功 ,则说明 请求的就是该注解所对应的类

    2个/:

    1. jsp服务器根路径  localhost:8888
    2. web.xml项目根路径  http://localhost:8888/项目名/

    Servlet流程:

    请求 ==> <url-pattern> ==> 根据<servlet-mapping>中的<servlet-name> 去匹配 <servlet> 中的<servlet-name>,然后寻找到<servlet-class>,求中将请求交由该<servlet-class>执行。

    纯手工方法创建第一个Servlet

    步骤:

    1. 编写一个类,继承HttpServlet
    2. 重写doGet()、doPost()方法
    3. 编写web.xml 中的servlet映射关系

    借助于Eclipse快速生成Servlet

    直接新建Servlet即可!(继承、重写、web.xml 可以借助Eclipse自动生成)

    Servlet生命周期:5个阶段

    1、加载

    2、初始化: init() ,该方法会在 Servlet被加载并实例化的以后 执行

    a、默认第一次访问 Servlet 时会被执行 (只执行这一次)

    b、可以修改为 Tomcat 启动时自动执行

    i、Servlet2.5:web.xml(其中的“1”代表第一个)

    <servlet>
      ...
      <load-on-startup>1</load-on-startup>
    </servlet>

    ii、Servlet3.0

    @WebServlet( value="/WelcomeServlet" ,loadOnStartup=1 )

    3、服务:service() ==> doGet() doPost,调用几次,则执行几次

    4、销毁:destroy(), Servlet被系统回收时执行,关闭tomcat服务时,执行一次。

    5、卸载

    Servlet API 

    由两个软件包组成

    1、对应于HTTP协议的软件包

    2、对应于除了HTTP协议以外的其他软件包

    即Servlet API可以适用于 任何 通信协议。 我们学习的Servlet,是位于javax.servlet.http包中的类和接口,是基础HTTP协议。

    Servlet继承关系

    ServletConfig:接口

    ServletContext getServletContext():获取Servlet上下文对象 application

    getContextPath():相对路径
    getRealPath():绝对路径
    setAttribute() 、getAttribute()

    String getInitParameter(String name):在当前Servlet范围内,获取名为name的参数值(初始化参数)

    Servlet 3.0方式 给当前Servlet设置初始值:

    @WebServlet( .... , initParams= {@WebInitParam(name="serveltparaname30",value="servletparavalue30") } )

    // 注意,此注解只 隶属于某一个具体的Servlet ,因此无法为 整个web容器设置初始化参数 (如果要通过3.0方式设置 web容器的初始化参数,仍然需要在web.xml中设置)

    HttpServletRequest中的方法:(同request),例如setAttrite()、getCookies()、getMethod()
    HttpServletResponse中的方法:同response

    Servlet使用层面:

    Eclipse中在src创建一个Servlet,然后重写doGet() doPost()就可以 (doGet() doPost()只需要编写一个)。

    转载请注明出处:https://www.cnblogs.com/stu-jyj3621
  • 相关阅读:
    Java常用类库(二):Iterator迭代器和子范围视图
    Java常用类库(一) : Object 和日期类的简单使用
    MyBatis的逆向工程
    AdminLTE介绍和zTree的简单使用
    MyBatis分页组件--PageHelper
    SpringAop--系统日志简例
    Shiro
    Mysql(三):多表查询和存储程序
    MySql(二):常见的那些个约束
    正则表达式一些用法
  • 原文地址:https://www.cnblogs.com/stu-jyj3621/p/14411365.html
Copyright © 2020-2023  润新知