request用法
客户端协议:
<%=request.getProtocol()%><br>
获取接受客户提交信息的页面:
<%=request.getContextPath()%><br>
获取客户提交信息的长度:
<%=request.getContentLength()%><br>
客户提交信息的方式:
<%=request.getMethod()%><br>
获取HTTP头文件中User-Agent的值:
<%=request.getHeader("User-Agent")%><br>
获取HTTP头文件中的accept的值:
<%=request.getHeader("accept")%><br>
获取HTTP头文件中的Host的值:
<%=request.getHeader("Host")%><br>
获取HTTP头文件中的accept-encoding的值:
<%=request.getHeader("accept-encoding")%><br>
获取客户的IP地址:
<%=request.getRemoteAddr()%><br>
获取客户机的名称:
<%=request.getRemoteHost()%><br>
获取服务器的名称:
<%=request.getServerName()%><br>
获取服务器的端口号:
<%=request.getServerPort()%><br>
<hr/>
获取客户端提交的所有参数的名字:
<%
Enumeration<String> enums=request.getParameterNames();
while(enums.hasMoreElements()){
String str=enums.nextElement();
%><br><%=str%>:<%=request.getParameter(str)%>
<%
}
%>
<hr/>
获取头名字的一个枚举:
<%
Enumeration<String> enums1=request.getHeaderNames();
while(enums.hasMoreElements()){
String str=enums1.nextElement();
out.println(str);
%><br><%=str%>:<%=request.getHeader(str)%>
<%
}
%>
<hr/>
获取cookie
<%
Cookie[] cookie=request.getCookies();
for(Cookie c:cookie){ //遍历cookie对象集合
%><br><%=c.getName()%>:<%=c.getValue()%>
<%
}
%>
读取请求内容
BufferedInputStream bi=new BufferedInputStream(request.getInputStream()); int i=0; byte[] bytes=new byte[1024]; while ((i=bi.read(bytes))!=-1){ String str=new String(bytes,0,i); System.out.print(str); } return;
response用法
main.jsp <h1>你好</h1> <form action="" method="get" name="form"> <input type="submit" value="yes" name="submit"> </form> <% String str=request.getParameter("submit"); if(str==null){ }else if(str.equals("yes")){ response.setContentType("application/msword;charset=utf-8"); response.addHeader("content-disposition","attachment;filename=main.doc"); } %>
当直接访问main.jsp时,会显示页面,点击yes按钮提交表单,会通过word形式下载该页面。原因在于通过表单内容动态修改请求头和ContentType形式。
response还能实现页面重定向等功能。
session用法
同一个浏览器访问服务器不同页面,都对应同一个对象session对象。因此几个页面之间可以共享一个数据域。
但session实现的基础是用户浏览器支持cookie,不支持cookie的浏览器,每个页面都会创建不同的session对象,无法直接使用session共享数据。
但有一种方式,就是URL重写
<%
String str=response.encodeRedirectURL("index.jsp");
%>
<%=str%>
<a href="<%=str%>">跳转index.jsp</a>
application用法
application对象用于记载所有访问该应用程序的客户端向信息。在服务器启动时就创建了这个application对象,服务器关闭时这个application对象才会被取消。所有客户端都共享这一个application对象。
public Object getAttribute(String name);
public void setAttribute(String name, Object object);
public void removeAttribute(String name);
public Enumeration<String> getAttributeNames();
public String getServerInfo();
out
out.println();
page
相当于一个jsp对象
pagecontext
它代表jsp页面运行环境,内部封装了对其他8个对象的引用,对4个作用域的数据进行存取,对页面进行转发和包含。
config
jsp页面配置和servlet类似
exception
用于错误页面