内容简介:当浏览器请求一个网页时,它会向网络服务器发送一系列不能被直接读取的信息,因为这些信息是作为HTTP信息头的一部分来传送的。我们便可以通过http协议获得更多的信息。而request对象是javax.servlet.http.HttpServletRequest类的实例。每当客户端请求一个页面时,JSP引擎就会产生一个新的对象来代表这个请求。下面这个例子使用HttpServletRequest类的getHeaderNames()方法来读取HTTP信息头。
当浏览器请求一个网页时,它会向网络服务器发送一系列不能被直接读取的信息,因为这些信息是作为HTTP信息头的一部分来传送的。我们便可以通过http协议获得更多的信息。
而request对象是javax.servlet.http.HttpServletRequest类的实例。每当客户端请求一个页面时,JSP引擎就会产生一个新的对象来代表这个请求。
下面这个例子使用HttpServletRequest类的getHeaderNames()方法来读取HTTP信息头。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.io.*,java.util.*" %> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>hqh</title> </head> <body> <h2>HTTP 头部请求实例</h2> <table width="100%" border="1" align="center"> <%-- table表格 --%> <tr bgcolor="#949494"> <%--定义背景色--%> <th>Header Name</th><th>Header Value(s)</th> <%-- 表格标题 --%> </tr> <% Enumeration headerNames = request.getHeaderNames(); //返回所有HTTP头的名称集合 while(headerNames.hasMoreElements()) { //获取Enumeration对象后,遍历Enumeration对象 String paramName = (String)headerNames.nextElement(); out.print("<tr><td>" + paramName + "</td>\n"); String paramValue = request.getHeader(paramName); //返回paramName指定的信息头,也就是对应的值 out.println("<td> " + paramValue + "</td></tr>\n"); } %> </table> </body> </html>
Enumeration getAttributeNames()(返回request对象的所有属性名称的集合),Enumeration getParameterNames()(返回请求中所有参数的集合)在尝试这两个对应的方法时没有输出有效的信息。可能是信息不足,才没有输出。
while(headerNames.hasMoreElements()) { String paramName = (String)headerNames.nextElement(); out.print("<tr><td>" + paramName + "</td>\n"); String paramValue = request.getParameter(paramName); out.println("<td> " + paramValue + "</td></tr>\n"); } for(Enumeration e = request.getAttributeNames(); e.hasMoreElements();) { Object o = e.nextElement(); out.println((String) o + " : " + request.getAttribute((String) o) + " <br><hr> " ); }
同样的服务器在接收到客户端的信息后,会传输信息到客户端上。
response 对象是 javax.servlet.http.HttpServletResponse 类的一个实例。就像服务器会创建request对象一样,它也会创建一个客户端响应。
这是一个实时显示时间的例子
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.io.*,java.util.*" %> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>hqh</title> </head> <body> <h2>自动刷新实例</h2> <% response.setIntHeader("Refresh", 1); // 设置每隔1秒自动刷新,指定 int类型的值到 name标头,通知浏览器在给定的时间后刷新,时间以秒为单位。 Calendar calendar = new GregorianCalendar(); // 获取当前时间 String am_pm; int hour = calendar.get(Calendar.HOUR); int minute = calendar.get(Calendar.MINUTE); int second = calendar.get(Calendar.SECOND); if(calendar.get(Calendar.AM_PM) == 0) am_pm = "AM"; else am_pm = "PM"; String CT = hour+":"+ minute +":"+ second +" "+ am_pm; out.println("当前时间: " + CT + "\n"); %> </body> </html>
我们在浏览网页的时候,经常需要向服务器提交信息,并让后台程序处理。浏览器中使用 GET 和 POST 方法向服务器提交数据。
http://localhost:8080/tt2/NewFile.jsp?name=hqh&url=http://ww.hqh.com
tt2 为项目地址建立的NewFile.jsp文件的JSP程序用于处理客户端提交的表单数据。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.io.*,java.util.*" %> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>hqh</title> </head> <body> <h1>使用 GET 方法读取数据</h1> <ul> <li><p><b>站点名:</b> <%= request.getParameter("name")%> </p></li> <li><p><b>网址:</b> <%= request.getParameter("url")%> </p></li> </ul> </body> </html>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
激荡十年,水大鱼大
吴晓波 / 中信出版社 / 2017-11-1 / CNY 58.00
【编辑推荐】 知名财经作者吴晓波新作,畅销十年、销量超过两百万册的《激荡三十年》续篇,至此完成改革开放四十年企业史完整记录。 作为时代记录者,吴晓波有意识地从1978年中国改革开放伊始,记录中国翻天覆地的变化和对我们影响至深的人物与事件,串成一部我们每个人的时代激荡史。而最新的这十年,无疑更壮观,也更扑朔迷离。 很多事情,在当时并未有很深很透的感受,回过头来再看,可能命运的轨迹就......一起来看看 《激荡十年,水大鱼大》 这本书的介绍吧!