JSP中四种传递参数的方法

jsp内置对象(2)-request 在 JSP 中,请求参数可以通过request对象来获取。我们可以使用如下方式从request在上面的代码中,方法接收一个字符串类型的参数,该参数是要获取的请求参数的名称。该方法会返回一个字符串,即请求参数的值。例如,在以下 JSP 页面中,我们可以获取name 阅读详情
AI摘要

本文介绍了JSP中四种常见的参数传递方法,包括form表单、request对象的setAttribute和getAttribute方法、超链接及<jsp:param>标签,并提供了详细的示例代码。

今天老师讲了jsp中四种传递参数的方法,我觉得总结一下,挺好的,以备后用!

1、form表单

2、request.setAttribute();和request.getAttribute();

3、超链接:<a herf="index.jsp"?a=a&b=b&c=c>name</a>

4、<jsp:param>


下面一一举例说明:

1、form表单

form.jsp:

<%@page contentType="text/html; charset=GB2312"%>
<html>
	<head>
		<title>
			form.jsp file
		</title>
	</head>

	<body style="background-color:lightblue">

		<h2 style="font-family:arial;color:red;font-size:25px;text-align:center">登录页面</h2>

		<form action="result.jsp" method="get" align="center">
			姓名:<input type="text" name="name" size="20" value="" maxlength="20"><br/>
	
			密码:<input type="password" name="password" size="20" value="" maxlength="20"><br/>

			 <!--在爱好前空一个空格,是为了排版好看些-->

			&nbsp;爱好:<input type="checkbox" name="hobby" value="唱歌">唱歌
				  <input type="checkbox" name="hobby" value="足球">足球
				  <input type="checkbox" name="hobby" value="篮球">篮球<br/><br/>
			
			<input type="submit" name="submit" value="登录">
			<input type="reset" name="reset" value="重置"><br/>
		</form>

	</body>
</html>


result.jsp:

<%@page language="java" import="java.util.*" pageEncoding="GB2312"%>
<html>
	<head>
		<title>
			result.jsp file
		</title>
	</head>

	<body bgcolor="ffffff">
		<%
		  request.setCharacterEncoding("GB2312");

		  String name=request.getParameter("name");
		  name=new String(name.getBytes("iso-8859-1"),"GB2312");

		  String pwd=request.getParameter("password");
		  String[] hobby=request.getParameterValues("hobby");//注意这里的函数是getParameterValues()接受一个数组的数据

		%>
		  
		<%
			if(!name.equals("") && !pwd.equals(""))
			{
		%>
				
				您好!登录成功!<br/>
				姓名:<%=name%><br/>
				密码:<%=pwd%><br/>
				爱好:<%
						 for(String ho: hobby)
						 {
							ho=new String(ho.getBytes("iso-8859-1"),"GB2312");
							out.print(ho+" ");
						 }
				       %>
		<%
			}
			else
			{
		%>
			        请输入姓名或密码!
		<%
			}
		%>
	</body>
</html>
注意:form表单的提交方式为get,在参数传递时会遇到中文乱码的问题,一个简单的解决方法是,将接受到的字符串先转换成一个byte数组,再用String构造一个新的编码格式的String,如:

 String name=request.getParameter("name");
 name=new String(name.getBytes("iso-8859-1"),"GB2312");
如果form表单的提交方式为post,解决乱码问题的简单办法是,使用 request.setCharacterEncoding("GB2312");设置request的编码方式。

为什么会出现中文乱码问题呢?因为Tomcat服务器默认的系统编码方式为iso-8859-1,你传递参数给服务器时,使用的是默认的iso-8859-1的编码方式,但是服务器向你返回信息时,是按page指令中设置的编码方式,如:<%@page language="java" import="java.util.*" pageEncoding="GB2312"%>,这样就混合了两种编码方式,所以会出现乱码,所以解决之道就是统一传递和接收的编码方式。


2、request.setAttribute()和request.getAttribute()

set.jsp:

<%@page contentType="text/html; charset=GB2312"%>
<html>
	<head>
		<title>
			set.jsp file
		</title>
	</head>

	<body style="background-color:lightblue">
		<%
			request.setAttribute("name","心雨");
		%>
		<jsp:forward page="get.jsp"/>
	</body>
</html>

get.jsp:
<%@page contentType="text/html; charset=GB2312"%>
<html>
	<head>
		<title>
			get.jsp file
		</title>
	</head>

	<body style="background-color:lightblue">
		<%
			out.println("传递过来的参数是:"+request.getAttribute("name"));
		%>
	</body>
</html>

request.setAttribute()和request.getAttribute()是配合<jsp:forward>或是include指令来实现的。


3、超链接:<a herf="index.jsp?a=a&b=b&c=c">name</a>

href.jsp:

<%@page contentType="text/html; charset=GB2312"%>
<html>
	<head>
		<title>
			href.jsp file
		</title>
	</head>

	<body style="background-color:lightblue">
		<a href="getHerf.jsp?name=心雨&password=123">传递参数</a>
	</body>
</html>

getHref.jsp:
<%@page contentType="text/html; charset=GB2312"%>
<html>
	<head>
		<title>
			getHref.jsp file
		</title>
	</head>

	<body style="background-color:lightblue">
		<%
			String name=request.getParameter("name");
			name=new String(name.getBytes("iso-8859-1"),"gb2312");

			out.print("name:"+name);
		%>
		<br/>
		<%
			out.print("password:"+request.getParameter("password"));
		%>
	</body>
</html>

这种传递参数的方法和form表单的get方式类似,是通过地址栏传递的参数,其乱码解决方法也和form 的get方式一样。


4、<jsp:param>

param.jsp:

<%@page contentType="text/html; charset=GB2312"%>
<html>
	<head>
		<title>
			param.jsp file
		</title>
	</head>

	<body style="background-color:lightblue">

		<%request.setCharacterEncoding("GB2312");%>

		<jsp:forward page="getParam.jsp">
			<jsp:param name="name" value="心雨"/>
			<jsp:param name="password" value="123"/>
		</jsp:forward>

	</body>
</html>

getParam.jsp:
<%@page contentType="text/html; charset=GB2312"%>
<html>
	<head>
		<title>
			getParam.jsp file
		</title>
	</head>

	<body style="background-color:lightblue">
		<%
			String name=request.getParameter("name");
			out.print("name:"+name);
		%>
		<br/>
		<%
			out.print("password:"+request.getParameter("password"));
		%>
	</body>
</html>

这里发现了一个奇怪的问题,还是在中文乱码的问题上,在form表单的例子中,如果传递方式为post,则只需要在接收参数的页面设置request的编码方式就可以了,即request.setCharacterEncoding("GB2312");,注意是在接收参数的页面,如果将该句放到form表单里,那么不起作用,仍然是乱码。而在本例中,为了使传递的参数不出现乱码,却是将request.setCharacterEncoding("GB2312");放在发送参数的页面中,才会正常显示中文,放在接收参数的页面中,不起作用。也许这就是<jsp:param>和form表单传递参数不同的地方。为什么会有这个不同呢?可能是因为form表单中的参数是由客户端传送到服务端上的,需要经过一个request的打包过程,但是<jsp:param>传递的参数本身就是在服务器端的,不需要经历由客户端到服务端这么一个过程,但是服务器里的参数传递是这么回事呢?这个问题,我不知道了!真是知识是一个扩大的圆圈,你知道的越多,那么不知道的就越多!努力吧!



JSP“三大请求传参方式”及“中文乱码问题解决方案”详解 使用JSP的forward或include动作,利用传参数子动作实现参数的传递,‘姓名: 阅读详情

相关推荐

新版股票配资系统源码/股票分析系统技术方案

新版股票配资系统;全套源码支持新股申购功能,包含C#+MySQL开发的后台系统及Spring框架,采用C/S架构。注意:本源码仅限技术学习、功能测试及模拟交易使用,严禁用于非法用途,违者责任自负。

q318136906的博客 1643

STM32F401RB与M95M04 EEPROM的SPI接口配置与数据存储实践

SPI(Serial Peripheral Interface)是一种高速、全双工的同步串行通信协议,广泛应用于微控制器与外围设备的数据交换。其主从架构和四线制设计(SCK、MOSI、MISO、CS)确保了通信的可靠性。在嵌入式系统中,EEPROM因其非易失性和高擦写次数成为存储配置数据的理想选择。通过STM32F401RB的SPI接口驱动M95M04 EEPROM芯片,可实现智能家居设备配置、工业参数存储等场景下的可靠数据存储。本文以STM32Cube HAL库为基础,详细解析SPI初始化和EEPROM读

weixin_34357887的博客 548

STM32F407 UART4串口DMA收发实战:告别频繁中断,用空闲中断+DMA搞定不定长数据

本文详细介绍了STM32F407 UART4串口结合DMA和空闲中断实现高效不定长数据收发的实战方案。通过DMA硬件级数据搬运和空闲中断智能帧检测,显著降低CPU占用率,提升通信效率,适用于工业传感器数据采集和智能设备通信场景。

weixin_42631411的博客 154

jsp页面传递参数

jsp面间传递参数是项目中经常需要的,这应该算是 web 基本功吧。页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数。下面介绍一下实现的方法。 HTTP是无状态的协议。Web页面本身无法向下一个页面传递信息,如果需要让下一个页面得知该页面中的值,除非通过服务器。因此,Web页面保持状态并传递给其它页面,是一个重要的技术。 Web页面之间传递数据,是Web程序的重要功能 URL传值; (1)直接在URL请求后添加, url 链接后追加参数 如:< a href=“thexuan

qq_44485559的博客 5126

手把手教你用FFmpeg实操:H.264转码、AVS2编码与H.265/HEVC参数调优避坑指南

本文详细解析了使用FFmpeg进行H.264转码、AVS2编码与H.265/HEVC参数调优的实战技巧。通过具体命令示例和参数详解,帮助开发者避开常见编码陷阱,提升视频处理效率和质量,特别适合音视频开发者和内容创作者参考。

weixin_30889885的博客 482

什么是论文的创新点?公式化描述算是创新点吗?

写科研论文时,挑战之一就是如何让你的工作“脱颖而出”,也就是要有创新性。不管实验多么精确、推导多么复杂,若没有真正的创新,论文很可能会被拒。关于如何创新问题上,我最近在看刘雪峰老师的《科技论文写作指南》,看到了很多关于写作的新论述,在这里和大家进行分享。

加百力 的技术博客 1926

JSP页面间传参数值的几种方法(新手版)

1、URL传值 在HTML中传参数的写法是: <a pref="1.jsp?name1=value1&name2=value2"></a> 其中1.jsp是要跳转的页面,name1和value1是键值对,多组键值对之间用&连接,不要有空格之类的字符。在接收参数值的页面中使用request.getParameter(“n...

Q_M_X_D_D_的博客 1万+

esp32移植canopen协议栈(二)

本文续接上一篇文章,之前我们已经搭建好了esp32的开发环境,以及初始工程。接下来我们开始实现can驱动相关,以及使用c++封装can接口。本文使用esp32实现c++实现can驱动层的封装。下一步移植canopen!!!嘻嘻。

qq_50267418的博客 1906

jsp中四种传递参数的方法

jsp中四种传递参数的方法如下: 1、form表单 2、request.setAttribute();和request.getAttribute(); 3、超链接:<a herf="index.jsp...

weixin_39037804的博客 987

YOLOv11改进 - 卷积Conv | PATConv(Partial Attention Convolution)部分注意力卷积,在减少计算量的同时融合卷积与注意力的优势 | AAAI 2026

本文提出部分注意力卷积(PATConv)机制,并将其集成到YOLOv11中。传统神经网络中,卷积计算密集,注意力机制全局计算冗余,此前的“部分卷积”会丢失未计算通道的特征价值。PATConv通过“通道拆分 - 并行处理 - 结果拼接”的逻辑,给不同通道分配“擅长的任务”,兼顾局部与全局特征。基于此,它还衍生出PAT_ch、PAT_sp和PAT_sf三种细分模块。此外,还提出了动态部分卷积(DPConv),并构建了新的混合网络家族PartialNet。我们将PATConv代码集成到YOLOv11中,实验表明,

魔改工程师的博客 1085

GeoScene Pro教程(002):GeoScenePro基础操作

GeoScenePro基础操作介绍。

WwLK123的博客 2461

Jsp中四种传递参数的方法

Jsp中四种传递参数的方法 1、form表单 2、request.setAttribute();和request.getAttribute(); 3、超链接:name 4、 下面一一举例说明: 1、form表单 form.jsp:                                   form.jsp file                 

malinchong313的博客 1914

海思SD3403/SS928V100开发(6)单路GMSL-MIPI-YUV相机视频输入调试

硬件连接:森云GMSL相机 -> GMSL 解串器 -> SD3403 MIPI0暂时先进行单路视频输入通路调试。

jzwjzw19900922的博客 1934

了jsp中四种传递参数的方法

原文 :  http://blog.youkuaiyun.com/hackerain/article/details/6776083 jsp中四种传递参数的方法,我觉得总结一下,挺好的,以备后用! 1、form表单 2、request.setAttribute();和request.getAttribute(); 3、超链接:name 4、 下面

HuiSirBlog 418

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

jsp传递参数的四种方法

1、form表单 接受:request.getParameter("name"); 2、scop.setAttribute();和           接受:scop.getAttribute();或el表达式 3、超链接:<a herf="index.jsp"?a=a&b=b&c=c>name</a> 接受: request....

dengbiantian2801的博客 1474

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jsp中四种传递参数的方法&&web中参数字符编码的修改统一

文章来源http://www.jb51.net/article/107715.htm 为转载 jsp中四种传递参数的方法 jsp中四种传递参数的方法,我觉得总结一下,挺好的,以备后用! 1、form表单 2、request.setAttribute();和request.getAttribute(); 3、超链接:name 4、 下面一一举例说明:

junruit的博客 1454

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

102-----JSP中四种传递参数的方法

JSP中四种传递参数的方法 标签: jspstringinput服务器importinclude 2011-09-14 23:04 22266人阅读 评论(0) 收藏 举报  分类:   J2EE(34)  版权声明:本文为博主原创文章,未经博主允许不得转载。 今天老师讲了jsp中四种传递参数的方法,我觉得总结一下,挺好的,以备后用!

lixiao1048的博客 335
上一篇: <jsp:include>和<%@include%>的区别
下一篇: 位图排序算法(一),java版
hackerain
博客等级 码龄16年 753粉丝 220原创
评论 15
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值