jsp的9大内置对象
1.out对象
out对象用于在web浏览器内输出信息,并管理应用访问器上的输出缓冲区。在使用out对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭数据流。
1.1 out对象常用方法
print()方法 | 向客户端浏览器输出信息(不换行) |
println()方法 | 向客户端浏览器输出信息(换行) |
clear()方法 | 清除缓冲区中的内容 |
clearBuffer()方法 | 清除当前缓冲区的内容 |
flush()方法 | 刷新流 |
isAutoFlush() | 检测当前缓冲区已满时是自动清空,还是抛出异常 |
getBufferSize() | 获取缓冲区的大小 |
getRemaining() | 返回缓冲区还剩下多少字节数可以使用 |
close() | 关闭输出流 |
1.2 在servlet中使用out对象
先创建对象,再调用方法
PrintWriter out =response.getWriter();
out.println();
2. Request对象
request对象封装了由客户端生成的HTTP请求的所有细节,主要包括http头信息、系统信息、请求方式、请求参数等。通过request对象提供的相应方法可以处理客户端浏览器提交的HTTP请求中的各项参数。
2.1 Request对象的常用方法
getParameter(String name) | 获取传递的参数值或input标签中name属性为name的表单值 |
setAttribute(String name,Object object) | 将数据保存在request域中 |
getAttribute(String name) | 从request域中获取数据 |
setCharacterEncoding(String arg) | 设置字符编码 |
getHeader(String name) | 获得HTTP协议定义的文件头信息 |
getHeaders(String name) | 返回指定名字的request Header 的所有值,其结果是一个枚举型的实例 |
getHeadersNames(String name) | 返回所有request Header的名字,其结果是一个枚举型的实例 |
getMethod() | 获得客户端向服务器端传送数据的方法,如get、post、header、trace等 |
getProtocol() | 获得客户端向服务器端传送数据所依据的协议名称 |
getRequestURL() | 获取发出请求字符串的客户端地址 |
getRequestURI() | 获取发出请求字符串的客户端地址,不包括请求的参数 |
getRealPath() | 返回当前请求文件的绝对路径 |
getRemoteAddr() | 获取客户端的IP地址 |
getRemoteHost() | 获取客户端的主机名 |
getServerName() | 获取服务器的名字 |
getServerPort() | 获取服务器的端口号 |
getServletPath() | 获取客户端所请求的脚本文件的文件路径 |
isUserInRole(String role) | 返回一个布尔值,指示某个授权用户是否包含在某个具体的逻辑角色role中 |
getQueryString() | 返回HTTP GET请求信息中URL之后的查询字符串 |
getContentType() | 返回请求实体的MIME类型 |
getPathInfo() | 返回有关任何路径信息 |
getCookies() | 从request中获得cookie对象的集合 |
getParameterNames() | 将发送请求页面中form表单里所有具有name属性的表单对象获取(包括button).返回一个Enumeration类型的枚举 |
getParameterValues(name) | 获取所有form标签中name属性为”name”的值.该方法返回一个数组.遍历数组就可得到所有表单的value值. |
request.getRequestDispatcher("goodsDetail.jsp").forward(request, response); | 请求转发,带着request跳转到新页面 |
2.2 request.getParameter(String name)使用详解
使用情景1--------------超链接传值
前台页
<a href="deal.jsp?id=1&user=bob">处理页</a>
处理页
<%
String id = request.getParameter("id");//获取id参数的值
String user=request.getParameter("user");//获取user参数的值
%>
使用情景2---------------表单传值
前台页
<form action="deal.jsp" method="post">
<input name="uid" type="text"/>
<input name="pwd" type="text"/>
<input type="submit"/>
</from>
后台页
<%
String uid = request.getParameter("uid");//获取name属性为uid的表单的值
String pwd = request.getParameter("pwd");//获取name属性为pwd的表单的值
%>
2.3 详解Request.setAttribute()与Request.getAttribute()
页面1
<%
int money=10;
int number=3;
request.setAttribute("result",money/number);//将数据保存在request域中
%>
页面2
<%
String message=request.getAttribute("result").toString();//从request域中获取数据
%>
2.4 获取Cookie
页面1----添加cookie
<%
String username="bob";
Cookie cookie = new Cookie("myCookie",username);//创建并实例化cookie对象
cookie.setMaxAge(60*60*24*30);//设置cookie有效期30天
response.addCookie(cookie);//保存cookie
%>
页面2----获取cookie
<%
Cookie[] cookies =requset.getCookie();//先用request获取cookie对象,返回值是一个数组
if(cookies !=null){
for(int i=0;i<cookies.length;i++;){
if(cookies[i].getName().equals("myCookie")){//如果cookie对象名为myCookie
user=cookies[i].getValue();//获取用户名
}
}
}
%>
2.5 request 解决中文乱码
法一
<%
request.setCharacterEncoding("UTF-8");
%>
法二
<%
String username = new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");
%>