目录
1.request对象
2.response对象
3.session对象
4.application对象
5.out对象
1.1
HTTP通信协议是用户与服务器之间一种提交信息与响应信息的通信协议。在JSP 中,内置对象request封装了用户提交的信息,那么该对象调用相应的方法可以调用封装的信息,及使用该对象可以获得用户提交的信息。
内置对象request是实现了ServletRequest接口类的一个实例,可以在tomcat服务器中查找ServletRequest接口的方法
1.1.1获取用户提交的信息
request对象获取用户提交的最常用的方法是getParameter(String s).
1.1.2处理汉字信息
request对象获取用户提交的信息中如果含有汉字字符或其他非ASCLL字符,就必须进行特殊的处理方式,以防出现乱码现象。
JS篇页面的编码方式为UTF-8,只要让request对象在获取信息之前调用setCharacterEncoding方法设置编码为UTF-8,就可以避免乱码现象。
1.1.3常用方法举例
(1)String getProtocol()获取用户向服务器提交的信息所使用的通信协议
(2)String getServletPath()获取用户提交的JSP页面文件的名字
(3)String getContextPath()获取用户请求的当前web服务目录
(4)int getContentLength()获取用户提交的整个信息的长度
(5)String getMethod()获取用户提交信息的方式 例如post或get
(6)String getHeader(String s)获取HTTP头文件中由参数s指定的透明字的值。
(7)Enumeration getHeaderNames() 获取头名字的一个枚举
1.1.4HTML标记
(1)form标记
(2)input标记
(3)select option标记
(4)textArea标记
(5)style样式标记
(6)table标记
(7)<image>标记
(8)embed标记
2.1
当用户访问一个服务器的页面时,会提交一个HTTP请求,服务器收到请求时,会返回HTTP响应。
2.1.1动态响应contentType属性
页面用page指令设置页面的contentType属性的值,那么tomcat服务器将按照这种属性的值作出响应将页面的静态部分返回给用户,用户浏览器接收到该响应就会使用相应的手段处理所收到的信息。由于page指令只能为contentType指定一个值来决定该响应的MIME类型,如果想动态的改变这个属性的值来响应用户,就需要使用response对象的setContextType(String s)方法来改变contentType的属性值。
2.1.2response对象的重定向
在某些情况下,当响应用户时,需要将用户重新引导至另一个页面。例如,如果用户输入的form表单信息不完整,就会再被引导到该form表单的输入页面。
可以使用response对象的sendRedirect(URL url)方法实现用户的重定向,即让用户从一个页面跳转到sendRedirect(URL url)中url指定的页面,即所谓的客户端跳转。需要注意的是当使用sendRedirect(URL url)方法将用户从当前页面重定向另一个页面时,tomcat服务器还是把当前页面执行完毕后才实施重定向操作,但tomcat服务器不会给用户看当前页面的执行效果。
3.1session对象
HTTP协议是一种无状态协议。一个用户向服务器发出请求,然后服务器返回响应,在服务端不保留用户的信息,因此当下一次请求时,服务器无法判断这一次请求和以前的请求是否是同一用户。tomcat服务器可以使用内置对象session记录用户的信息。
3.1.1session对象的id
当一个对象首次访问web服务目录中的一个jsp页面时tomcat服务器产生一个session对象,这个session对象调用相应的方法可以存储用户在访问该WEB服务目录中各个页面期间所提交的各种信息,比如姓名、号码等信息。这个session对象被分配了一个Sring类型的id号tomcat服务器同时将这个id号发送到用户端,存放在用户的cookie中,这样session对象和用户之间就建立起了一一对应的关系,即每个用户都对应着一个session对象,不同用户的session的对象互不相同,具有不同的id号码
3.1.2session对象与URL重写
session对象能和用户建立起一一对应的关系依赖于用户浏览器是否支持cookie。如果用户端不支持cookie,那么用户在不同网页之间的session对象可能是互不相同的,因为tomcat服务器无法将id号存放在用户浏览器中,就不能建立session对象与用户的一一对应的关系。
如果用户不支持cookie,JSP页面可以通过URL重写来实现session对象的唯一性。所谓URL重写,就是当用户从一个页面链接到另一个页面时,通过向这个新的URL添加参数,把session对象的id传带过去。可以让response对象调用encodeURL()或encodeRedirectURL()方法实现URL重写。
3.1.3session对象的生存期限
一个用户在某个web服务目录的session对象的生存期限依赖于session对象是否调用invalidate()方法使得session对象无效或session对象达到了设置的最长发呆状态时间以及用户是否关闭浏览器或服务器被关闭。
4.1application对象
application对象被访问该web服务目录的所有用户共享,但不同web服务目录下的application互不相同
4.4.1application对象的常用方法
(1)public void setAttribute(String key,Object obj)。application对象可调用该方法将参数Object指定的对象obj添加到application中
(2)public Object getAttribute(String key).获取application对象含有的关键字key的对象
(3)public Enumeration getAttributeNames()。application对象调用该方法产生一个Enumeration对象,该Enumeration对象使用nextElemets()遍历application中国的个对象所对应的关键字。
(4)public void removeAttribute(String key)。从当前application对象中删除关键字key的对象
(5)public String getServletInfo()。获取servlet编译器的当前版本信息
5.out对象
out对象是一个输出流,用来向用户端输出数据。out对象可用方法如下:
(1)out.print(boolean)或out.printIn(boolean)用于输出一个布尔值
(2)out.print(char)或out.printIn(char)用于输出一个字符
(3)out.print(cdouble)或out.printIn(double)用于输出一个双精度的浮点数
(4)out.print(fload)或out.printIn(cout.print(fload)用于输出一个单精度的浮点数
(5)out.print(long)或out.printIn(long)用于输出一个长整型数据
(6)out.print(String)或out.printIn(String)用于输出一个String对象的字符序列
printIn和print方法的区别是:printIn会向缓存区输入一个换行,而print不写入换行。但是浏览器的显示区域目前不识别printIn写入的换行,如果希望浏览器显示换行,应当向浏览器写入"<br>"实现换行。