JSP提供了9个内置对象用于开发。
request请求对象
request对象封装了客户端提交的HTTP请求信息,适用于处理客户端提交的信息,在开发web应用时经常用到request对象获取请求参数的值和获取cookie数据等。
<%--发送一个请求到deletePage.jsp页面并传递一个名为"id"的参数。 --%>
<a href="deletePage.jsp?id=123"></a>
<%--在deletePage.jsp可以通过request对象的getParameter方法获取传递的参数值--%>
<% String id=request.getParameter("id"); %>
解决中文乱码的问题
//获取访问请求参数时的乱码
String name=new String(request.getParameter("username").getBytes("iso-8859-1"),"UTF-8");
//获取表单提交的信息乱码
在获取表单信息前加上:request.setCharacterEncoding("utf-8");
String name=request.getParameter("username");
String pass=request.getParameter("password");
一、获取客户机环境信息常见方法:
1.getRequestURL方法 获得客户端发出请求时的完整URL。
2.getRequestURI方法 获得请求行中的资源名部分,即不包含参数。
3.getQueryString方法 获得请求行的参数部分。
4.getRemoteAddr方法 获得发出请求的客户机的IP地址。
5.getRemoteHost方法 获得发出请求的客户机的完整主机名。
6.getRemotePort方法 获得客户机所使用的网络端口号。
7.getLocalAddr方法 获得WEB服务器的IP地址。
8.getLocalName方法 获得WEB服务器的主机名。
9.getMethod方法 获得客户机请求方式。
二、获得客户机请求头:
1.getHeader(String name)方法 获得http协议定义的文件头信息
2.getHeaders(String name)方法 返回指定名称的request Header的所有值,结果是一个枚举型的实例
3.getHeaderNames()方法 返回指所有的request Header的名称,结果是一个枚举型的实例
应用request对象域
request可视为一个域,可以应用setAttribute()方法在域范围内存放数据。
//name:转发后的页面获取数据时通过这个变量名来获取数据。
//object:指定要在request范围内传递的数据,为object类型。
request.setAttribute(string name,Object object);
//在request范围内通过getAttribute()方法获取变量值
request.getAttribute("name");
response响应对象
//通过response对象可以设置HTTP响应报头,其中常用的是设置相应的内容类型、禁用缓存、设置页面自动刷新和定时跳转
//(1)禁用缓存
response.setHeader("Cache-Control","no-store");
response.setDateHeader("Expires",0);
//(2)设置页面自动刷新
response.setHeader("refresh","10");
//(3)定时跳转网页
response.setHeader("refresh","5;URL=Login.jsp");
//默认情况下,jsp页面采用的内容类型是:text/html,即HTML或文本数据,可通过setContentType更改
response.setContentType(String type);
//type 可以是:text/html text/plain application/x_msecel 和 application/msword
response.sendRedirect(String newPath);
//newPath可以是目标路径、相对路径也可以是不同主机的其他URL地址
out输出对象
out.print();
out.println();
out.clear(); 清除缓冲区的内容
out.clearBuffer(); 清除当前缓冲区的内容
out.isAutoFlush(); 检测当前缓冲区已满时是自动清除,还是抛出异常
out.flush(); 刷新流
out.getBufferSize();获取缓冲区的大小
Session会话对象
session作用于同一浏览器中,在各个页面共享数据,如果一个会话在长时间不向服务器发出请求,session对象就会消失,这个时间取决于服务器。
//创建和获取会话
session.setAttribute(String s,Object object);
session.getAttribute(String s);
//移除会话中的数据
session.removeAttribute(string s);
//设置会话有效时间
session.setMaxInactiveInterval(3600);
//销毁session
session.invalidate();
应用application对象
用于保存应用程序中的公共数据,与session对象相比,生命周期更长,类似系统的全局变量。
在服务器启动时自动创建,在服务器停止时销毁。
主要用于保存,读取或移除应用程序环境变量,如网站的访问次数和微信聊天信息。
application.setAttribute(string s,Object o); //保存数据
application.getAttribute(String s); //获取指定的application对象
application.getAttributeNames(); //获取所有的application对象
application.removeAttribute(String s); //移除指定名称的属性
配置web应用的初始化参数:在web.xml文件中设置。
// application访问应用程序初始化参数的方法
application.getInitParameter(String s);
application.getAttributeNames();
application实现网页计数器
<%
//获取application中存放的visitCount值
Integer visitCount=(Integer)application.getAttribute("visitCount");
//判断visitCount是否为空
if(visitCount==null){
visitCount=1;
}else{
visitCount++;
}
//将visitCount保存到application中
application.setAttribute("visitCount",visitCount);
%>
您是第【<%=visitCount%>】位访客!
应答与请求的Page对象
page对象是包含当前servlet接口引用的变量,可以看做是this的关键字的别名。
//page对象的常用方法
page.getClass(); //返回当前object对象
page.hashCode(); //返回该object的哈希代码
page.toString(); //将该object类转化为字符串
page.equals(Object object);//比较当前对象与制定对象是否相等
页面上下文的pageContext对象
pageContext是一个很特殊的对象,通过他可以获取JSP页面的request、response、session、application、exception等对象。该对象的创建和初始化由容器完成,在JSP页面中可以直接使用pageContext对象。
pageContext.removeAttribute(string s);//删除指定范围内的制定属性
pageContext.setAttribute(string s,Object o);//为指定范围内的属性设置属性值
//pageContext.getApplication;//返回Application对象
pageContext.getOut();//返回out对象
pageContext.getSession();//返回Session对象
pageContext.getResponse();//返回getResponse对象
pageContext.getRequest();//返回Request对象
pageContext.forward(string s);//把页面转发到另一个页面
pageContext.getAttribute(string s);//获取参数值
pageContext.getAttributeNamesInScope(int scope);//获取某范围的参数名称的集合,返回值为java.util.Enumeration对象;
pageContext.getException(); //返回Exception对象
获取web.xml配置信息的config对象
config对象主要用于获得服务器的配置信息,通过pageContext对象的getServletConfig()方法可以获取一个Config对象。
当初始化一个servlet时,容器把某些信息通过config对象传递给这个servlet。
开发人员可以在web.xml文件中为应用程序环境中的servlet程序和JSP页面提供初始化参数。
config.getServletContext();//获取Servlet上下文
config.getServletName();//获取Servlet服务器名
config.getInitParameter(stirng s);//获取服务器所有初始化参数名称 返回值为java.util.Enumeration对象;
config.getInitParameterNames();//获取服务器中name参数的初始值
获取异常信息exception对象
exception对象用来处理JSP文件执行时发生的所有错误和异常,只有在page指令中设置isErrorPage属性值为TURE的页面才可以使用,在一般的页面中使用无法编译JSP文件。
exception.getMessage(); //返回exception对象的异常信息字符串
exception.getLocalizedmessage();//返回本地化的异常错误
exception.toString();//返回关于异常错误的简单信息描述
exception.fillInstackTrace();//重写异常错误的栈执行轨迹