本人微信公众号"aeolian"~

Web开发基础常识

异常体系结构

Thorwable类(表示可抛出)是所有异常和错误的超类,两个直接子类为Error和Exception,分别表示错误和异常。其中异常类Exception又分为运行时异常(RuntimeException)和非运行时异常,  这两种异常有很大的区别,也称之为不检查异常(Unchecked Exception)和检查异常(Checked Exception)。

Error与Exception
    Error是程序无法处理的错误,它是由JVM产生和抛出的,比如OutOfMemoryError、StackOverflowError、ThreadDeath等。这些异常发生时,Java虚拟机(JVM)一般会选择线程终止。
    Exception是程序本身可以处理的异常,这种异常分两大类运行时异常和非运行时异常。程序中应当尽可能去处理这些异常。

RuntimeException和非运行时异常

    运行时异常都是RuntimeException类及其子类异常,如NullPointerException、IndexOutOfBoundsException等,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。
    非运行时异常是RuntimeException以外的异常,类型上都属于Exception类及其子类。从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。如IOException、SQLException等以及用户自定义的Exception异常,一般情况下不自定义检查异常。

《Web开发基础常识》

jsp九大内置对象四大作用域

九大内置对象:

JSP中一共预先定义了9个内置对象:内置对象,又叫做隐含对象,不需要预先声明就可以在脚本代码和表达式中随意使用

request、response、session、application、out、pagecontext、config、page、exception

说明:

request 请求对象  类型 javax.servlet.ServletRequest 作用域 Request
response 响应对象 类型 javax.servlet.SrvletResponse 作用域 Page
pageContext 页面上下文对象 类型 javax.servlet.jsp.PageContext 作用域 Page
session 会话对象 类型 javax.servlet.http.HttpSession 作用域 Session
application 应用程序对象 类型 javax.servlet.ServletContext 作用域 Application
out 输出对象 类型 javax.servlet.jsp.JspWriter 作用域 Page
config 配置对象 类型 javax.servlet.ServletConfig 作用域 Page
page 页面对象 类型 javax.lang.Object 作用域 Page
exception 例外对象 类型 javax.lang.Throwable 作用域 page

jsp四大作用域:

page, request, session,application

page范围:只在一个页面保留数据(javax.servlet.jsp.PageContext(抽象类))

request范围:只在一个请求中保存数据(javax.servlet.httpServletRequest)

Session范围:在一次会话中保存数据,仅供单个用户使用(javax.servlet.http.HttpSession)

Application范围:在整个服务器中保存数据,全部用户共享(javax.servlet.ServletContext)

为什么要有cookie和session

HTTP协议是无状态的,就是说我们每次去请求都是独立的一次请求,就比如说我们刚刚登陆,到下一个页面,浏览器就不知道我们是谁了,所以引入了cookie和session用来保存我们的请求过的状态,让我们后端知道用户是谁。

每个用户访问服务器都会建立一个session,那服务器是怎么标识用户的唯一身份呢?事实上,用户与服务器建立连接的同时,服务器会自动为其分配一个SessionId。

1、数据存储位置:cookie数据存放在客户的浏览器上,session数据放在服务器上。

2、安全性:cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。

3、服务器性能:session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie。

4、数据大小:单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

5、信息重要程度:可以考虑将登陆信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中。

总结: 一般服务器session中存储个人登录信息,并生成JSESSIONID,然后将JSESSIONID发送给客户端,浏览器将JSESSIONID存储在cookie中,每次请求将cookie中的JSESSIONID发送到服务器,这样就解决了cookie泄露个人信息的安全问题。并发量大可以把不重要的信息放在cookie中,重要信息依然放在session中。

EJB体系

EJB 就是将那些”类”放到一个服务器上,用C/S 形式的软件客户端对服务器上的”类”进行调用。

RMI (Remote Method Invocation) 是RPC+序列化结合的产物。中文名称是”远程方法调用”,利用对象序列化来实现远程调用

RPC (Remote Procedure Call)

JPA 

JMS 

 

点赞

Leave a Reply

Your email address will not be published. Required fields are marked *