JSP网络程序设计之request对象

JSP网络程序设计之request对象

HTTP通信协议是用户与服务器之间一种提交(请求)信息与响应信息(request/response)的通信协议。在JSP中,内置对象request封装了用户提交信息,那么该对象调用相应的方法可以获取封装信息,即使用该对象可以获取用户提交的信息。
内置对象request是实现了ServletRequest接口类的一个实例,可以在Tomcat服务器的webapps\tomcat-docs\servletapi中查找ServletRequest接口的方法。

一、获取用户提交的信息

request对象获取用户提交信息的最常用的方法是getParameter(Strings)。在下面的例4_ 1中,1. jsp通过表单向1_ computer. jsp提交三角形三边的长度,1_computer. jsp负责计算并显示三角形的面积。

example_1.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
	pageEncoding="utf-8"%>
<html>
<body bgcolor=#ffccff>
	<form action="example_1_computer.jsp" method=post>
		<input type="text" name="sizeA" value=9 size=6 /> <input type="text"
			name="sizeB" value=8 size=6 /> <input type="text" name="sizeC"
			value=8 size=6 /> <input type="submit" name="submit" value="提交" />
	</form>
</body>
</html>

example_1_computer.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
	pageEncoding="utf-8"%>
<html>
<body bgcolor=#ffccff>
	<p style="font-family: 黑体; font-size: 36; color: bule">
		<%
			String sideA = request.getParameter("sizeA");
		String sideB = request.getParameter("sizeB");
		String sideC = request.getParameter("sizeC");
		try {
			double a = Double.parseDouble(sideA);
			double b = Double.parseDouble(sideB);
			double c = Double.parseDouble(sideC);
			double p = (a + b + c) / 2, area = 0;
			area = Math.sqrt(p * (p - a) * (p - b) * (p - c));
			String result = String.format("%.2f", area);
			out.println("<br>三边:" + sideA + "," + sideB + "," + sideC);
			out.println("<br>三角形面积(保留两位小数):" + result);
		} catch (NumberFormatException e) {
			out.println("<br>请输入数字字符:");
		}
		%>
	
</body>
</html>

运行example_1.jsp文件
在这里插入图片描述
点击“提交”后的界面
在这里插入图片描述

二、request对象的常用方法

example_2.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
	pageEncoding="utf-8"%>
<html>
<body bgcolor=#ffccff>
	<p style="font-family: 宋体; font-size: 36; color: blue">
		<%
			request.setCharacterEncoding("utf-8");
		String jsp = request.getServletPath();
		jsp = jsp.substring(1);
		String webDir = request.getContextPath();
		webDir = webDir.substring(1);
		String clientIP = request.getRemoteAddr();
		int serverPort = request.getServerPort();
		%>
		用户请求的页面:<%=jsp%>
		<br>Web服务目录的名字:<%=webDir%>
		<br>用户的IP地址:<%=clientIP%>
		<br>服务器的端口号:<%=serverPort%>
	</p>
</body>
</html>

在这里插入图片描述

三、处理超链接

用户单击超链接标记的文字说明,可以访问超链接给出的链接页面。使用超链接还可以增加参数,以便向所链接的页面传递值。
example_3.jsp用超链接向example_3_receive.jsp传递商品的编号和价格。

example_3.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
	pageEncoding="utf-8"%>
<html>
<body bgcolor=#ffccff>
	<%
		double price = 98.78;
	%>
	<p style="font-family: 宋体; font-size: 36;color=red">
		商品编号 a1001,价格 8765 <a href="example_3_receive.jsp?id=a1001&price=8765">购买</a><br>
		商品编号 a1002,价格<%=price%>
		<a href="example_3_receive.jsp?id=a1002&price=<%=price%>">购买</a>
	</p>
</body>
</html>

example_3_receive.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
	pageEncoding="utf-8"%>
<head>
<body bgcolor=#ffccff>
	<p style="font-family: 宋体; font-size: 36;color=red">
		<%
			String id = request.getParameter("id");
		String price = request.getParameter("price");
		%>
		<br>商品价格:<%=id%><br> 商品价格:<%=price%>
	</p>
</body>
</html>

在这里插入图片描述
点击第一个“购买”
在这里插入图片描述
点击第二个“购买”
在这里插入图片描述

  • 25
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逃离地球12138

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值