zoukankan      html  css  js  c++  java
  • Java Web学习笔记-1

    1.servlet理论上可以处理多种形式的请求响应形式 ,http只是其中之一 ,所以HttpServletRequest、 HttpServletResponse分别是ServletRequest和ServletResponse的子类 ,HttpServletRequest和ServletRequest都是接口 ,HttpServletRequest继承自ServletRequest ,HttpServletRequest比ServletRequest多了一些针对于Http协议的方法。  如  getHeader(String name),  getMethod() ,  getSession() 等

    2.HttpServletRequest 的实现是根据不同服务器的,tomcat有tomcat的实现,webLogic有webLogic的实现

    3.生成唯一文件名:UUID.randomUUID();

    4.WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过ServletContext对象来实现通讯。多个Servlet通过ServletContext对象实现数据共享。

    如实现Servlet的转发。

     RequestDispatcher rd = getServletContext().getRequestDispatcher(“/1.jsp”);   //相对当前上下文的根目录,而不是文件在物理服务器上的根路径

     rd.forward(request,response);

    实现数据的交互

    this.getServletContext().setAttribute("today","Yestoday");

    5.HTTP协议采用“请求-应答”模式,当使用普通模式,即非KeepAlive模式时,每个请求/应答客户和服务器都要新建一个连接,完成之后立即断开连接(HTTP协议为无连接的协议);当使用Keep-Alive模式(又称持久连接、连接重用)时,Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后续请求时,Keep-Alive功能避免了建立或者重新建立连接。

    6.flush()这个函数是清空的意思,用于清空缓冲区的数据流,从缓存区强制输出。进行流的操作时,数据先被读到内存中,然后再用数据写到文件中,那么当你数据读完时,我们如果这时调用close()方法关闭读写流,这时就可能造成数据丢失,为什么呢,因为,读入数据完成时不代表写入数据完成,一部分数据可能会留在缓存区中。

    7.HTTP消息的结构

     (1)Request 消息分为3部分,第一部分叫请求行, 第二部分叫http header消息头, 第三部分是body正文,header和body之间有个空行, 结构如下图

     (2)Response消息的结构, 和Request消息的结构基本一样。 同样也分为三部分,第一部分叫request line状态行, 第二部分叫request header消息体,第三部分是body正文, header和body之间也有个空行,  结构如下图

    8.java类的加载是由虚拟机来完成的,虚拟机把描述类的Class文件加载到内存,并对数据进行校验,解析和初始化,最终形成能被java虚拟机直接使用的java类型,这就是虚拟机的类加载机制.JVM中用来完成上述功能的具体实现就是类加载器.类加载器读取.class字节码文件将其转换成java.lang.Class类的一个实例.每个实例用来表示一个java类.通过该实例的newInstance()方法可以创建出一个该类的对象.

    9.返回的类型是接口,但是接口是不能实例化的,但是接口可以声明一个引用,指向其实现类,也就是说,在实际中返回值都是这个接口的实现类的对象。 说明返回的对象是实现这个接口的某一个类型的实例。

    10.isAssignableFrom 是用来判断一个类Class1和另一个类Class2是否相同或是另一个类的超类或接口。  

      String.class.isAssignableFrom(Object.class)------->false

      Object.class.isAssignableFrom(String.class)------->true

  • 相关阅读:
    异常处理
    SPD各模块总结
    简易js调试
    深入理解:java类加载器
    java基础简介
    android四大组件(一)Activity
    网路编程(网站源码查看器)
    ListView
    SQL查询数据总结
    函数作用域中的this问题
  • 原文地址:https://www.cnblogs.com/--CYH--/p/6907502.html
Copyright © 2011-2022 走看看