java复习2

Java8 从永久带到元数据区
异常处理
两种异常
受检查的checked必须要用throws语句在方法或构造方法上声明
不受检查的unchecked
Exception和Error都是Throwable的子类
Exception用于用户程序可以捕捉的异常,Error定义了不期望被用户程序捕捉的异常
多个异常用逗号分隔
throw关键字用于在程序中明确的抛出异常
throws语句用于表明方法不能处理的异常
finally
无论是否抛出异常,finally代码块总是会执行,
没有catch语句同时又抛出异常的情况下,finally代码块仍然会执行
finally代码块主要用来释放资源,比如:I/O缓冲区,数据库连接
Exception对象会在下一个垃圾回收周期被回收
finally,无论是否抛出异常,finally代码块都会被执行,主要用于释放资源
finalize()方法是Object类的一个protected方法,在垃圾回收之前由JVM调用
JavaApplet
javaApplet是能够被包含在HTML页面中并且能被启用了Java的客户端浏览器执行的程序
Applet主要用于创建动态交互的web应用程序
applet生命周期
经历下面的状态
init start stop destroy
applet被载入时–创建applet实例,初始化applet,开始执行
applet&&Java
applet是运行在启用了Java的浏览器中,Java应用程序时可以在浏览器之外独立运行的
Java程序, 都需要JVM
Java应用程序需要一个有特定的方法签名的main方法来开始执行,applet不需要
applet使用比较严格的安全策略,Java使用相对宽松的安全策略
applet的限制条件
不能载入类库或者定义本地方法
不能在宿主机上读写文件
不能读取特定的系统属性
不能发起网络连接,除非是与宿主机
不能开启宿主机上的其他任何程序
不受信任的applet
不能访问或不能执行本地系统文件的applet
所有下载的applet都是不受信任的
网络上加载的applet&&本地文件系统加载的applet
当applet从网络上加载时,是由applet类加载器载入,收applet安全管理器限制
当applet由本地文件系统加载时,是由文件系统加载器载入的,允许在客户端读写文件
加载类库,执行其他程序,不能通过字节码校验
applet类加载器
有自己的名称空间等级结构,类加载器保证文件系统的类有唯一的名称空间,网络资源
的类有唯一的名称空间
当浏览器通过网络载入applet,applet的类被放置在与applet的源相关联的私有的名称空
间中,被类加载器载入进来的类都是通过了验证器验证的,验证器会检查类文件是否遵
守Java语言规范,确保不会发生stack overflow 和 underflow ,确保传递给字节码指令的
参数是正确的
applet安全管理器
给applet施加限制的一种机制,
浏览器可以只有一个安全管理器
在启动时被创建。不能被覆盖和扩展
swing
。。。
JDBC
允许用户在不同数据库之间做选择的一个抽象层
允许开发者用Java写数据库应用程序,而不用关心底层特定数据库的细节
Driver
JDBC驱动提供了特定厂商对JDBC API接口类的实现,
驱动必须要提供sql包下的类的实现:Connection Statement PreparedStatement
CallableStatement ResultSet Driver
class.forName()方法用来载入与数据库建立连接的驱动
PreparedStatement&&Statement
PreparedStatement是预编译的,性能更好,
PreparedStatement允许不同的查询参数值,重用性高
CallableStatement
执行存储过程,存储过程是由数据库存储和提供的
存储过程可以传入参数,可以有返回结果
鼓励使用存储过程,因为他提供了安全性和模块化
准备CallableStatement的方法–CallableStatement.preparedCall();
数据库连接池
提高开启关闭数据库的效率,减少资源的消耗,将多个数据库连接维护在一个池中,连
接请求有池提供,使用完毕,再返回到池中,以用来满足将来更多的请求
远程方法调用RMI
JavaAPI对远程过程调用(RPC)提供的面向对象的等价形式,支持直接传输序列化的Java对
象和分布式垃圾回收
RMI体系结构的基本原则
基于一个行为定义和行为实现相分离的原则,运行在不同的虚拟机上
RMI分层
存根和骨架层(Stub and Skeleton Layer)主要负责拦截客户端发出的方法调用的请求,然
后把请求重定向到远程的RMI服务,对程序员透明
远程引用层(Remote Reference Layer)解析并管理客户端对远程服务端对象的引用,连接
是点对点的
传输层(Treansport Layer)负责连接参与服务的两个JVM,是建立在网络上机器间的
TCP/IP连接之上的,提供基本的连接服务,还有一些防火墙穿透策略
RMI远程接口(Remote Interface)
表示哪些方法可以被非本地虚拟机调用
远程对象必须直接或间接实现远程接口
声明被实现的远程接口
给每个远程对象定义构造函数
给所有远程接口的方法提供实现
。。。
Sevlet
sevlet是用来处理客户端请求并产生动态网页内容的java类,
sevlet主要用来处理和存储HTML提交的表单数据,在无状态的HTTP协议下管理状态
信息
sevlet体系结构
所有的sevlet都必须直接或间接实现javax.servlet.servlet接口,或者继承
GenericServlet,或者继承HttpServlet,
sevlet使用多线程可以并行的为多个请求服务
applet&&servlet
applet运行在客户端的Java程序,servlet运行在服务端的组件,
applet可以使用用户界面,servlet没有用户界面
servlet等待客户端的HTTP请求,并为请求产生相应
GenericServlet&&HttpServlet
GenericServlet是一个通用的协议无关的servlet,实现类servlet和servletConfig接口
继承此类,要覆盖service()方法,
为了开发服务于HTTP协议请求的servlet,需要继承HttpServlet
servlet生命周期
对每一个客户端的请求,servlet引擎载入servlet,调用他的init()方法,完成初始化
然后,servlet对象通过为每一个请求单独调用service()方法来处理所有随后来自客户
端的请求
最后,调用servlet的destroy()方法把servlet删除
doGet()&&doPost()
doGet()请求参数在URL后面,长度受限,参数可见,敏感信息不建议用这种方式传

doPost()请求参数在请体中,长度不受限,参数对外部客户端不可见,敏感信息建议
使用这种方式传递
web应用程序
web应用程序是对web或者是应用服务器的动态扩展,两种
面向表现
面向表现的web应用程序会产生包含了很多种标记语言和动态内容的交互的
web页面作为请求的响应
面向服务
面向服务的web应用程序实现了web服务的端点(endpoint)
一般来说,一个web应用可以看成是一组安装在服务器URL名称空间下的特定子集
的servlet集合
服务端包含(server side include)SSI
一种简单的解释型服务端脚本语言,大多数仅用在web上,用servlet标签嵌入
SSI最常用的场景是把一个或者多个文件包含在web服务器的一个web页面中,
当浏览器访问web页面,web服务器用对应的servlet产生的文本来替换web页面的
servlet标签
servlet链
servlet把一个servlet的输出发送到另一个servlet的方法,
第二个servlet的输出可以发送给第三个servlet,链条上最后一个servlet负责把响应
发送给客户端
ServletRequest的getRemoteAddr()方法获取客户端主机的IP
ServletRequest的getRemoteHost()方法获取主机名
HTTP响应结构
三部分
状态码(Status Code)
描述了相响应状态,可以用来检查是否成功完成了请求
HTTP头(HTTP header)

		主体(body)		
cookie&&session
	cookie是从web服务器发送给浏览器的一块信息,浏览器会在本地文件为每一个服务器存储cookie
	之后浏览器给特定的web服务器发送请求时,会携带所有为该服务器存储到cookie
	session存储在服务端,可以存储任意的对象
	cookie只能存储String类型的对象
浏览器和servlet通信使用HTTP协议
HTTP隧道
	是一种利用HTTP或者HTTPS把多种网络协议封装起来进行通信的技术
	扮演了一个打通用于通信的网络协议的管道的包装器的角色
	把其他协议的请求掩盖成HTTP请求就是HTTP隧道
sendRedirect()&&forward()
	senfRedirect()方法会创建一个新的请求,forward()只是把请求转发到另一个新的目标上
	sendRedirect()方法执行后,之前请求作用域范围以内的是对象就失效了
	forward()方法执行后,之前请求的作用域对象依然有效
	一般认为forward()比sendRedirect()要快
URL编码URL解码
	URL编码是负责把URL里面的空格和特殊字符替换成对应的十六进制表示
	URL解码反之

JSP
jsp页面是一种包含了静态数据和jsp元素的文本的文本文档,
静态数据可以是任何基于文本的格式来表示
jsp是一种混合了静态内容和动态内容的技术
处理jsp请求
浏览器请求一个以.jsp结尾的页面,发出jsp请求,web服务器读取这个请求,jsp编
译器把jsp页面转化成一个servlet类,然后服务器调用servlet类,处理请求,执行结
束,servlet会把响应发送给客户端
jsp优点
jsp页面是被动态编译成servlet的,易于更新展现代码
jsp页面可以被预编译
jsp页面很容易和静态模板结合,很容易和产生动态的代码结合
开发者可以提供让页面设计者以类似xml格式访问自定义的jsp标签库
开发者可以在组件层做逻辑上的改变,不需要编辑单独使用了应用逻辑层的页面
jsp指令(Directive)
Directive是当jsp页面被编译成servlet时,jsp引擎要处理的指令
用来设置页面级别的指令,从外部文件插入数据,指定自定义的标签库
是定义在<%@ %>之间的
类型
include 包含文件和合并文件
page 定义jsp页面特定的属性
taglib 声明页面使用的自定义的标签库
jsp动作(action)
以xml语法的结构来控制jsp引擎的行为
当jsp页面被请求的时候,jsp动作会被执行
动态插入在文件中,重用javaBean组件,转发用户到其他页面,给Java插入
HTML代码
jsp:include 当jsp页面被请求时包含一个文件
jsp:useBean找出或者是初始化javaBean
jsp:setProperty设置javaBean的属性
jsp:getProperty获取javaBean的属性
jsp:forward把请求转发到新的页面
jsp:plugin产生特定浏览器的代码
Scriptlets
嵌入在jsp中的一段java代码,
Decalaration声明
与Java的变量声明相似,声明随后要被表达式或者scriptlet使用的变量
添加的声明必须要用开始和结束标签包起来
Expression表达式
jsp表达式是web服务器把脚本语言表达式的值转换成一个String对象,插入到返回
给客户端的数据流中
表达式在<%= %>之间表示
隐含对象
jsp页面中不用声明就可以直接使用的java对象
application page request response session exception out config pageContext

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值