jsp的9大内置对象

1.out对象

out对象用于在web浏览器内输出信息,并管理应用访问器上的输出缓冲区。在使用out对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭数据流。

1.1 out对象常用方法

<caption> out对象常用方法 </caption>
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");

%>