request对象
访问请求参数:<a href="delete.jsp?id=1">删除</a> <% request.getParameter("id") %>
在作用域中管理属性:request.setAttribute(String name,Object object);
request.getAttribute(String name);
保存cookie:
<%@ page import="java.net.URLEncoder"%>
<%
request.setCharacterEncoding("utf-8");
String user=URLEncoder.encode(request.getParameter("user"),"utf-8"); //获取用户名
Cookie cookie = new Cookie("mrCookie", user+"#"+new java.util.Date().toLocaleString());
cookie.setMaxAge(60*60*24*30); //设置cookie有效期30天
response.addCookie(cookie); //保存cookie
%>
获取cookie:
<%@ page import="java.net.URLDecoder" %>
<%
Cookie[ ] cookies = request.getCookies();//从request中获得Cookie对象的集合
String user = ""; //登录用户
String date = ""; //注册的时间
if (cookies != null) {
for (int i = 0; i < cookies.length; i++) { //遍历cookie对象的集合
if (cookies[i].getName().equals("mrCookie")) { //如果cookie对象的名称为mrCookie
user = URLDecoder.decode(cookies[i].getValue().split("#")[0]);//获取用户名
date = cookies[i].getValue().split("#")[1]; //获取注册时间
}
}
}
if ("".equals(user) && "".equals(date)) { //如果没有注册
%>
解决中文乱码问题:
<%=new String(request.getParameter("name").getBytes("iso-8859-1"),"UTF-8") %>
获取客户端信息:
方法 | 说明 |
---|---|
getHeader(String name) | 获得HTTP协议定义的文件头信息 |
getHeaders(String name) | 返回指定名字的request Header的所有值,其结果是一个枚举型的实例 |
getHeadersNames() | 返回所有request Header的名字,其结果是一个枚举型的实例 |
getMethod() | 获得客户端向服务器端传送数据的方法,如get、post、header、trace等 |
getProtocol() | 获得客户端向服务器端传送数据所依赖的协议名称 |
getRequestURI() | 获得发出请求字符串的客户端地址,不包括请求的参数 |
getRequestURL() | 获取发出请求字符串的客户端地址 |
getRealPath() | 返回当前请求文件的绝对路径 |
getRemoteAddr() | 获取客户端的IP地址 |
getRemoteHost() | 获取客户端的主机名 |
getServerName() | 获取服务器的名字 |
getServletPath() | 获取客户端所请求的脚本文件的文件路径 |
getServerPort() | 获取服务器的端口号 |
<%
java.util.Locale locale = request.getLocale();
String str = "";
if(local.equals(java.util.Locale.US)){
str="Hello, welcome to access our company's web!"
}
if(local.equals(java.util.Locale.CHINA)){
str="您好,欢迎访问我们公司网站!"
}
%>
response对象
重定向网页:response.sendRedirect(String path);
处理HTTP文件头:
/*禁用缓存*/
<%
response.setHeader("Cache-Control","no-store");
response.setDateHeader("Expires",0);
%>
/*设置页面自动刷新*/
<%
response.setHeader("refresh","10");
%>
/*定时跳转网页*/
<%
response.setHeader("refresh","5;URL=login.jsp");
%>
设置输出缓冲:
1.jsp页面的输出信息已经全部写入到缓冲区
2.缓冲区已满
3.在jsp页面中,调用了response对象的flushBuffer()方法或out对象的flush()方法。
方法 | 说明 |
---|---|
flushBuffer() | 强制将缓冲区的内容输出到客户端 |
getBufferSize() | 获取响应所使用的缓冲区的实际大小,如果没有使用缓冲区,则返回0 |
setBufferSize(int size) | 设置缓冲区的大小 |
reset() | 清除缓冲区的内容,同时清除状态码和报头 |
isCommitted() | 检测服务器端是否已经把数据写入到客户端 |
session对象
session对象可以在应用程序的web页面进行跳转时,保存用户的状态,使整个会话一直存在下去,直到关闭浏览器。
1.创建及获取客户的会话:
session.setAttribute(String name,Object obj);
session.getAttribute(String name);
2.从会话中移动指定的绑定对象:
session.removeAttribute(String name);
3.销毁session对象:
session.invalidate();
session对象被销毁之后,将不可以再使用该session对象了。
4.会话超时管理
sessions.getLastAccessedTime():返回客户端最后一次与会话相关联的请求时间
session.getMaxInactiveInterval():以秒为单位返回一个会话内两个请求最大时间间隔
session.setMaxInactiveInterval():以秒为单位设置session的有效时间
application对象
在服务器启动时自动创建,在服务器停止时销毁。
应用程序初始化参数在web.xml文件中进行配置:
<context-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://127.0.0.1:3306/db_database</param-value>
</<context-param>>
两种访问应用程序初始化参数的方法:
2.application.getAttributeNames();
<%@page import="java.util.*"%>
<%
Enumeration enema = application.getInitParameterNames();
while(enema.hasMoreElements()){
String name = (String)enema.nextElement();
String value = application.getInitParameter(name);
}
%>
管理应用程序环境属性:
1. application.getAttributeNames():获得所有application对象使用的属性名
2. application.getAttribute(String name):从application对象获取指定对象名(获取obj)
3. application.setAttriute(String key, Object obj):使用指定名称和指定对象在application对象中进行关联
4. application.removeAttribute(String name):从application对象中去掉指定名称的属性
out对象
1.显示换行
<pre>
<%
out.println(3.14159);
out.println("无语"); //显示在页面,并不能看到气候的文字真的换行了,需要<pre>标记。
%>
</pre>
2.管理响应缓冲
方法 | 说明 |
---|---|
clear() | 清除缓冲区中的内容(如果响应已经提交,则会产生IOException异常) |
clearBuffer() | 清除缓冲区中的内容(即使响应已经提交,也能使用该方法) |
flush() | 刷新流 |
isAutoFlush() | 检测当前缓冲区已满时是否自动清空,还是抛出异常 |
getBufferSize() | 获取缓冲区大小 |
pageContext对象(一般不用)
config对象
方法 | 说明 |
---|---|
getServletContext() | 获得Servlet上下文 |
getServletName() | 获得Servlet服务器名 |
getInitParameter() | 获得服务器所有初始参数名称,返回值为java.util.Enumeration对象 |
getInitParameterNames() | 获得服务器中name参数的初始值 |
page对象
page对象代表jsp本身,只有在jsp页面内才是合法的。
方法 | 说明 |
---|---|
getClass() | 返回当前Object的类 |
hashCode() | 返回该Object的哈希代码 |
toString() | 把该Object类转换成字符串 |
equals(Object o) | 比较该对象和指定的对象是否相等 |
exception对象
方法 | 说明 |
---|---|
getMessage() | 返回exception对象的异常信息字符串 |
getLocalizedmessage() | 返回本地化的异常错误 |
toString() | 返回关于异常错误的简单信息描述 |
fillInStackTrace() | 重写异常错误的栈执行轨迹 |