欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

什么是servlet?servlet有什么用?

程序员文章站 2023-12-27 16:04:21
...

servlet概述

什么是servlet,servlet有什么用?

servlet是java编写的服务器端的程序,运行在web服务器中

作用:

  1. 接收用户端发来的请求
  2. 调用其他java程序来处理请求
  3. 将处理结果,返回到服务器中

servlet的生命周期

实例化-初始化-服务-消亡

1.第一次访问servlet或启动服务器时创建servlet 的实例

2.init() 只调用一次,servlet实例创建后立即执行,用于执行一些servlet初始化操作

@Override
    public void init() throws ServletException {
        super.init();
    }

3.service方法 多次调用;每次请求都调用service方法,根据请求方式调用doGet()或doPost()方法。

@Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        super.service(req, res);
    }

4.只调用一次,服务器关闭时,执行一些操作

@Override
    public void destroy() {
        super.destroy();
    }

http协议

http协议 超文本传输协议, 用于定义客户端浏览器和服务器之间交换数据的过程,基于TCP/IP通信协议来传输数据;属于应用层(简洁快速,适用于分布式超媒体信息系统)

http请求

客户端连接上服务器后,向服务器端请求了web资源,就是向服务器端发送了http请求

请求包括:

  1. 请求行:包括http请求方式,请求资源名称,请求版本

  2. 请求头:主机请求地址,客户端环境信息,以键值对形式传递

    Host: 127.0.0.1:8088     请求的主机地址
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 浏览器能够处理的内容类型
    Accept-Encoding: gzip, deflate, br     浏览器能够处理的压缩编码
    Accept-Language: zh-CN,zh;q=0.9     浏览器当前设置的语言
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36   使用的浏览器和操作平台信息
    Connection: keep-alive    浏览器与服务器之间连接的类型
    
  3. 请求体:代表着浏览器在post请求方式中传递给服务器的参数,请求体中参数以键值形式传递,多个用&链接,服务器接收到后再解析 例如:username=admin&userpwd=123

两种http请求方式

  1. get方式

    超链接访问,默认为get请求

    form提交,不指定method,默认为get方式

  2. post方式

    form提交,指定method=post

两种的方式的区别

  1. get请求主要从服务器获取信息;post主要是是向服务提交的信息
  2. get请求在通过URL提交数据,数据在URL可以看到;post请求放置在请求体中提交
  3. get请求提交的数据大小受限制一般1kb(不同浏览器可能不同);post请求不受限制

HttpServletRequst

是ServletRequest的子接口;比ServletRequest多了一些针对http协议的方法;在Servlet中,用HttpServletRequest来表示请求;HttpServletRequest :封装了请求的信息,可以从中获取任何请求信息。

HttpServletRequst的一些方法

  1. getMethod()得到客户机请求方式
  2. getScheme()请求协议
  3. getRemoteAddr()返回发出请求的客户机的IP地址
  4. getServerName()服务器名(ip或域名)
  5. getServerPort()服务器端口

获取请求的参数的方法

  1. getParameter(name) — String 通过name获得值
  2. getParameterValues — String[ ] 通过name获得多值

http响应

一个http响应代表服务器向客户端回送的数据,它包括:响应行,响应头,响应体。响应行里包含了http协议版本,以及用于描述服务器对请求的处理结果。

状态码:

  1. 200:请求成功
  2. 302:请求重定向
  3. 400:语义有误,当前请求无法被服务器理解或请求参数有误
  4. 404:请求资源不存在,通常是路径写错了或者服务器资源删除了
  5. 500:服务内部错误(代码异常)

HttpServletResponse

HttpServletResponse是ServletResponse的子接口 。

Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个代表响应的HttpServletResponse对象。HttpServletResponse对象代表响应

向浏览器动态生成网页内容

​ 用getWriter()获得一个PrintWriter字符输出流输出数据response会默认以ISO8859-1将需要输出到浏览器的字符进行解码,如果输出的字符在ISO8859-1中不存在,就会导致乱码问题。

​ response.setContetnType(“text/html;charset=utf-8”);方法可以同时设定response所使用的字符集编码和浏览器打开所用的字符集编码

创作不易,大佬们留步… 动起可爱的双手,来个赞再走呗 (๑◕ܫ←๑)

上一篇:

下一篇: