2014年计算机二级《WEB》考点:HttpServetlResponse
setStatus(intcode);
设置Http响应头:
setHeader(headername,value);getHeader(headername)getHeaders()
设置响应内容类型:
response.setContentType(text/html);
--text/xml、image/gif、image/jpeg
设置Http消息体(出现在设置响应内容之后):
文本字符:PrintWriterout=response.getWriter();
二进制流:ServletOutputStream(extendsOutputStream)out=
response.getOutputStream();
设置字符编码集(处理中文乱码),要求出现在得到请求数据和响应内容的前面
客户端重定向原理(302响应吗)及特点:
HttpServletResponse-----sendRedirect(url);
HttpServetRequest
得到请求行:getMethod()......
得到请求头:getHeader(headername)、getHeaders()获取浏览器信息getHeader(User-Agent);
得到请求参数:getParameter(param)、getParameters(param)
服务器端转发:得到RequestDispatcher的方式有哪些?
request.getRequestDispatcher();
servletContext.getRequestDispatcher(/xxxx);
servletContext.getNamedServlet(serlvet-name);
forward(request,response)与include(request,response)的区别
forward方法是把请求的内容转发到另外的一个servlet/jsp.
include是把另一个servlet/jsp处理过后的内容拿过来与此时servlet的内容一同输出.
转发与客户端重定向的区别?
重定向:以前的request中存放的变量全部失效,并进入一个新的request作用域。
转发:以前的request中存放的变量不会失效,就像把两个页面拼到了一起。
请求范围:HttpServletRequest、ServletContext的范围区别
setAttribute(Stringkey,Objectvalue);Objectobj=getAttribute(Stringkey);removeAttribute(Stringkey);
contenxt-param
param-name/param-name
param-value/param-value
/contenxt-param
Web应用程序状态管理方式:
隐藏字段、Cookie、HttpSession、URL重写
为什么需要状态管理?
根本原因是由于Http协议是无状态的造成的
什么是Cookie?原理?如何使用?
Cookie原理:
ession是一种保存上下文信息的机制,它是针对每一个用户的,变量的值保存在服务器端,通过SessionID来区分不同的客户,session是以Cookie或URL重写为基础。默认使用Cookie来实现,系统会创造一个名为JSESSIONID的输出Cookie,或称为SessionCookie,以区别PersistentCookies(通常所说的Cookie).SessionCookie是存储在浏览器中,并不是写在硬盘上的,但是把浏览器的Cookie禁止后,使用response对象的encodeURL或encodeRedirectURL方法编码URL,WEB服务器会采URL重写的方式传递Sessionid,用户就可以在地址栏看到jsessionid=A09JHGHKHU68624309UTY84932之类的字符串。
通常SessionCookie是不能跨窗口使用,当用户新开了一个浏览器进入相同的页面时,系统会赋予用户一个新的SessionID,这样信息共享的目的就达不到,此时可以把SessionID保存在PersistentCookie中,然后再新的窗口中读出来,就可以得到上一个窗口的SessionID了,这样通过SessionCookie和PersistentCookie的结合,实现了跨窗口的会话跟踪。
Cookie和会话状态
什么是Cookie?
Cookie是一小段文本信息,伴随着用户请求和页面在Web服务器和浏览器之间传递。用户每次访问站点时,Web应用程序都可以读取Cookie包含的信息。Cookie的基本工作原理如果用户再次访问站点上的页面,当该用户输入URLwww.*****.com时,浏览器就会在本地硬盘上查找与该URL相关联的Cookie。如果该Cookie存在,浏览器就将它与页面请求一起发送到您的站点。
Cookie有哪些用途?
最根本的用途是:Cookie能够帮助Web站点保存有关访问者的信息。更概括地说,Cookie是一种保持Web应用程序连续性(即执行“状态管理”)的方法.使Web站点记住您.
什么是会话Session?
当用户访问您的站点时,服务器会为该用户创建唯一的会话,会话将一直延续到用户访问结束。
session的工作原理
就session的实现而言,好像是这样的:
(1)当有Session启动时,服务器生成一个唯一值,称为SessionID(好像是通过取进程ID的方式取得的)。
(2)然后,服务器开辟一块内存,对应于该SessionID。
(3)服务器再将该SessionID写入浏览器的cookie(一些在网页的源代码中有所体现)。
(4)服务器内有一进程,监视所有Session的活动状况,如果有Session超时或是主动关闭,服务器就释放该内存块。
(5)当浏览器连入IIS(服务器)时并请求的ASP(脚本语言)内用到Session时,IIS(服务器)就读浏览器Cookie中的SessionID。
(6)然后,服务检查该SessionID所对应的内存是否有效。
(7)如果有效,就读出内存中的值。
(8)如果无效,就建立新的Session。
注意:
(1)在大浏览量的网站,Session并不保险,我们过去的网站就经常碰到存在Session中得值不正确(可能出现重复的SessionID)。
(2)SessionID不能从硬盘上的Cookie文件获得,如果想在客户端获知自己的SessionID,只能通过Javascrīpt来读取。
会话失效的三种情况(服务器重启/关闭、会话超时(-1永不失效)、invalidate())
设置键值对setAttribute(key,value);Objectobj=getAttribute(key);
为什么需要URL重写?
Stringstr=HttpServletResponse.encodeURL(Stringurl);url;jsessionid=sessionid
对于搜索引擎而言,在主观上对静态页面和动态页面并没有特殊的好恶,只是很多动态页面的参数机制不利于搜索引擎收录,而静态页面更容易收录而已。此外,页面静态化在一定程度上也提高了页面访问速度和系统性能及稳定性—-这使得在搜索引擎优化上面,为使得效果更加明显,问题简单快速解决,大家对站点的静态化非常的看重。
URL应当是用户友好的;
URL应当是可读的;
URL应当是可预测的;
URL应当是统一的;
URL面向搜索引擎是友好的;