JSP九大内置对象总结(二)

阅读更多

上一篇文章列举了JSP内置对象的作用范围和当中的五个内置对象,本篇文章将进一步列举request和response内置对象的使用方法。

 

一、request对象

1、作用范围:请求有效。在一起完整的请求响应过程中,即request scope。

2、说明:代表由用户提交请求而出发的request对象。

3、request对象可以获取的信息:

(1)建立HTML表单: 

。。。

(2)用REQUEST对象处理:JSP页面将数据存放在request对象里,并将该请求传递到下一个页面,下一个页面访问request对象,处理上一个JSP页面传递过来的数据。

(3)通过超链接来传递aaa 

(4)通过jsp动作标签param来进行传递

4、下面对四种可以通过request传递信息的方式进行一一说明。

(1)建立HTML表单: 

// login.jsp
<%@ page language="java" import="java.util.*" pageEncoding=“GB2312"%>

  DengLu
  
    
用户名 密 码 获取表单提交信息并处理: 
// treat.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>

  treat.jsp
  
   <%
   String name=request.getParameter("name");
   String passw=request.getParameter("password");
   %>
   您好!<%=name%>
您的密码是<%=passw%>
  (2)用REQUEST对象处理: 
// index.jsp
<%@ page contentType="text/html;charset=GB2312" %>


  请求有效


请求有效 - 使用请求request.setAttribute()

<% request.setAttribute("name", "yyw"); request.setAttribute("password", "123"); %>

 由于index.jsp中采用的是forwadr跳转,所以会在同一次请求当中,所以requestScopeGet.jsp中可以获取index.jsp中保存的数据。 
// requestScopeGet.jsp
<%@ page contentType="text/html;charset=GB2312" %>

请求有效

请求有效 - 使用请求request.getAttribute()

<% String name = (String) request.getAttribute("name"); String password = (String) request.getAttribute("password"); out.println("姓名 = " + name); out.println("密码 = " + password); %>
 (3)通过超链接来传递: 
// chaolianjie.jsp
<%@ page contentType="text/html;charset=GB2312" %>


  请求有效


连接有效 - 使用超链接a

连接
 处理提交请求的页面与(2)中的requestScopeGet.jsp一模一样。 

(4)通过jsp动作标签param来进行传递:

仔细观察,可以发现jsp:forward的结束放在了jsp:param的后面。

// jspparam.jsp
<%@ page contentType="text/html;charset=GB2312"%>





   	
   	
   	
    

北京

 处理页面:

// Header.jsp
 …..

beijin

<% String name=request.getParameter("selected"); %> <%=name%>

 (5)如何接受多个属性值的属性

比方说我们在表单中使用到了复选框checkbox,那么我们如何在表单提交页面获取用户选择的多个值呢,我们可以来模拟实现以下。 

// info.jsp
<%@ page contentType="text/html;charset=GB2312" %>


  请求有效


用户信息

姓 名:
密 码:
爱 好:看书 运动 编程

 requestScopeGet2.jsp中的处理内容如下: 

// requestScopeGet2.jsp
<%@ page contentType="text/html;charset=GB2312" %>


  请求有效


请求有效 - 使用请求request.getAttribute()

<% String name = request.getParameter("name"); String password = request.getParameter("password"); String[] userHabits=request.getParameterValues("habit"); out.println("姓名 = " + name); out.println("密码 = " + password); for(int i=0;i 第<%=i%>项<%=userHabits[i]%>
<%}%>

(6)通过request对象获取服务器和浏览器相关信息

 主要代码:

 <%
//服务器
String localName=request.getLocalName();
String serverName = request.getServerName();
String localAddr=request.getLocalAddr();
int localPort=request.getLocalPort();
int serverPort = request.getServerPort();%>

服务器:<%= localName %>
服务器端IP:<%= localAddr %>
服务器端口:<%= localPort %>

<%//客户端信息 String remoteHost=request.getRemoteHost(); String remoteAddr=request.getRemoteAddr(); int remotePort=request.getRemotePort();%>

浏览器端:<%= remoteHost %>
浏览器端IP是:<%= remoteAddr %>
浏览器端口:<%= remotePort %>

<%//协议相关 String pro=request.getProtocol(); String pro1=request.getScheme(); int len=request.getContentLength(); String type=request.getContentType(); String charEncode=request.getCharacterEncoding(); %> 协议版本:<%= pro %>
协议:<%= pro1 %>
数据内容长度:<%= len %>
数据类型:<%= type %>
字符编码方式:<%= charEncode %>

 效果:

JSP九大内置对象总结(二)_第1张图片
 

二、response对象

1、作用范围:page scope

2、说明:负责将服务器端的数据发送回浏览器的客户端。主要用于向客户端发送数据,如Cookie、HTTP文件头等信息。

3、用法实例:

(1)设置返回给浏览器的页面格式,如下例将页面设置为word类型

 

<%@ page contentType="text/html;charset=GB2312" %>

	
	

response对象 - setContentType方法

将当前页面转换为word文档 <% response.setContentType("application/msword;charset=GB2312");%>
 运行效果: 

JSP九大内置对象总结(二)_第2张图片
 

(2)设置header。如下实现了页面自动刷新 

<%@ page contentType="text/html;charset=GBK" %>


  response对象 - 处理HTML Header


response - no-cache

<% if (request.getProtocol().compareTo("HTTP/1.0") == 0) response.setHeader("Pragma", "no-cache"); else if (request.getProtocol().compareTo("HTTP/1.1") == 0) response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", -1); %>

response - 自动刷新

当前时间: <% response.setHeader("Refresh","3"); out.println(""+new java.util.Date()); %>
 设置setHeader的第一参数为“refresh”的时候,第二个参数可以在指定时间内跳转到其他页面,如下:response.setHeader("Refresh","3");设为 

response.setHeader("Refresh","3;url=http://localhost:8080/try/response1.jsp");

(3)设置重定向页面

<%@page import="java.util.*"%>

response应用



<%
Date nowdate=new Date();
int hour;
hour=nowdate.getHours();
if (hour>=8 & hour<=17) {
       response.sendRedirect(“business.jsp?time=”+hour);//跳转
}else{
       response.sendRedirect(“privacy.jsp?time=”+hour);//跳转
}
%>


 business.jsp代码:

// business.jsp
<%@page import="java.util.*"%>


response应用



现在是办公时间
<%
    String nowdate = request.getParameter("time");
%>
<%= nowdate%>


 private.jsp代码:

// private.jsp
<%@page import="java.util.*"%>
<%@ page contentType="text/html;charset=GB2312" %>


response应用



现在是私人时间
<%
   String nowdate = request.getParameter("time");
%>
<%= nowdate%>


 (4)添加Cookie

// Addcookies.jsp

<%
//以获取到的请求参数为值,创建一个Cookie对象
Cookie c = new Cookie("username" , "yyw");
//设置Cookie对象的生存期限,24小时
c.setMaxAge(24 * 3600);
//向客户端增加Cookie对象
response.addCookie(c);
%>

 readCookies.jsp代码:

// readCookies.jsp

<%
//获取本站在客户端上保留的所有Cookie
Cookie[] cookies = request.getCookies();
//遍历客户端上的每个Cookie
for (Cookie c : cookies){
	//如果Cookie的名为username,表明该Cookie是我们需要访问的Cookie
	if(c.getName().equals("username")){
		out.println(c.getValue());
		return;
	}
}
out.println("没有这个用户");
%>

 

关于request和response的用法先介绍到这了,下一篇将会详细介绍session和pageContext对象的使用和探究内置对象为何不用声明便可直接使用。

 

 谢谢您的关注和阅读,文章不当之处还请您不吝赐教~~~微笑微笑微笑

 

  • JSP九大内置对象总结(二)_第3张图片
  • 大小: 10 KB
  • JSP九大内置对象总结(二)_第4张图片
  • 大小: 12.2 KB
  • 查看图片附件

你可能感兴趣的:(Java,内置对象,Web编程,request,response)