Servlet详解

Servlet简介

servlet是Server Applet的简称,翻译过来就是服务程序。简单的讲,这个servlet是运行在服务器上的一个小程序,用来处理服务器请求的。一般的网页程序,是由我们通过浏览器访问来实现的,在这个过程中,我们的浏览器发送访问请求,服务器接收请求,并对浏览器的请求作出相应的处理。这就是我们熟悉的B/S模型(浏览器-服务器模型)。而servlet就是对请求作出处理的组件,运行于支持Java的应用服务器中。

继承体系

Servlet优势

  • 性能明显更好。
  • Servlet 在 Web 服务器的地址空间内执行。这样它就没有必要再创建一个单独的进程来处理每个客户端请求。
  • Servlet 是独立于平台的,因为它们是用 Java 编写的。
  • 服务器上的 Java 安全管理器执行了一系列限制,以保护服务器计算机上的资源。因此,Servlet 是可信的。
  • Java 类库的全部功能对 Servlet 来说都是可用的。它可以通过 sockets 和 RMI 机制与 applets、数据库或其他软件进行交互。

生命周期

1、被创建:init()

        默认,第一次被访问时创建

        服务器启动时创建<load-on-startup>0或正数</load-on-startup>

        因为是单例的,存在线程安全问题,尽量不要在servlet定义成员变量。

2、提供服务:service()        

        每当请求Servlet时,Servlet容器就会调用这个方法。

3、被销毁:destroy()

        当要销毁Servlet时,Servlet容器就会调用这个方法。

Servlet中重要的对象

在servlet中共有四个重要的对象:

HttpServletRequest  请求对象:获取请求信息
HttpServletResponse 响应对象: 设置响应对象
ServletConfig对象    servlet配置对象
ServletContext对象  servlet的上下文对象

相关功能

获取请求行数据

    getMethod() 获取请求方法
    getContextPath() 获取虚拟路径 
    getServletPath() 获取Servlet路径
    getQueryString() 获取get方法请求参数
    getRequestUrl() 获取请求URL
    getProtocol() 获取协议及版本
    getRemoteAddr() 获取客户机的IP地址

获取请求头数据

    String getHeader(String name) 通过请求头的名称获取请求头的值
    Enumeration<String> getHeaderNames() 获取所有的请求头名称

获取请求参数的通用方式

    getParameter(String name) 根据参数名称获取参数值
    getParameterValues(String name) 根据参数名称获取参数值的数组
    Enumeration<String> getParameterNames() 获取所有的请求的参数名称
    Map<String ,Sreing[]> getParameterMap() 获取所有参数的map集合
    中文乱码问题
        get方式:tomcat8自动解决了
        post方式:获取参数前,设置request编码
        request.serCharacterEncoding("utf-8")

ServletContext对象

概念:代表整个web应用,可以和程序的容器(服务器)来通讯

获取ServletContext对象

request方式 request.getServletContext()
HttpServlet方式 this.getServletContext()

功能

  • 获取MIME类型
    • 在互联网通信过程中定义的一种文件数据类型
    • 格式:大类型/小类型 text/html       image/jepg
    • 获取:String getMimeType(String file)
  • 域对象:共享数据
    • 所有用户所有请求的数据
  • 获取文件的真实路径
    • /文件 web目录下的资源访问
    • /WEB-INF/文件 WEB-INF目录下的资源访问
    • /WEB-INF/classes/文件 src目录下的文件访问
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值