初识servlet(随笔)

2023-09-13 08:41:40

1~3什么是servlet  4~6HTTP协议  7读取参数值  8~9servlet的生命周期
1、Tomcat是容器,servlet是扩展web服务器的组件规范(组件),他要部署到Tomcat中才能发挥作用

1)客户端发送请求至服务器端

2)服务器将请求信息发送至Servlet容器

3) Servlet容器调用其中的Servlet组件来完成响应

4) Servlet容器将动态生成的响应内容传给服务器

5)服务器将响应返回给客户端

2、404  服务器依据请求地址找不到对应资源
         原因: ①没有部署 ②servlet-name不一致 ③地址写错了
500  系统出错
        原因:程序在运行过程中出错
        ①没有继承HttpServlet ②servlet-class 写错了 ③代码写得不够严谨,比如对请求参数
405  找不到处理方法
        原因:service方法不规范
3、乱码问题
    由Servlet动态生成页面的时候,如果代码中出现中文,就很容易会出现乱码了。
    一般在这种情况下,我们只需要在生成页面的头文件中增加以下代码就能够解决:
    response.setContentType("text/html;charset=utf-8")


4、HTTP协议 它定义了浏览器(或者其他客户端)与Web服务器之间通讯的过程及数据格式
    为了保证服务器内存,一次请求一次回应。所以,HTTP协议是一种无状态协议
    由于无状态协议HTTP严重阻碍了WEB应用的实现,所以就出现了如
    cookies, session, application这样的东西来保持web应用之间的状态
5、请求数据包:      请求行        消息头   实体内容
GET                   /web01/hello?qty=3       HTTP/1.1
请求方式            请求资源路径  参数       协议类型版本

Eclipse查看:Window – show view – others – myeclipse common – tcp/ip monitor
6、get请求与post请求
get请求的特点:
    ①get请求会将请求参数添加到请求资源路径的后面,因为请求行存放的数据大小有限
   (也就是地址栏的最长字节数),所以get请求只能提交少量的数据
    ②get请求会将请求参数显示在浏览器地址栏,不安全(比如,路由器会记录整个地址)。
post请求:
    ①post请求会将请求参数添加到实体内容里面,所以,可以提交大量的数据
    ②post请求不会将请求参数显示在浏览器地址栏,相对安全一些。但是,post请求并不会对请求
    参数进行加密处理。用HTTPS协议进行加密处理。


7、Request对象
Request对象用于读取客户端传递的参数。客户端传递给服务器的参数最常见的是表单数据或附在URL中的参数。
例如:
   http://localhost/exam.jsp?qty=4
   其中的“qty=4”就是参数
   用request读取参数分为2种:单值参数  和  多值参数
   ①单值参数是指一个变量最多有一个值。我们可以用request对象的getParameter()方法来读取指定变量的参数值
   ②多值参数的典型代表是表单复选框,例如“爱好”就是多值参数:选项中的表单变量名只有一个,但用户可以
   选定多个爱好。我们可以用request对象的getParameterValues()方法来读取同一变量的多个参数值


8、servlet的生命周期


    指容器“创建servlet对象”
        ——“对它进行初始化”调用init()
        ——“调用方法处理请求”调用service()
        ——“销毁该对象” 的整个过程 调用destroy()
9、相应请求阶段用到的三个重要对象
①Request对象:
        ----  request(用户请求期)
        ----  封装客户端的请求信息
        ---- getParameter()
               getParameterValues()
               setCharacterEncoding()
               setAttribute()
               getAttribute()
    ②Response对象
        ----page(页面执行期)
        ----包含了响应客户请求的有关信息
        ----sendRedirect()
              setContentType()
              getWriter()
     ③out对象:
         ---- page(页面执行期)
         ---- out对象用于管理应用服务器上的输出缓  冲区,代表输出流,
      主要用于向客户端输出各类数据;
         -- print()
         println()

  • 作者:程序_熊
  • 原文链接:https://blog.csdn.net/sinat_41803693/article/details/90577704
    更新时间:2023-09-13 08:41:40