Servlet

Serlet:

  动态的web开发技术,本质上就是一个类,运行在服务器端的一个java小程序

  处理业务逻辑,生成动态web内容

  1.编写servlet步骤:

    1.编写一个类

      a.继承HttpServlet

      b.重写doGet()或者doPost()方法

    2.编写配置文件

      a.注册servlet

      b.绑定路径

    3.访问

      http://主机:端口号/项目名/路径

 

 

   2.接收参数:

    格式:key=value

    String value = request.getParameter("key")

    例:http://localhost/yisen/hello?username=tom

      request.getParameter("username")

  3.回写内容:

    使用respone方法

    response.getWriter().print("success");

    处理响应数据中文乱码

      response.setContentType("text/html;charset=utf-8");//建议放在第一行

  4.Servlet体系结构:

    Servlet:接口

      |

    GenericServlet:抽象类

      |

    HttpServlet:抽象类

      |

    自定义servlet

      Servlet常用方法:

        void init(ServletConfig config):初始化

        void service(ServletRequest request,ServletResponse response):服务   处理业务逻辑

        void destory():销毁

        ServletConfig getServletConfig():获取当前servlet的配置对象

      GenericServlet常用方法:

        除了service方法没有实现,其他都实现了

        空参的init()  若我们自己想对servlet进行初始化操作,重写这个init()方法即可

      HttpServlet常用方法:

        service做了实现,把参数强制转换,调用了重载的service方法

          重载的service方法获取请求的方式,根据请求方式的不同调用相应的doXxx()方法

        掌握:doget()   doPost()

      Servlet生命周期:

        void init(ServletConfig config):初始化   

                  *  初始化方法
* 执行者:服务器
* 执行次数:1次
* 执行时机:默认第一次访问时

        void service(ServletRequest request,ServletResponse response):服务   处理业务逻辑

                  * 服务方法
* 执行者:服务器
* 执行次数:请求一次执行一次
* 执行时机:请求来的时候
* @param servletRequest
* @param servletResponse

        void destory():销毁

                  * 销毁
* 执行者:服务器
* 执行次数:只执行一次
* 执行时机:当servlet被移除时或服务器正常关闭时
package Servlet2;

import javax.servlet.*;
import java.io.IOException;

public class LifeServlet implements Servlet {

    /**
     *  初始化方法
     *  执行者:服务器
     *  执行次数:1次
     *  执行时机:默认第一次访问时
     * @param servletConfig
     * @throws ServletException
     */
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("初始化操作!");
    }

    /**
     * 服务方法
     * 执行者:服务器
     * 执行次数:请求一次执行一次
     * 执行时机:请求来的时候
     * @param servletRequest
     * @param servletResponse
     * @throws ServletException
     * @throws IOException
     */
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("服务方法!");
    }

    /**
     * 销毁
     * 执行者:服务器
     * 执行次数:只执行一次
     * 执行时机:当servlet被移除时或服务器正常关闭时
     */
    @Override
    public void destroy() {

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }



    @Override
    public String getServletInfo() {
        return null;
    }


}
LifeServlet

        servlet是单实例多线程

        默认第一次访问时,服务器创建servlet,并调用init实现初始化操作,并调用一次service方法

        每当请求来的时候,服务器创建一个线程调用servlce方法执行自己的业务逻辑

        当servlet被移除的时候服务器正常关闭的时候,服务器调用servlet的destroy方法实现销毁

  5.url-pattern的配置:

    方式1:完全匹配   必须以"/"开始   例:/hello   /a/b/c

    方式2:目录匹配   必须以"/"开始   以" * "结束   例:/a/*   /*

    方式3:后缀名匹配:   以" * "开始   以字符结尾   例:*.jsp    *.do   *.action    

    优先级:完全匹配>目录匹配>后缀名匹配

  6.load-on-startup

    作用:用来修改servlet初始化时机

    取值:正整数    值越大优先级越低

      当我们的配置文件里没有指定配置的话,会查找tomcat的web.xml

      若请求我们自己的项目处理不了,tomcat的默认servlet会帮我们处理信息

  7.路径写法:

    相对路径:

      当前路径    ./  或   什么都不写

    绝对路径:

      带主机和协议的绝对路径(访问站外资源)

        http://www.yisen.com/xxx

        http://localhost:8080/yisen/hello

      不带主机和协议的绝对路径(常用)

        /yisen/hello

  8.ServletContext

    上下文(全局管理者)、一个项目的引用,代表了当前项目

    当项目启动时,服务器为每一个web项目创建一个servletcontext对象

    当项目被移除时或服务器关闭时servletcontext销毁

      作用:

        1.获取全局的初始化参数

        2.共享资源(xxxAttribute)

        3.获取文件资源

        4.其他操作   

      获取全局管理者:

        方式1:getServletConfig().getServletContext()

        方式2:getServletContext()

    常用方法:

      1.了解

      String getInitParameterName(String key):通过名称获取指定的参数值

      String getInitParameterNames():获取所有的参数名称

        在根标签下有一个context-param子标签用来存放初始化参数

          <context-param>
          <param-name></param-name>
          <param-value></param-value>
          </context-param>

      2.xxxAttribute

      setAttribute(String key,Object value);  //设置值

      Object getAttribute(String key);  //获取值

      removeAttribute(String key); //移除值

      3.文件资源

      String getRealPath(String path):获取文件部署到tomcat上的真实路径(带tomcat路径)

        getRealPath("/") 项目部署路径

      InputStream getResourceAsStream(String path):以流的形式返回一个文件

      4.获取文件的mime类型   大类型/小类型

      String getMimeType(String 文件名称)

  9.ServletConfig:(了解):

    servlet配置对象

    ServletConfig是由服务器创建的,在创建servlet的同时也创建了它,通过servlet的init(ServletConfig config)将config对象传递给servlet,由servlet的getServletConfig方法获取

    作用:

      1.获取当前servlet的名称

      2.获取当前的servlet的初始化参数

      3.获取全局管理者ServletContext

    方法:

      getServletContext():获取全局管理者

      String getServletName():获取当前servlet的名称(web.xml配置的servlet-name)

      String getInitParameterName(String key):通过名称获取指定的参数值

      String getInitParameterNames():获取所有的参数名称

        初始化参数时放在web.xml文件

          servlet标签下子标签 init-param

 

 

   10.域对象:

    当成map集合

      常用方法:

        xxxAttribute()

    ServletContext创建和销毁:

      当项目启动时,服务器为每一个web项目创建一个servletcontext对象

      当项目被移除时或服务器关闭时servletcontext销毁

    存放:

      共享的数据

  11.获取文件路径:

    通过类加载器获取文件:2.txt放在classes路径下

      类.class.getClassLoader().getResource("2.txt").getPath()

 

posted @ 2020-08-02 19:53  Yisennnn丶  阅读(112)  评论(0编辑  收藏  举报