zoukankan      html  css  js  c++  java
  • servlet-1

    一    http协议

     client server之间的传输数据的协议 

    报文 首行 头 空行 体

    二   servlet

    用户请求 静态资源不能处理 要编程语言来处理 java类来处理

     服务器  也可以成为 servlet容器

    server applet 服务端小程序 servlet

    ->作用 

      接受用户请求

      处理用户请求 java类

    ->编写 servlet流程 

      服务员的功能

    1 创建以一个java类 实现servlet接口

    2 在service方法中处理请求

    3 web.xml中配置容器 servlet-class  servlet-name servlet-mapping  url-pattern

    servlet 生命周期

    创建到销毁的过程

    ---生命周期方法 自动被服务器调用的方法

      构造器 第一次访问 调用 创建 servlet

      init  初始化

      service  每次请求调用此方法 

      destroy  服务器销毁前调用

    --相关接口 servletconfig

    对应在 web.xml中的 配置信息

    init时候 出入此对象

    getservletname

    getinitparameter(name)   <servlet></servlet>

    获取 servletcontext对象

    --servletcontext

    一个项目 唯一一个servletcontext对象 项目启动时候创建 项目卸载时候 销毁

    当前的web应用 web.xml

    获取 getservletcontext 有很多方式来获取

    --功能 getcontextpath 获取上下文路径 /项目名

    获取全局的初始化参数

    获取文件的真是路径 物理路径 getrealpath

    整个项目的共享数据

    HttpServlet

      三种方式

      实现servlet接口

      继承genericservlet

      继承httpservlet

    --创建一个servlet文件

    extends httpservlet

    调用init方法 genericservlet.init()

    调用service方法处理 重载的

    service调用doget或者 dopost方法

    HttpServletRequest:

    请求对象 包装后的请求报文

    在接受请求时候 创建一个request对象 并有相关的方法

    获取用户的参数 

     request.getparameter(‘name’)

    name是表单里面的属性值

    value 表单的value属性值

    请求头 value = request.getHeader(‘user-agent’)

    转发 dispatcher = request.getrequestdispatcher(‘转发资源的地址’)

    发起转发 dispatcher.forward(request,response)

    [8]乱码.
    编码格式和解码格式不一致会造成乱码
    浏览器发送数据(通过请求报文,参数编码格由页面的编码决定UIF-8)到服务器(服务器默认的解码格式是IS08859-1)
    服务器响应数据(通过响应报文,编码由页面文件的编码格式决定)到浏览器(解码格式由页面的编码格式决定,如果页面没有设置编码,使用系统默认的)


    》get请求乱码解决 了当前工作空间中的所有的get请求乱码
    在服务器配置文件server. xm1中65行标签内设置 属性: URIEncoding= "UTF-8* (告诉服务器在读取请求首行时使用的解码格式)


    》post请求乱码解决 了当前servletpost请求乱码
    post请求参数在请求体中携带
        在doGet中第一行(在request对象使用之前) : request. setCharacterEncoding("UTF-8");


    》响应乱码解决当前servlet响应乱码
            response. setHeader (' Content-Type' ,”text/html;charset=UIF-8");
            写在reponse使用之前:response. setContentType( text/html; charset=UTF-8 ");
    [8]相对路径和绝对路径
    相对路径:不推荐使用
    相对当前资源所在的路径
    转发时会造成相对路径失效


    绝对路径:
    以/开始的路径就是绝对路径
      浏览器解析使用的路径: [标签,重定向地址]默认在绝对路径前添加http: //主机。地址:端口号
    浏览器解析的绝对路径需要自己手动添加项目名
      服务器解析使用的路径: [转发, 配置文件中]默认添加http://主 机地址:端口号/项目名
    不需要手动添加项目名|

    [9]base标签
    base+相对路径可以替代绝对路径
    让相对路径可以当做绝对路径使用,默认会和base标签的地址拼接


    base标签只会对当前页面的相对路径起作用
    <base href=' http: //localhost:8080/项目名/* /><a href=* a/1. html' >1. html</a>

    饭店的架构:
        顾客-----服务员---厨师---采购--菜市场
    服务员:
      负责直接和顾客打交道,将用户请求收集,交给厨师,调用厨师的方法
      厨师完成需求之后将结果交给服务员,服务员将结果交给顾客
    厨师:
      根据服务器传递的参数,让采购去购买原材料
      再对原材料进行加工,加工完成return
        好处:解耦,分工明确,出问题比较好定位
        坏处:成本高,效率低
    采购:
        根据厨师的需求到菜市场购买原材料然后交给厨师

  • 相关阅读:
    异步加载JS
    解决Vue刷新一瞬间出现样式未加载完或者出现Vue代码问题
    什么是NaN?它的类型是什么?如何可靠的测试一个值是否等于NaN?
    JS快速获取图片宽高的方法
    为什么操作dom会消耗性能
    localstorage的浏览器支持情况
    mongodb Windows系统下安装卡死问题
    正则表达式
    CSS Hack
    css中cursor(光标类型)
  • 原文地址:https://www.cnblogs.com/liubosong/p/11990179.html
Copyright © 2011-2022 走看看