zoukankan      html  css  js  c++  java
  • tomcat和Servlet

    # tomcat

    服务器:装有服务器软件的计算机
    服务器软件:接收用户请求,处理请求,作出响应


    常见的服务器软件:

    1、WebLogic:Oracle公司的大型收费服务器
    2、WebSphere:IBM公司的大型收费服务器
    3、tomcat:apache组织的一款开源免费的中小型服务器

    tomcat的安装:

    1、安装:解压到纯英文目录下

    bin:执行文件
    conf:配置文件
    lib:依赖jar包
    logs:日志文件
    temp:临时文件
    webapps:项目的存放位置


    2、开启:

    在bin目录下运行 startup.bat



    3、调式:

    将项目放到webapps目录下
    在浏览器中输入http://ip地址:端口号/项目名/访问的资源
    4、关闭:

    5、卸载


    # Servlet

    ## 1.1、概述

    Servlet是运行在Java服务器的小程序。
    它提供了一套是java类可以被浏览器(tomcat)所识别的规则

    ## 1.2、 使用步骤

    1、创建类实现Servlet接口
    2、实现抽象方法
    3、在web.xml配置映射文件


    ## 1.3、 执行步骤

    1、前端页面点击提交按钮,将表单信息提交到指定的action
    2、action中的地址会在web.xml中查找是否有与之匹配的<servlet-mapping>中的<url-pattern>
    3、如果有则查找是否有对应的<servlet>中的<servlet-name>与<url-pattern>中的<servlet-name>一致
    4、如果有

    ## 1.4、 servlet的生命周期

    1、init:只有第一次访问的时候会执行
    2、service:每次访问都会执行,获取请求,作出响应
    3、destroy:服务器正常关闭时执行,进行资源的释放


    ## 1.5 HttpServlet

    ## 二、Request

    1、getParameter(name):通过name值后去唯一的value值
    2、getParameterValues(name),通过name值去获得value的字符串数组

    ## 三、请求转发

    步骤:
    1、获取请求转发器
    RequestDispatcher dispacher=request.getRequestDispatcher("路径");

    2、执行转发器的转发功能
    dispacher.forward(request,response);


    细节:
    1、请求转发只能访问服务器内部资源
    2、地址栏不发生变化
    3、请求转发只执行了一次请求


    共享数据:

    域对象:可以在指定生命周期内共享数据的对象

    Request域:作用范围仅在一次请求中
    如果使用的是请求转发,转发后的页面也可以拿到request对象中的数据
    如果使用的是重定向,转发后的页面是获取不到request对象中的数据的,重定向进行了两次请求

    通用方法:

    1、setAttribute(String,Object):向域中存储键值对

    2、getAttribute(String):从域中通过键获取值

    3、removeAttribute(String):移除域中的键和值

    # 三、 Response

    ## 3.1 响应行

    版本/协议
    响应状态码:描述请求和响应的信息 3位数,设置状态码用response.setStatus

    1xxx:表示服务器接收到了客户端的数据但是没有接受完毕

    2xxx:表示成功(200)

    3xxx:表示重定向(302),访问缓存(304)

    4xxx:访问资源找不到(404),指定的访问方式没有对应的doxxx()方法(405)

    5xxx:服务器内部错误(500)

    状态码描述


    ## 3.2 响应头
    格式:
    键 值(路径)
    常见的响应头:serHeader(键,值)

    1、location:表示重定向的位置

    1、设置响应行的状态码为302
    response.setStatus(302);
    2、设置重定向的位置:
    response.setHeader(location,"地址");
    简单的写法:
    response.redirect("地址");

    2、content-type


    ## 3.3 响应体

    响应的数据

    1、使用字符输出流

    response.getWrite().write("内容");

    2、使用字节输出流

    response.getOutputStream().write();

    ## 四、请求转发和重定向

    ### 4.1 请求转发

    ResquestDispatcher dispatcher = request.getResquestDispatcher("地址")
    dispatcher.forward(request,response);

    ### 4.2 重定向

    response.sendRedirect("地址")


    ### 4.3 区别

    1、请求转发地址栏不变,重定向改变
    2、重定向可以访问外部资源,请求转发不能
    3、请求转发只请求一次,重定向请求两次
    4、请求转发后的页面可以获取请求域中的数据,重定向不能
    5、请求转发(访问一次)的性能优于重定向(访问两次)


    代码改变生活
  • 相关阅读:
    Convert Sorted Array to Binary Search Tree数组变成高度平衡的二叉树
    695. Max Area of Island最大岛屿面积
    257. Binary Tree Paths返回所有深度优先的遍历
    112. Path Sum二叉树路径和
    对称二叉树 · symmetric binary tree
    100. Same Tree同样的树
    计数排序 (Counting Sort)
    基数排序 (Radix Sort)
    Linux 文件基本属性
    gensuitemodule (Mac OS) – Python 中文开发手册
  • 原文地址:https://www.cnblogs.com/LTJAVA/p/11870753.html
Copyright © 2011-2022 走看看