Java中的Web设计
1.forward和redirect的区别是什么?
// 他们的区别如下:
// 1. forward是服务器请求资源,服务器直接访问目标地址的URL,把URL的响应内容读取过来,然后把这些内容发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。
// 2. redirect就是服务端根据逻辑发送一个状态码,告诉浏览器重新去请求事先访问过的那个地址,一般来说,浏览器会用刚才请求的所有参数重新请求,所以Session、Request参数都可以获取。
2.JSP有哪些内置对象?作用分别是什么?
// JSP共有9种基本内置组件(可与ASP的6种内部组件相对应)。
// request:用户端请求,此请求会包含来自GET/POST请求的参数。
// response:网页传回用户端的回应。
// pageContent:网页的属性是在这里管理的。
// Session:与请求有关的会话。
// application:Servlet正在执行的内容。
// Out:用来传送回应的输出。
// COnfig:Servlet的构架部件。
// Page:JSP网页本身。
// Exception:针对错误网页,未捕捉的例外。
3.JSP有哪些动作?它们的作用分别是什么?
// JSP共有以下6种基本动作。
// jsp:include: 在网页被请求的时候引入一个文件。
// jsp:userBean: 寻找或者实例化一个JavaBean。
// jsp:setProperty: 设置JavaBean的属性。
// jsp:getProperty: 输出某个JavaBean的属性。
// jsp:forward: 把请求转到一个新的页面。
// jsp:plugin: 根据浏览器类型为Java插件生成OBJECT或EMBED标记。
4.JSP中动态INCLUDE与静态INCLUDE的区别有哪些?
// 答案:动态INCLUED用jsp:include动作实现,如下面这行代码它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。
<jsp:include page="included.jsp" flush="true" />
静态INCLUDE用include伪码实现,如下面这行代码不会检查所包含文件的变化,适用于包含静态页面。
<%@ include file="included.htm" %>
5.JSP两种跳转方式分别是什么?有什么区别?
// 两种跳转方式分别如下。
<jsp:include page="included.jsp" flush="true">
<jsp:forward page="nextpage.jsp" />
// 前者页面不会转向include所指的页面,只是显示该页的结果,主页面还是原来的页面。执行完以后还会回来,相当于函数调用,并且可以带参数。后者完全转向新页面,不会再回来,相当于GOTO语句。
6.使用JSP代码和使用JavaScript进行表单数据验证有什么不同?
// JavaScript为脚本程序,可以在表单提交前在客户端验证,提高了验证速度,不会使表单内信息丢失。JSP验证需要向服务器请求,服务器对请求页面进行重新编译,并验证数据的合法性,使得服务器负担加重,且验证结果返回较慢,容易使填写的表单信息丢失。
7.请描述Java Servlet API中forward()和rediect()的区别?
// 答案:前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址。后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其他服务器上的资源,则必须使用sendReditect()方法。
8.请描述cookie和session机制的区别和联系。
// 1. 具体来说,cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。同时,由于采用服务器端保持状态的方案在客户端也需要保存一个标志,所以session机制可能需要借助于cookie机制来达到保存标志的目的,但实际上它还有其他选择。
// 2. 正统的cookie分发是通过扩展HTTP协议来实现的,服务器通过在HTTP的响应头中加上一行特殊的提示,以提示浏览器按照指示生成相应的cookie。然而纯粹的客户端脚本,如JavaScript或者VBScript也可以生成cookie。而cookie的使用是由浏览器按照一定的原则在后台自动发送给服务器的。浏览器检查所有存储的cookie,如果某个cookie所声明的作用范围大于或等于将要请求的资源所在的位置,则把该cookie附在请求资源的HTTP请求头上发送给服务器。
// 3. session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。
// 4. 保存这个session ID的方式可以采用cookie,这样在交互过程中浏览器可以自动按照规则把这个标志发回给服务器。一般这个cookie的名字都是类似于session ID。但cookie可以被人为地禁止,则必须有其他机制,以便在cookie被禁止时仍能够把session ID传递回服务器。