标签:next encoding rem 发送 tag print 方式 格式 数据类型
JSP提供了由容器实现和管理的内置对象,也可以称之为隐含对象,由于JSP使用Java作为脚本语言,所以JSP将具有强大的对象处理能力,并且可以动态创建Web页面内容。但Java语法在使用一个对象前,需要先实例化这个对象。JSP为了简化开发,提供了一些内置对象,用来实现很多JSP应用。在使用JSP内置对象时,不需要先定义这些对象,直接使用即可。
通过request对象提供的相应方法可以处理客户端浏览器提交的HTTP请求中的各项参数。
示例:编程学员注册功能。要求提交注册信息后,显示学员输入的数据,注册提交页面。
request.setCharacterEncoding("UTF-8"); //设置请求编码
String name = request.getParameter("name"); //获取用户名
String blog = request.getParameter("blog"); //获取博客地址
String remark = request.getParameter("remark"); //获取备注信息
在进行请求转发时,需要把一些数据传递到转发后的页面进行处理。这时,就需要使用request对象的setAttribute()方法将数据保存到request范围内的变量中。request对象的setAttribute()方法的语法格式如下:
request.setAttribute(String name,Object object);
在将数据保存到request范围内的变量中后,可以通过request对象的getAttribute()方法获取该变量的值,具体的语法格式如下:
request.getAttribute(String name);
cookie是小段的文本信息,在网络服务器上生成,并发送给浏览器的。通过使用cookie可以标识用户身份,记录用户名和密码,跟踪重复用户等。浏览器将cookie以key/value的形式保存到客户机的某个指定目录中。
通过cookie对象的getName()方法可以获取到指定名称的cookie;通过getValue()方法即可获取到cookie对象的值。另外将一个cookie对象发送到客户端使用了response对象的addCookie()方法。
request.setCharacterEncoding("UTF-8"); //设置请求的编码
Cookie cookie = new Cookie("userCookie","您好,欢迎访问!");
创建并实例化cookie对象
cookie.setMaxAge(60*60*24*7); //设置cookie有效期为7天
response.addCookie(cookie); //保存cookie对象
通过cookie的getCookies()方法即可获取到所有cookie对象的集合;
Cookie[] cookies = request.getCookies(); //从request中获取cookie对象的集合
if(cookies != null)
{
//遍历cookie对象集合
for(Cookie cookieItem : cookies)
{
if(cookieItem.getName().equals("userCookie"))
{
user = cookieItem.getValue(); //读取cookie对象的的值
out.println(user);
}
}
}
通过request对象可以获取客户端的相关信息,如HTTP报头信息,客户信息提交方式、客户端主机IP地址、端口号等。
request获取客户端信息的常用方法:
response对象用于响应客户请求,向客户端输出信息。它封装了JSP产生的响应,并发送到客户端以响应客户端的请求。
请求的数据可以是各种数据类型,甚至是文件。response对象在JSP页面内有效。
方法 | 说明 |
---|---|
sendRedirect(String path) | 将网页重定向到另一个页面。 |
setHeader(String name, String value) | 设置HTTP响应报头信息。 |
使用sendRedirect()方法可以将网页重定向到另一个页面。重定向操作支持将地址重定向到不同的主机上,这一点与转发不同。在客户端浏览器上将会得到跳转的地址,并重新发送请求链接。用户可以从浏览器的地址栏中看到跳转后的地址。进行重定向操作后,request中的属性全部失效,并且开始一个新的request对象。sendRedirect()方法的语法格式如下:
response.sendRedirect(String path);
path:用于指定目标路径,可以是相对路径,也可以是不同主机的其他URL地址。
通过response对象可以设置HTTP响应报头,其中,最常用的是禁用缓存、设置页面自动刷新和定时跳转网页。下面分别进行介绍。
设置HTTP响应报头方法的语法格式如下:
response.setHeader(String name, String value);
通过设置HTTP头还可以实现页面的自动刷新。
示例:使页面每隔10秒自动刷新一次。
response.setHeader("refresh", "10");
通过设置HTTP头还可以实现定时跳转页面功能。
示例:使页面5秒后自动跳转到指定的网页。
response.setHeader("refresh", "5;URL=login.jsp");
方法 | 说明 |
flushBuffer() | 强制将缓冲区的内容输出到客户端。 |
getBufferSize() | 获取响应所使用的缓冲区的实际大小,如果没有使用缓冲区,则返回0。 |
setBufferSize(int size) | 设置缓冲区大小。 |
reset() | 清除缓冲区的内容,同时清除状态码和报头。 |
isCommitted() | 检查服务器端是否已经把数据写入到可客户端。 |
示例:设置缓冲区的大小为32KB。
response.setBufferSize(32)
如果将缓冲区的大小设置为0KB,则表示不缓冲。
session在网络中被称为会话。由于HTTP协议是一种无状态协议,也就是当一个客户向服务器发出请求,服务器接收请求,并返回响应后,该连接就结束了,而服务器并不保存相关的信息。为了弥补这一缺点,HTTP协议提供了session。通过session可以在应用程序的Web页面间进行跳转时,保存用户的状态,使整个用户会话一直存在下去,直到关闭浏览器。但是,如果在一个会话中,客户端长时间不向服务器发出请求,session对象就会自动消失。这个时间取决于服务器,例如,Tomcat服务器默认为30分钟。不过这个时间可以通过编写程序进行修改。转载请附上原文出处链接及本声明。
application对象用于保存所有应用中的共有数据。它在服务器启动时自动创建,在服务器停止时销毁。当application对象没有被销毁时,所有用户都可以共享该application对象。与session对象相比,application对象的生命周期更长,类似于系统的“全局变量”。
方法 | 说明 |
String getInitParameter(String name) | 获取已命名的应用程序初始化参数值。 |
Enumeration<String> getInitParameterNames() | 获取所有已定义的应用程序初始化参数名的枚举。 |
Enumeration<String> getAttributeNames() | 获取所有application对象使用的属性名。 |
Object getAttribute(String name) | 从application对象中获取指定对象名。 |
void setAttribute(String key,Object obj) | 使用指定名称和指定对象在application对象中进行关联。 |
void removeAttribute(String name) | 从application对象中去掉指定名称的属性。 |
application对象提供了对应用程序初始化参数进行访问的方法。应用程序初始化参数在web.xml文件中进行设置,web.xml文件位于Web应用所在目录下的WEB-INF子目录中。在web.xml文件中通过<context-param>标记配置应用程序初始化参数。
application对象提供了两种访问应用程序初始化参数的方法。
String getInitParameter(String name)方法用于获取已命名的应用程序初始化参数值。
示例:获取上面web.xml文件中配置的url参数的值。
String url = application.getInitParameter("url");
Enumeration<String> getInitParameterNames()方法获取所有已定义的应用程序初始化参数名的枚举。
示例:使用getInitParameterNames()方法获取web.xml文件中定义的全部应用程序初始化参数,并通过循环输出。
Enumeration<String> enume = application.getInitParameterNames(); //获取全部初始化参数 while(enume.hasMoreElements()) { String name = enume.nextElement(); //获取参数名 String value = application.getInitParameter(name); //获取参数值 out.println(name + ":"); //输出参数名 out.println(value); //输出参数值 }
与session对象相同,也可以在application对象中设置属性。与session对象不同的是,session只是在当前客户的会话范围内有效,当超过保存时间,session对象就被收回;而application对象在整个应用区域中都有效。
out对象用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。在使用out对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。
out对象的另一个比较重要的功能就是对缓冲区进行管理。通过调用out对象的clear()方法可以清除缓冲区的内容。这类似于重置响应流,以便重新开始操作。如果响应已经提交,则会有产生IOException异常的负作用。out对象还提供了另一种清除缓冲区内容的方法,那就是clearBuffer()方法,通过该方法可以清除缓冲区的“当前”内容,而且即使内容已经提交给客户端,也能够访问该方法。除了这两个方法外,out对象还提供了其他用于管理缓冲区的方法。
方法 | 说明 |
clear() | 清除缓冲区中的内容。 |
clearBuffer() | 清除当前缓冲区中的内容。 |
flush() | 刷新流。 |
isAutoFlush() | 检测当前缓冲区已满时是自动清空,还是抛出异常。 |
getBufferSize() | 获取缓冲区的大小。 |
标签:next encoding rem 发送 tag print 方式 格式 数据类型
原文地址:https://www.cnblogs.com/TianLiang-2000/p/12519151.html