J2EE简答题及答案
- 格式:doc
- 大小:50.50 KB
- 文档页数:4
J2EE考试题及答案
一、概述
本文档收集了一些J2EE考试题与相应的答案。
这些问题涵盖了
J2EE的不同方面,包括Servlet、JSP、EJB、Web服务等。
下面依次列出各个部分的考试题目及答案。
二、Servlet
1. Servlet的生命周期是什么?
答案:
Servlet的生命周期包括以下4个阶段:
1.实例化:当容器接收到对Servlet的请求时,会创建Servlet的实例。
2.初始化:在创建完实例后,容器会调用init方法对Servlet进行初始化。
这个方法只会在Servlet的生命周期中被调用一次。
3.服务处理:一旦初始化完成,Servlet就可以处理来自客户端的请求。
容器会多次调用Servlet的service方法来处理不同的请求。
4.销毁:当容器关闭或发生其他终止条件时,容器会调用destroy 方法销毁Servlet实例。
在销毁之前,容器会先调用Servlet的destroy方法进行一些清理工作。
2. Servlet的线程模型是什么?答案:
Servlet的线程模型是。
j2ee考试题及答案ejb1. 什么是EJB(Enterprise JavaBeans)?EJB是一种服务器端组件架构,用于开发和部署多层结构的、分布式的、面向对象的Java应用程序。
EJB组件提供了一种结构化的方法来创建可重用的、可伸缩的和事务性的业务逻辑。
2. EJB有哪些类型?EJB主要有三种类型:会话Bean(Session Beans)、实体Bean(Entity Beans)和消息驱动Bean(Message-Driven Beans)。
3. 会话Bean(Session Beans)的作用是什么?会话Bean代表与客户端的短暂交互,它们通常用于实现应用程序的业务逻辑,但不保存数据。
会话Bean可以是无状态的(Stateless)或有状态的(Stateful)。
4. 实体Bean(Entity Beans)和会话Bean(Session Beans)有什么区别?实体Bean代表业务实体,通常与数据库中的持久数据相关联,而会话Bean代表与客户端的短暂交互,不直接与持久数据关联。
5. 消息驱动Bean(Message-Driven Beans)的主要功能是什么?消息驱动Bean是一种特殊的EJB,用于处理来自消息队列的消息。
它们是无状态的,并且可以异步处理消息,这使得它们非常适合处理大量消息。
6. EJB容器提供哪些服务?EJB容器提供多种服务,包括事务管理、安全性、持久性、生命周期管理、并发控制和资源池。
7. EJB的事务属性有哪些?EJB的事务属性包括:Required、RequiresNew、Mandatory、Never、NotSupported和Supports。
8. 如何在EJB中处理异常?在EJB中,可以通过声明异常(declarative exception handling)和编程异常(programmatic exception handling)两种方式来处理异常。
1、简述J2EE的四层模型。
(1)运行在客户端机器上的客户层组件(2)运行在J2EE服务器上的Web层组件(3)运行在J2EE服务器上的业务逻辑层组件(4)运行在EIS服务器上的企业信息系统(Enterprise information system)层软件2、什么是对象持久化?即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。
3、简述一下OR MAPPING,为什么我们使用它?ORM(Object Relational Mapping)是一种为了解决面向对象与关系型数据库存在的互不匹配的现象的技术。
简单说:ORM是通过使用描述对象和数据库之间映射的元数据,将Java程序中的对象自动持久化到关系数据中。
本质上就是将数据从一种形式转换到另外一种形式。
原因:用它来架起对象和关系型数据库的桥梁,可解决对象层次的映射、对象关系的映射以及对象的持久化问题。
4、简述一下如何使用Hibernate实现对象持久化的过程(可画图或用伪码描述)STEP 1:创建Configuration对象。
在这一步中主要为了进行配置文件的装载操作,读取所有的配置文件并进行解析STEP 2: 创建SessionFactory对象。
通过创建好的Configuration对象可以创建一个sessionFactory对象的实例,同时是生成Session对象实例的工厂,他在整个应用中应该是唯一的。
STEP 3:创建Session对象。
Session对象类似于数据库的连接对象,可以理解为与数据库建立的一个连接,但是他的功能要比JDBC中的Connection对象丰富很多。
STEP 4:开始一个事务。
在Java中定义一个事务操作的开始,这是使用Hibernate进行持久化操作必不可少的步骤STEP 5:进行持久化操作。
在这个步骤中可以读取或者保存Java对象。
STEP 6:结束事务。
在操作完成之后还要进行显式的结束事务的操作。
《J2EE架构与开发》期末考试简答题答案⼀、请简述Web的⼯作原理。
⼆、HTML的标签有两个重要的属性action和method,这两个属性的作⽤是什么?type属性和name属性的作⽤是什么?答:action:接收表单数据的服务器端程序或动态⽹页的URL地址。
method:表单数据传输到服务器的⽅法。
其属性值如下:post:在HTTP请求中嵌⼊表单数据。
get:将表单数据附加到请求该页的URL中。
type:所属类型name:单⾏⽂本框的名称,通过它可以在脚本中引⽤该⽂本框控件。
三、JSP有哪些内置对象?作⽤分别是什么?答:page对象:page对象代表JSP页⾯本⾝,是this引⽤的⼀个代名词。
对JSP页⾯创建者通常不可访问,所以⼀般很少⽤到该对象。
config对象:config对象是ServletConfig类的⼀个对象,存放着⼀些Servlet初始化信息,且只有在JSP页⾯范围内才有效。
其常⽤⽅法如下:getInitParameter(name):取得指定名字的Servlet初始化参数值。
getInitParameterNames():取得Servlet初始化参数列表,返回⼀个枚举实例。
getServletContext():取得Servlet上下⽂(ServletContext)。
getServletName():取得⽣成的Servlet的名字。
out对象:JSP页⾯的主要⽬的是动态产⽣客户端需要的HTML结果,前⾯已经⽤过out.print()和out.println()来输出结果。
此外out对象还提供了⼀些其他⽅法来控制管理输出缓冲区和输出流。
例如,要获得当前缓存区⼤⼩可以⽤下⾯的语句:out.getBufferSize();要获得剩余缓存区⼤⼩应为:out.getRemaining();response对象:response对象实现HttpServletResponse接⼝,可以对客户的请求做出动态的响应,向客户端发送数据request对象:session对象:application对象:pageContext对象:exception对象:exception对象⽤来处理JSP⽂件在执⾏时所发⽣的错误和异常。
J2EE笔试题目及答案1、heap和stack有什么区别?答:栈是一种线形集合,其添加和删除元素的操作应在同一段完成。
栈按照后进先出的方式进行处理。
堆是栈的一个组成元素2、Java中的异常处理机制的简单原理和应用答:当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。
违反语义规则包括2种情况。
一种是JAVA类库内置的语义检查。
例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发 NullPointerException。
另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用 throw关键字引发异常。
所有的异常都是ng.Thowable的子类。
3、垃圾回收的优点和原理。
并考虑2种回收机制答:Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。
由于有个垃圾回收机制,Java中的对象不再有"作用域"的概念,只有对象的引用才有"作用域"。
垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。
垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。
回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。
4、你所知道的集合类都有哪些?主要方法?答:最常用的集合类是 List 和 Map。
List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。
List 适用于按数值索引访问元素的情形。
Map 提供了一个更通用的元素存储方法。
Map 集合类用于存储元素对(称作"键"和"值"),其中每个键映射到一个值。
J2EE简答题复习(含答案)1、forward和sendRedirect的区别forward是request的方法,sendRedirect是response的方法,使用forward延续之前的请求,地址栏地址不会转变,使用sendRedirect会开启新的请求,地址栏地址转换2、视图层调用了服务层好不好,该怎么办?不好,因为视图层和服务层之间还有控制层,不应该越级调用3、Service层的简介在内存中以对象的形式处理业务逻辑4、有人认为MVC模式对M的支持很弱,为什么?因为mvc模式的m中,只有对象的get、set和validate方法,只支持领域对象,广义上的m应该包括实体对象和服务对象5、普通的Action只有一个execute()方法,有何缺点,如何改进?只有一个execute()方法导致类的数目太多改进:把一个execute()方法变成多个方法,在url中加入某变量,在配置文件中设置参数,告知核心控制器调用哪个方法6、AOP能代替OOP吗?不能。
AOP侧重实现功能,而OOP侧重对象,AOP实现多种功能,并把这些功能植入各个对象,不能代替,应该两种结合起来使用7、何谓IOC控制反转,也叫DI,依赖注入,由容器为类注入某些对象,在配置文件中配置,类的实例要向容器申请。
8、Struts中自定义控制器的方法execute()的参数及解释public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) {return mapping.findForward("error");}ActionMapping 作用就是帮助控制其将请求映射到操作ActionForm 作用就是接受和存储表单form中接受的数据(相当于bean)Request 请求Response 回复9、如何引入struts下载struts的jar包,在web.xml中以servlet的方式配置该类,来映射到某些类10、servletContext能否做购物车能,但是这种做法不提倡,servletContext相当于jsp中的application,会涵括整个项目的所有人的购物车信息,会使得结构复杂,对服务器而言,负担比较大1。
J2EEWeb考试试题及答案1、JSP技术是一种在WEB应用中开发动态交互性网页的技术,请阐述一下JSP技术的优缺点?JSP技术具备了Java技术的简单易用、完全面向对象、具有平台无关性且安全可靠、主要面向Internet的所有特点。
JSP的技术优势:(1)一次编写、到处运行。
(2)系统的多平台支持。
(3)强大的可伸缩性。
(4)多样化和功能强大的开发工具支持。
JSP的技术弱势:(1)正式由于为了跨平台的功能,为了极度的伸缩能力,所以极大地增加了产品的复杂性。
(2)Java的运行速度是用class对象常驻内存来完成的,所以需要计算机系统有足够的内存来保证程序的运行。
2、请简述JSP的工作原理。
当JSP页面第一次被Java服务器调用时,通过JSP引擎自动被编译成Servlet,然后被执行,以后每次调用时,执行编译过的Servlet。
将执行的结果在客户端显示出来。
3、在JSP的动作元素中,标签允许包含两种文件:动态文件和静态文件,在服务器对这两种文件进行解析执行时,有什么异同点。
标签允许包含动态文件和静态文件,但是这两种包含文件的结果是不同的.。
如果文件仅仅是静态文件,那么这种包含仅仅是把包含文件的内容加到JSP文件中去,这种被包含文件不会被JSP编译器执行。
相反地,如果这个被包含文件是动态的文件,那么这个被包含文件将会被JSP编译器执行。
4、在WEB页面中我们常有的页面重定向技术有那些?在Servlet 中,我们如何实现页面转发?5、请写出使用JDBC技术连接SQLServer数据库时,建立连接对象(Connection)以及建立语句集对象(Statement)的JAVA代码。
Connectionconnection;Statementstatement;StringsourceURL="jdbc:microsoft:sqlserver://127.0.0.1:14 33;DatabaseName=你的数据库的名字";StringUserName=你的数据库用户名;StringPassword=你的数据库的访问密码;publicDatabaseConnection(){try{Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDri ver");connection=DriverManager.getConnection(sourceURL,UserNam e,Password);statement=connection.createStatement();}catch(SQLExceptionsqle){System.err.println("Errorcreatingconnection");}catch(ClassNotFoundExceptioncnfe){System.err.println(cnfe.toString());}}6、请比较并简述利用JSP+JavaBean模式进行开发和利用JSP+Servlet+JavaBean模式进行开发有什么异同?有什么优缺点?(1)使用JSP+JavaBean模式开发项目时,JSP页面独自响应请求并经处理后把结果返回给客户端;JavaBean负责处理业务逻辑。
1.什么事Servlet?什么是Servlet容器?它的主要作用是什么?答:1.Servlet 是一种在服务器上执行的 Java 技术组件。
2.Web 容器是一种运行时环境,管理 Web 应用程序的组件,如 Servlet、JSP Pages、筛选器和 Web 事件侦听器。
3. a.通信支持b.生命周期管理c.多线程支持d.声明性安全e.JSP 支持2.Web应用程序的部署描述文件名是什么?它是什么类型的文件?应该存放在什么目录中?答:1.war2.jar文件3.webapps3.什么是404错误?答:请求资源不存在服务器找不到指定的资源,请求的网页不存在。
4.什么是JSP页面?它与HTML页面有什么关系?答:在HTML中插入JAVA程序段和JSP标记.JSP页面是实现HTML页面嵌入代码和使用模板数据的一种技术。
HTML是JSP的基础,JSP在HTML中添加JAVA程序使原本静态网页变成动态网页.5.Servlet和JSP各适用什么场合?答:前者适合做逻辑处理,后者适合做页面呈现.6.简述Servlet的生命周期,生命周期方法有那几个?答:1.加载Servlet类2.创建Servlet实例3.调用init方法4.调用service方法5.调用destory方法Init service destory7.GET请求和POST请求有什么不同?答:前者:表单数据包含在HTTP请求的URL中,包含数据量较小后者:表单数据包含在HTTP请求的请求体中,包含数据量较大8.有哪几个作用域对象?如何在这些对象上设置获得属性?在什么作用域中对象可以被Servlet容器的所有的Web应用程序访问?答:requestsessioncontext设置: 对象.setAttribute(“key”,value)获取:对象.get Attribute(“key”)context9.JSP有哪些内置对象?分别有什么作用?答:10.试述JSP的工作方式。
二.简答题:1.JSP中INCLUDE动作与INCLUDE指令异同点?1.include指令include可以在JSP页面转换成Servlet之前,将JSP代码插入其中。
它的主要优点是功能强大,所包含的代码可以含有总体上影响主页面的JSP构造,比如属性、方法的定义和文档类型的设定。
它的缺点是难于维护只要被包含的页面发生更改,就得更改主页面,这是因为主页面不会自动地查看被包含的页面是否发生更改。
语法:<%@ include file="sample.jsp" %>2.include动作jsp:include动作是在主页面被请求时,将次级页面的输出包含进来。
尽管被包含的页面的输出中不能含有JSP,但这些页面可以是其他资源所产生的结果。
服务器按照正常的方式对指向被包含资源的URL进行解释,因而这个URL可以是Servlet或JSP页面。
服务器以通常的方式运行被包含的页面,将产生的输出放到主页面中,这种方式与RequestDispatcher 类的include方法一致。
它的优点是在被包含的页面发生更改时,无须对主页面做出修改。
它的缺点是所包含的是次级页面的输出,而非次级页面的实际代码,所以在被包含的页面中不能使用任何有可能在整体上影响主页面的JSP构造。
语法:<jsp:include page="sample.jsp" flush="true"> <jsp:param name="name" value="value"/> </jsp:include>其中参数设置可以没有,如果没有参数设置,则必须采用<jsp:include page="sample.jsp" flush="true"/>形式3. 两者的主要区别jsp:include动作和include指令之间的根本性的不同在于它们被调用的时间。
一、选择题1、以下哪些框架属于ORMapping框架技术(C)(常见的ORM框架包括Hibernate、iBATIS、TopLink、Castor JDO、Apache OJB等)a)Struts b)Spring c)Hibernate d)MyBATIS2、下面针对Hibernate框架描述错误的是(D)a)Hibernate框架是一个ORMapping框架,可以完成对象与表之间的映射关系b)Hibernate的映射关系只能由XML来完成c)Hibernate框架中用来作为数据库连接操作的核心对象是Sessiond)Hibernate中使用HQL语句可以完成针对数据的添加,修改,删除和查询功能3、以下针对Struts2框架描述错误的是(C)a)Struts2框架中接收参数是在Action类中完成的。
b)编写Struts2的Action类必须继承ActionSupport类c)Struts2的分发操作只能使用!来完成d)Struts2框架存在重大漏洞,在2.3以后的版本中才被修复4、以下框架或技术中与Struts2功能类似的框架是(D)a)Hibernate b)JDBC c)JSP/Servlet d)Spring MVC5、以下针对Spring框架描述正确的是(D)a)Spring框架是一个单独使用的框架,不需要结合其他框架技术来应用b)SpringMVC是前端框架,功能类似Struts框架c)SpringMVC需要编写xml配置文件来对Action类进行配置,自己编写的Action类必须继承ActionSupport类d)Spring框架结合Hibernate开发时,需要保留hibernate.cfg.xml配置文件,并在里面配置数据库连接相关的配置,由Hibernate来管理连接的关闭和事务处理。
6、以下关于IoC理解正确的是(C)a)控制反转b)一定要用接口c)通过<ref>来设置注入d)通过<value>来设置注入7、对Hibernate的支持主要用到了Spring的哪个模块?(C)a)Spring Core b)Spring IoC c)Spring ORMapping d)Spring Web MVC8、以下哪个不属于Hibernate中Session的方法?(D)a)save() b)delete() c)update() d)open()二、简答题1、列出Hibernate中常用的主键生成方式,并说明他们的作用(至少4种)答:1)assigned:通过程序添加。
1、简述J2EE的四层模型。
运行在客户端机器上的客户层组件运行在J2EE服务器上的Web层组件运行在J2EE服务器上的业务逻辑层组件运行在EIS服务器上的企业信息系统(Enterprise information system)层软件2、什么是对象持久化?即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。
3、简述一下OR MAPPING,为什么我们使用它?ORM(Object Relational Mapping)---是一种为了解决面向对象与关系型数据库存在的互不匹配的现象的技术。
简单说:ORM是通过使用描述对象和数据库之间映射的元数据,将Java 程序中的对象自动持久化到关系数据中。
本质上就是将数据从一种形式转换到另外一种形式。
原因:用它来架起对象和关系型数据库的桥梁,可解决对象层次的映射、对象关系的映射以及对象的持久化问题。
4、简述一下如何使用Hibernate实现对象持久化的过程(可画图或用伪码描述)STEP 1:创建Configuration对象。
在这一步中主要为了进行配置文件的装载操作,读取所有的配置文件并进行解析STEP 2: 创建SessionFactory对象。
通过创建好的Configuration对象可以创建一个sessionFactory对象的实例,同时是生成Session对象实例的工厂,他在整个应用中应该是唯一的。
STEP 3:创建Session对象。
Session对象类似于数据库的连接对象,可以理解为与数据库建立的一个连接,但是他的功能要比JDBC中的Connection对象丰富很多。
STEP 4:开始一个事务。
在Java中定义一个事务操作的开始,这是使用Hibernate进行持久化操作必不可少的步骤STEP 5:进行持久化操作。
在这个步骤中可以读取或者保存Java对象。
STEP 6:结束事务。
在操作完成之后还要进行显式的结束事务的操作。
STEP 7:关闭Session。
类似于释放数据库的连接。
5、为什么要实现序列化?序列化是为了解决在对对象流进行读写操作时引发的问题6、比较一下sessionFactory中的opensession()和getcurrentsession ()方法。
采用getCurrentSession()创建是session会绑定到当前线程中,而采用openSession()创建的session则不会.采用getCurrentSession()创建的session在commit或rollback时会自动关闭,而采用openSession()创建的session必须手动关闭7、比较一下session中的load()和get()方法,以及如何保证每次都是从数据库读取而不是在缓存中读?1.如果找不到符合条件的纪录,get()方法将返回null.而load()将会报出ObjectNotFoundEcception.2.load()方法可以返回实体的代理类实例,而get()永远只返回实体类.3.load()方法可以充分利用二级缓存和内部缓存的现有数据,而get()方法只在内部缓存中进行查找,如没有发现对应数据将跳过二级缓存,直接调用SQL完成查找.8、Action接受用户参数输入,主要有哪几种方式?我们常用的是哪一种?常用第一种跟第二种1.Action属性传参数;2.Domain modal(域模型)接收参数;3.Modal driven接收参数。
9、在struts中实现一个action有哪几种方式?最常用的是哪种?1定义一个普通的类,类中只要有一个public String execute()方法且返回一个字符串即可。
2.定义一个类,实现Action接口,xwork2.Action这个包的3继承xwork2.ActionSupport这个类。
最常用的是第三种10、在struts.xml中Result的type的四种类型:1.dispacther2.redirect3.chain4.redirectAction哪些是服务器跳转?哪些是客户端跳转?dispatcher和chain是服务器端跳转,所以客户端只发起一次请求redirect和redirectAction是客户端跳转,所以客户端发起两次请求。
11、j2ee是技术还是平台还是框架?它主要包含哪些技术,列举并简单描述2到3个技术?J2EE本身是一个标准,一个为企业分布式应用的开发提供的标准平台。
J2EE也是一个框架,包括JDBC、JNDI、RMI、JMS、EJB、JTA等技术。
技术:servlet jsp ejb 主要是这3个部分12、MVC的各个部分都有哪些技术来实现?如何实现?MVC是Model-View-Controller的简写。
"Model" 代表的是应用的业务逻辑(通过JavaBean,EJB组件实现)。
"View" 是应用的表示面(由JSP页面产生)。
"Controller" 是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。
这些组件可以进行交互和重用。
13、什么是JNDI?JNDI(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java 应用中访问命名和目录服务的API。
14、举例并简单描述2到3种动态网页开发技术。
动态网页开发技术有ASP、、JSP和PHP1、PHP 独特的语法混合了C、Java、Perl 以及PHP 自创的语法。
用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
PHP具有非常强大的功能,所有的CGI的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。
最重要的是PHP可以用C、C++进行程序的扩展!2、ASP是一种服务器端脚本编写环境,可以用来创建和运行动态网页或Web应用程序。
ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组件等。
利用ASP 可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页作为用户界面的web应用程序。
3、JSP 即Java Server Pages,是基于Java Servlet以及整个Java体系的Web开发技术。
以至 ASP一般只应用于Windows NT/2000平台,而JSP则可以在85%以上的服务器上运行,而且基于JSP技术的应用程序比基于ASP的应用程序易于维护和管理。
它的主要目的是将表示逻辑从Servlet中分离出来15、简单描述浏览器输入:http://localhost:8080/myFirstWeb/myFirstServlet访问web 资源的过程(也就是servlet的工作时序图),提示:解释地址--->用端口号和地址访问服务器-->访问资源1.浏览器会将请求打包成http请求数据包,发送给web服务器,2.web服务器中的servlet引擎解析请求并封装为一个HttpServletRequest对象(包含了请求数据),同时创建个HttpServletResponse对象。
3.servlet调用servlet的service()方法,并将HttpServletReque,HttpServletResponse对象作为参数传递给servlet实例4.servlet可以从HttpServletRequest对象中获得请求数据,并处理,当然,servlet 也可能要访问数据库。
然后将处理之后的结果放到HttpServletResponse中。
5.servlet引擎从HttpServletResponse中取数据,并将数据打包成http数据包发送给浏览器。
16、开发serlvet服务器程序三种方法。
1.实现servlet接口2.继承GenericServet3.继承HttpServlet17、通过httpservlet去开发servlet,需要重写doGet和doPost方法。
这是常用的方式,请简述Get与Post方法的区别。
1. 从安全性看:get方法安全性比post方法低,get提交的数据会在浏览器的地址显示出来;用户和密码会被显示出;2. 从提交的内容大小看:get方法post方法低,get提交的数据不能大于2K,而post 提交的数据理论上不受限制,但是实际编程中建议不要大于64K;3. 从请求响应速度看:get方法响应速度快于post方法, get要求服务器立刻处理请求,而post请求可能形成一个队列请求。
18、简述http返回包中的状态码200,302,404,500的意义。
200 - 服务器成功返回网页302 - 对象已移动404 - 请求的网页不存在500 - 内部服务器错误19、简述请求重定向(response.sendRedirect)和请求转发(getRequestDispatcher.forward)的区别。
(1)RequestDispatcher.forward方法只能将请求转发给同一个Web应用中组件; HttpServletResponse.sendRedirect方法不仅可以重定向当当前应用程序的其他资源,还可以重定向到同一个站点上的其他应用程序的资源,甚至是使用绝对路径URL重定向到其他站点的资源.(2)调用HttpServletResponse.sendRedirect方法重定向的访问结束后,浏览器的地址栏显示的URL会发生改变,由初始的URL地址变成重定向的目标URL;而调用requestDispatcher.forward方法的请求转发过程结束后,浏览器地址栏保持初始的URL地址不变.(3)HttpServletResponse.sendRedirect方法整个过程浏览器共发送了两次请求信息,接受了两次响应;而getRequestDispatcher.forward方法整个过程浏览器共发送了一次请求信息,接受了一次响应.(4)RequestDispatcher.forward方法调用者与被调用者之间共享相同的Request对象和Response对象,他们属于同一个访问请求和响应过程;而HttpServletResponse.sendRedirect方法调用者与被调用折使用各自的Request对象和Response对象,他们属于两个独立的访问请求和响应过程.。