获取查询字符串(页面链接参数的传递和获取)
为了在网页之间传递值,常常在请求的 URL 地址后面附加查询字符串,语法如下:
?变量名1=值1&变量名2=值2...
可以有多个变量参数,参数之间使用 & 来连接,变量的值可以是 JSP 表达式。利用 request getParameter() 方法获取查询字符串中的所有变量及其值。
【例3】应用 request 对象获取查询字符串,实现页面之间传值的目的。在 015-request-a.jsp 页面中设置要传递的数据,当单击“显示”肘,超链接到 015-request-b.jsp页面,并将所传递的信息显示出来。
示例:015-request-a.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>request对象获取查询字符串</title>
</head>
<body>
<%
int xinxi_id = 100;
String xinxi_biaoti="信息100的标题";
%>
<h4>请单击下面信息链接查看</h4>
<a href="015-request-b.jsp?cs_id=<%=xinxi_id%>&cs_biaoti=<%=xinxi_biaoti%>">我是信息100的标题,请点击查看</a>
</body>
</html>
015-request-b.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>request对象获取查询字符串</title>
</head>
<body>
<%
String id=request.getParameter("cs_id");
String biaoti=request.getParameter("cs_biaoti");
//处理中文乱码
String biaoti2=new String(biaoti.getBytes("ISO-8859-1"),"utf-8");
%>
<%out.println("信息id="+id);%><br>
<%out.println("信息标题="+biaoti);%><br>
<%out.println("信息标题="+biaoti2);%><br>
</body>
</html>

在作用域中管理属性
在进行请求转发时,往往需要把一些数据带到转发后的页面进行处理。这时,就可以使用 request 对象的 setAttribute() 方法设置数据在 request 范围内存取。
- 设置转发数据的格式
request.setAttribute("key",value);
参数 key 是键,为 String 类型。在转发后的贡面就通过这个键来获取数据。参数 value 是键值,为 Object 类型,它代表需要保存在 request 范围内的数据。
2. 获取转发数据的格式
request.getAttribute("key");
参数 key 表示键名,如果指定的属性值不存在,则返回一个 null 值。
在页面使用 request 对象的 setAttribute(“key”,value) 方法,可以把数据 value 设定在 request 范围内。请求转发后的页面使用 getAttribute(“key”) 就可以取得数据 value。
提示:
这一对方法在不同的请求之间传递数据,而且从上一个请求到下一个请求必须是转发请求(使用 jsp:forward 动作来实现),即保存的属性在 request 属性范围(request scope)内,而不能是重定向请求(使用 response.sendRedirect() 或者超级链接来实现)。
【例4】通过 request 对象在作用域中管理属性。使用 request 对象的 setAttribute() 方法设置数据,然后在请求转发后利用 getAttribnte() 取得设置的数据。代码如下:
示例:016-request-a.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title> request对象在作用域中管理属性</title>
</head>
<body>
<% request.setAttribute("str","欢迎学习request对象的使用方法!"); %>
<jsp:forward page="016-request-b.jsp"/>
</body>
</html>
016-request-b.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title> request对象在作用域中管理属性</title>
</head>
<body>
<% out.println("页面转发后获取的属性值:"+request.getAttribute("str")); %>
</body>
</html>

提示: 在 016-request-a.jsp 中,若将语句<jsp:forward
page=“016-request-b.jsp”/>改成response.sendRedirect(“016-request-b.jsp”)或者跳转,就不能获得 request 范围内的属性值。
获取ip地址
示例:request-ip.jsp
<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>
【Java网站开发参考资料】
(1)Java网站开发学习路线 http://www.hzyaoyi.cn/jsp/
(2)Javaweb新手入门学习实战课 https://ke.qq.com/course/package/30139
(3)小白教程资料 http://www.2d5.net
(4)毕业设计网http://www.pc-365.net
(5)小程序编程网www.4317.org
(6)计算机编程网http://www.05423.com/
本文介绍了如何在Java Web应用程序中通过查询字符串和请求作用域管理数据。示例展示了如何在页面间传递参数,使用request.getParameter()获取查询字符串中的值,并通过request.setAttribute()和getAttribute()在请求转发中存储和获取属性。同时,还提到了获取客户端IP地址的方法。
354

被折叠的 条评论
为什么被折叠?



