Servlet

Servlet

1.1什么是Servlet

(Server Applet)服务器端小程序。

为什么使用Servlet ?因为客户端(html或者jsp无法直接访问java文件,而我们需要客户端请求java文件。所以,需要特殊的java文件,即Servlet。

特点:①可以被页面直接请求,即是URL特性(页面可以直接访问、浏览器也可以直接访问)。②全类名(让Servlet容器、JSP容器、Web容器、Web服务器创建Servlet对象)。

1.2tomcat和servlet的关系

Tomcat是web应用服务器,是一个Servlet/JSP容器。Tomcat作为Servlet容器。负责处理客户请求,把请求传送给Servlet,并将Servlet的响应传送回给客户。而Servlet是一种运行在支持Java语言的服务器上的组件。Servlet最常见的用途是扩展Java Web服务器功能,提供非常安全的,可移植的,易于使用的CGI替代品。

1.3创建Servlet步骤

  • 声明javax.servlet.Servlet接口的实现类
  • 在web.xml中注册这个实现类

1.4Servlet的生命周期

Servlet生命周期:Servlet从被创建到销毁(消亡)的过程,称之为Servlet生命周期。

  • 构造器

    执行时机:第一次接收请求时执行。

    执行次数:在整个生命周期中执行一次。

  • init()

    执行时机:第一次接收请求时执行(在构造器之后执行)。

    执行次数:在整个生命周期中执行一次。

  • service()

    执行时机:每次接收请求时执行。

    执行次数:在整个生命周期中执行多次。

  • destroy()

    执行时机:关闭服务器时执行。

    执行次数:在整个生命周期中执行一次。

版本二

​ 第一次请求Servlet时,服务器(Web服务器、Servlet容器)创建Servlet对象,之后会调用init()方法进行初始化操作(为形参赋值操作),最后调用service()方法处理请求并做出响应。以后再次请求时,只会调用service()方法处理请求(不会调用构造器&init())。处理完所有请求后,关闭服务器时,调用destroy()方法销毁Servlet。

1.5Servlet中的ServletConfig与ServletContext

1.5.1ServletConfig

代表了Servlet的配置信息,主要作用为:

  1. 获取当前的Servlet名称
  2. 获取当前Servlet初始化参数(初始化参数配置在web.xml的Servlet标签中)
  3. 获取ServletContext对象

1.5.2ServletContext

代表当前Servlet上下文(当前Web应用),别名为:application。主要作用为:

  1. 获取当前上下文的初始化参数
  2. 获取真实路径
  3. 域对象

1.6创建Servlet的方式:继承HttpServlet

loginServlet:继承了HttpServlet:GenericServlet:Servlet

1.7request和response

1.7.1request

  • 类型为:HttpServletRequest
  • 定义:相当于客户端向服务器端发送的请求报文,该对象由浏览器创建,并以参数的形式传递给都Get()或doPost()
  • 作用:
  1. 获取请求参数:request.getParameter()

  2. 获取项目的虚拟路径:request.getContextPath()

  3. 转发路径(跳转路径):request.getRequestDispatcher().forward(request,response);

  4. 域对象

  5. 获取请求报文中请求头中的信息:request.getHeader()

  6. 获取请求协议

    request.getScheme():获取请求协议

    request.getServerName():获取请求服务器名称

    request.getServerPort():获取请求服务器端口号

1.7.2response

  • 类型为:HttpServletResponse
  • 定义:相当于服务器向客户端做出的响应报文,该对象由服务器创建,并以参数的形式传递给doGet()
  • 作用:
  1. 响应函数(数据:文本|html)

    response.getWriter().write();

  2. 重定向(跳转路径)

    response.sendRedirect();

1.7.3转发与重定向的区别

  1. 转发地址栏不变,重定向地址栏改变

  2. 转发可以携带request对象,重定向不能

  3. 转发客户端只请求一次,重定向向客户端请求两次

  4. 转发可以访问WEB-INF下资源,重定向 不能

    WEB-INF:web应用的私密目录,只能由服务器访问,客户端不能直接访问

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值