java基础-007

41.Servlet

  Servlet 是处理客户端请求并产生动态网页内容的Java类.Servlet主要是用来处理或者存储HTML表单提交的数据,产生动态内容,在无状态的HTTP协议下管理状态信息.所有的Servlet都必须要实现的核心接口是java.servlet.Servlet.每一个Servlet都必须要直接或间接实现这个接口,或者是继承javax.servlet.GenericServlet或者javax.http.HTTPSerclet.最后,Servlet使用多线程可以并行的多个请求服务.

 42.GenericServlet和HttpServlet

  GenericServlet是一个使用通用的协议无关的Servlet,它实现了Servlet和ServletConfig接口.继承子GenericServlet的Servlet应该覆盖service()方法.最后,为了开发一个能用在网页上服务于使用http协议请求的servlet,就必须继承子HttpServlet.

43.Servlet的生命周期

   对每一个客户端请求,Servlet引擎载入Servlet,调用它的init()方法,完成Servlet的初始化.然后,Servlet对象通过为每一个请求单独调用service()方法来处理所有随后来自客户端的请求,最后,调用Servlet的destroy()方法把Servlet删除掉.

 44.doGet()方法和doPost()方法

  doGet:GET方法会把键值对追加到请求URL的后面.因为URL对字符串数目有限制,进而限制了用户在客户端请求的参数值的数目.并且请求中的参数值是可见的,因此,敏感信息不能通过这种方式传递.

  doPost:POST方法通过把请求参数值放在请求体中来克服GET方法的限制,因此,可以发送的参数大的数目是没有限制的,做后,通过POST请求传递的敏感信息对外部客户端是不可见的.

45.WEB应用程序

  Web应用程序是对Web或者用用服务器的动态扩展.有两种类型的Web应用:面向表现的和面向服务的.面向表现的web应用程序会产生包含了很多标记语言和动套内容的交互的web页面作为请求的响应.而面向服务的web应用实现了web服务的端点(endpoint).一般来说,一个web应用可以看成是一组安装在服务器URL名称空间的特定子集下面的Servlet的集合.

 46.服务端包含(Server Side Include)

  服务端包含(SSI)是一种简单的解释型服务端脚本语言,大多数时候仅在web上,用Servlet标签嵌入进来.SSI最常用的场景是把一个或多个文件包含到web服务器的一个web插件中.当浏览器访问web页面的时候,web服务器会用对应的Servlet产生的文本来替换web页面中的Servlet标签.

  

 47.Servlet链(Servlet Chaining)

  Servlet链是把一个Servlet的输出发送给另一个Servlet的方法.第二个Servlet的输入可以发送给第三个Servlet,以此类推.链条上最后一个Servlet负责把响应发送给客户端.

 48.HTTP响应的结构

  HTTP响应由三部分组成:

  1. 状态码(Status Code):描述了响应的状态.可以用来检查是否成功完成了请求.请求失败的情况下,状态码可用来找出失败的原因.如果Servlet没有返回状态码.默认会返回成功的状态码HttpServletResponse.SC_OK.
  2. HTTP头部(HTTP Header):它们包含了更多关于响应的信息.比如:头部可以指定认为响应过期的过期日期,或者是指定用来给用户安全的输入实例内容的编码格式.如何在Servlet中检索HTTP的头部信息.
  3. 主体(Body):它包含了响应的内容.它可以包含HTML代码,图片等.主体是由传输在HTTP消息中紧跟在头部后面的数据字节组成的.

 49.cookie和session

  cookie是web服务器发送给浏览器的一块信息.浏览器会在本地文件中给每一个web服务器存储cookie.以后浏览器在给特定的服务器发送请求的时候,同时会发送所有为该服务器存储的cookie.

  session是服务器端技术,利用这个技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象,由于session为用户浏览器独享,所以用户在访问服务器的web资源时,可以把各自的数据放在各自的session中,当用户再去访问服务器中的其他web资源时,其他web资源再从用户各自的session中取出数据为用户服务.

  session和cookie的区别:

  1. 无论客户端浏览器做怎么样的设置,session都应该能正常工作.客户端可以选择禁用cookie,但是,session仍然是能够工作的,因为客户端无法禁用服务端的session.
  2. 在存储的数据量方面session和cookie也是不一样的.session能够存储任意的Java对象,cookie只能存储Stirng类型的对象.  

 50.HTTP隧道

  HTTP隧道是一种利用HTTP或者HTTPs把多种网络协议技术封装起来进行通信的技术.因此,HTTP协议扮演了一个通用的网络协议的管道的包装器的角色.把其他协议的请求掩盖成HTTP的请求就是HTTP隧道.

 51.sendRedirect()方法和forward()方法

  sendRedirect()方法会创建一个新的请求,而forward()方法只是把请求转发到另一个新的目标上.重定向(Redirect)以后,之前请求作用域范围以内的对象就失效了,因为会产生一个新的请求,而转发(forward)以后,之前请求作用域以内的对象还是能访问的.一般认为sendRedirect()比foreard()要慢.

 51.JSP

  JSP页面是一种包含了静态数据和JSP元素两种类型的文本文档.静态数据可以用任何基于文本的格式来表示.比如:HTML或者XML.JSP是一种混合了静态内容和动态产生的内容技术.

  浏览器处理一个JSP请求,首先要请求一个一 .jsp扩展名为结尾的页面,发起JSP请求,然后,web服务器读取这个请求,使用JSP编辑器把JSP页面转化成一个Servlet类.需要注意的是,只有当第一次请求页面或者是JSP文件发生改变的时候JSP文件才会被编译,然后服务器调用Servlet类,处理浏览器的请求.一旦请求执行结束,Servlet会把响应发送发给客户端.

  JSP的优点:

  1. JSP页面是被动态编译成Servlet的,因此,开发者可以很容易的更新展现代码.
  2. JSP页面可以被预编译
  3. JSP页面可以很容易地和静态模板结合包括:HTML或者XML,也可以很容易和产生动态内容的代码结合起来.
  4. 开发者可以提供让页面设计者以类XML格式来访问的自定义JSP标签.
  5. 开发者可以在组件层做逻辑上的改变,而不需要编辑单独使用了应用层逻辑的页面.

52.JSP指令(Directive) 

  Directive是当JSP页面被编译成Servlet的时候,JSP引擎要处理的指令.Directive用来设置页面级别的指令,从外部文件插入数据,指定自定义的标签库.Directive是定义在<%@和%>之间的.下面列出了不同类型的Directive:

  1. 包含指令(include directive):用来包含文件和合并文件内容到当前的页面.
  2. 页面指令(page directive):用来定义JSP页面中指定的属性,比如:错误页面和缓冲区.
  3. Taglib指令:用来声明页面使用的自定义的标签库.

 53.JSP动作

  JSP动作以XML语法的结构来控制Servlet引擎的行为.当JSP页面被请求的时候,JSP动作会被执行.它们可以被动态的插入到文件库中,重用JavaBean组件,转发用户到其他的页面,或者是给Java插件产生HTML代码.下面列出了可用的动作:

  1. jsp:include:当JSP页面被请求的时候包含一个文件
  2. jsp:useBean:找出或者是初始化JavaBean
  3. jsp:setProperty:设置JavaBean属性
  4. jsp:getProperty:获取JavaBean的属性
  5. jsp:forward:把请求转发到新的页面
  6. jsp:plugin:产生特定浏览器的代码

 54.Scriptlet

  JSP技术中,scriptlet是嵌入在JSP页面中的一段代码.scriptlet是位于标签内部的所有东西,在标签与标签之间,用户可以添加任意有效的scriptlet.

 55.声明(Decalation)和表达式(Expression)

  声明和Java中的变量声明很相似,它用来声明随后要被表达式或者scriptlet使用的变量.添加的声明必须要用开始和结束标签包起来.

  JSP表达式是web服务器把脚本语言表达式的值转化成一个String对象,插入到返回给客户端的数据流中.表达式是在<%=和%>这两个标签之间定义的.

 56.隐含对象

  JSP隐含对象是页面中的一些Java对象,JSP容器让这些Java对象可以为开发这所使用,开发者不用明确的声明就可以直接使用它们.JSP隐含对象也可以叫做预定义变量.下面列出了JSP页面中的隐含对象:

  1. application
  2. page
  3. request
  4. response
  5. session
  6. exception
  7. out
  8. comfig
  9. pageContext
时间: 2024-10-12 17:43:34

java基础-007的相关文章

-Java基础-Java介绍

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权:凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记. java的介绍 1.1java简介 Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言. 它最初被命名为Oak,目标设定在家用电器等小型系统的编程语言,来解决诸如电视机.电话.闹钟.烤面包机等家用电器的控制和通讯问题.由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划.就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机

第3篇-JAVA基础

第3篇-JAVA基础 每篇一句 :目标是给梦想一个期限,行动与坚持就是实现梦想的过程 初学心得: 遇到困难或问题,它不是休止符,而是引向你如何解决问题的标识 (笔者:JEEP/711)[JAVA笔记 | 时间:2017-03-26| JAVA基础 Ⅱ] 上篇回顾 上篇文章中我们学习了JAVA底层的运行机制与深入剖析以及解释其中JAVA基础代码的含义 本篇文章将JAVA基础Ⅱ全面剖析解释,因为JAVA基础非常重要,务必要牢记知识点!!! 1.JAVA基础语法格式 JAVA采用unicode编码 1

Java基础学习第五天——方法与数组

文档版本 开发工具 测试平台 工程名字 日期 作者 备注 V1.0 2016.02.24 lutianfei none 第三章Java基础语法 方法 方法就是完成特定功能的代码块,即函数. 格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2-) { 函数体; return 返回值; } 详细解释: 修饰符,目前就用public static,后详解. 返回值类型:就是功能结果的数据类型. 方法名:符合命名规则即可,方便我们的调用. 参数: 实际参数:就是实际参与运算的.

2.35 Java基础总结①抽象②接口③设计抽象类和接口的原则④接口和抽象类的区别

java基础总结①抽象②接口③设计抽象类和接口的原则④接口和抽象类的区别 一.抽象 abstract作用:不能产生对象,充当父类,强制子类正确实现重写方法和类相比仅有的改变是不能产生对象,其他的都有,包括构造.属性等等任何一个类只要有一个抽象的方法就成了抽象类 抽象方法 public abstract A();①方法是抽象的,这个类也是抽象的:②子类必须重写抽象方法,除非子类也是抽象类 抽象类可以没有抽象方法,但一般不这么设计 二.接口 interface 接口也是Java的一种引用数据类型(J

java基础 计算今天距本月最后一天还剩多少天

Calendar  c = new GregorianCalendar();   //GregorianCalendar 是Calendar的一个具体子类,提供了世界上大多数国家/地区使用的标准日历系统. GredorianCalendar 是一种混合日历,可由调用者通过调用setGregorianChange()来更改起始日期. Calendar c = new  Calendar.getInstance(TimeZone.getTimeZone("GMT+08:OO"));  //

Java基础语法

Java的基础语法中包含字符集.标识符和关键字.变量和常量.语句.注释.运算符和表达式这些基本要素. 一.关键字 编程语言都有一些保留的单词,用于定义该语言,这些单词对于编译器有特殊含义,不能作为标识符使用: Java中的true.false.null这三个保留字,不能作为标识符使用,对于编译器有特殊含义: main是一个用于描述Java程序开始方法的特殊名称,它不是一个关键字: abstract 抽象 boolean 逻辑运算: 布尔 break 打破: 断开 byte 字节: case 例,

JAVA基础——重新认识String字符串

深入剖析Java之String字符串 在程序开发中字符串无处不在,如用户登陆时输入的用户名.密码等使用的就是字符串. 在 Java 中,字符串被作为 String 类型的对象处理. String 类位于 java.lang 包中.默认情况下,该包被自动导入所有的程序. 创建 String 对象有三种方法 String s1="我是字符串1"; String s2=new String();//创建一个空的字符串对象 String s3=new String("我是字符串2&q

第2篇-JAVA基础

第2篇-JAVA基础 每篇一句 :无论处在任何领域中,即使是在小的事情,都要让每一天有所价值 初学心得: 在学习的过程中,错误是很宝贵的,它一笔"财富",更是一种"价值" (笔者:JEEP/711)[JAVA笔记 | 时间:2017-03-24 | JAVA基础] JAVA基础 回顾 在上一篇文章中,最后提到两个问题, 相信读者们已经提前超额完成了"任务" 下面跟着笔者的思路,深入掌握JAVA底层的运行机制 JAVA运行机制 (重中之重) JAV

第4篇-JAVA基础

第4篇-JAVA基础 每篇一句 :世界上本没有完美,但是我们从未放弃追求完美 初学心得: 乐于挥霍的时间,都不能算作浪费 (笔者:JEEP/711)[JAVA笔记 | 时间:2017-04-01| JAVA基础 Ⅳ] 程序运行流程 (1) 顺序结构 (2) 分支结构 (3) 循环结构 (4) break 与 continue关键字 (5) 数组 (6) 方法 1.顺序结构 如果代码里没有流程控制,程序是至上而下一行一行执行的 一条语句执行完之后继续执行下一条语句,直到程序的最后 2.分支结构 顺

JAVA基础汇总及例题详解

java语言的一个核心: jdk, java development kits---面向开发人员 jre, java Runtime Environment---服务器上 java虚拟机---(以字节码为指令的CPU)---*.class java编译器-->字节码-->类加载器进行验证-->虚拟机运行 垃圾回收机制 public class ...{ int a = 1; } c/c++垃圾回收由程序员去运行 java编程语言(一门纯面向对象)的特点: 1, 面向对象  封装  继承