在Web应用中,常常需要完成客户端与服务器之间的信息交互,这就需要页面之间的参数传递。 本文将与大家分享三种常用的JSP参数传递方法以及中文乱码的解决方法。 计划。
目录
你好! 大家好,我是惠晓媛,一个非常擅长写bug的程序员!
最近在开发相关项目时,需要使用超链接在两个页面之间传递值。 但是在传输的过程中我发现在使用hraf=URL的形式进行页面跳转和传值的时候,在传输中文和英文的时候他们之间出现了问题,所以这里总结和大家分享一下参数的三种常用方法中文乱码问题的传输及解决方法。
我们知道,常用的价值传递方式有以下三种:
使用JSP的or动作,并使用参数传递子动作来传递参数,'
在JSP或HTML页面中,使用表单传递参数,
使用附加到 URL 的参数传递或附加到超链接的参数传递。
需要说明的是,上述三种参数传递方法中,方法1和方法3属于get类型参数提交方法,而方法2属于get或post方法参数提交方法,可以通过表格。 选择,
get请求和post请求的区别在于前者的参数会显示在地址栏中。
获取请求:
发帖请求:
1. 访问请求参数的方法
同时该对象的()方法可以接收从JSP页面或JSP动作传递给该对象的不同参数信息。 该方法的使用格式如下:
= .("客户端提供的参数的name属性名称");
需要注意的是,参数名称要与客户端提供的参数的name属性名称相同。 同时,对象的()方法返回类型参数。 如果参数名称的值不存在,则返回空值null。
接下来分别介绍这三种参数传递方式:
2、Form表单参数传递
表单接口代码:
<body>
表单界面效果:
接收接口代码:
<body>
<%
String name = request.getParameter("name");
String tel = request.getParameter("tel");
%>
获取到的信息是:
姓名:<%=name %>
电话:<%=tel %>
接收界面效果:
中文乱码解决办法
从上面我们可以看到,我们通过中文“张三”后,接收页面出现了乱码。 解决方法如下:
1、在接收接口的代码中,在获取参数值之前添加如下代码:
.("utf-8");
2、提交表单后的post属性需要设置为“post”。
现在我们来看一下:
<body>
<%
request.setCharacterEncoding("utf-8");
String name = request.getParameter("name");
String tel = request.getParameter("tel");
%>
获取到的信息是:
姓名:<%=name %>
电话:<%=tel %>
效果如下:
3、传递的中文参数存在乱码问题。 原因是中文参数使用了页面原来的“ISO-8859-1”编码,所以我们可能需要将传递的参数的编码格式改为“UTF-8”。 ”格式,格式转换的代码如下:
名称 = new (.("名称").("ISO-8859-1"),"UTF-8");
3. URL或超链接参数传输
使用URL或超链接传递参数的格式如下:
点击跳转
传值接口代码:
<body>
点击传值
传值接口效果如下:
接收接口代码:
<body>
<%
String name = request.getParameter("name");
String tel = request.getParameter("tel");
%>
获取到的信息是:
姓名:<%=name %>
电话:<%=tel %>
接收界面效果:
中文错误解决
但是当我们将传递的name值改为中文“张三”时,
<body>
点击传值
点击传递值,出现如下界面:
原因是在超链接或URL参数中,参数属于URL的一部分。 同时这部分是URL编码的,不支持中文utf-8。 因此,传递中文时会显示URL错误。 解决办法就是将我们要传输的中文转成URL编码即可:
..("","utf-8") 将中文转换为URL编码
提交接口代码如下:
<body>
&tel=123456">点击传值
接收接口代码不变:
效果如下:
4. JSP子动作参数传递
使用JSP的or动作和使用参数传递子动作来传递参数的方法与其他两种方法不同。 在该方法中,用户可以根据需要向对象添加属性,然后在另一个JSP程序中获取它们。 添加数据,
具体使用方法如下:
在传值页面使用对象的(“name”, obj)方法,可以设置范围内的数据。 设置数据方法的格式为:
无效。(“钥匙”,);
其中key是键,类型,是要保存的值的属性名称。 是要保存的参数值,属于类型,
在传值页面使用上述方法转发请求后,可以在接收页面使用(“name”)方法获取name属性下的值。 获取数据的方法格式如下:
。(姓名);
参数name代表键名,对应(“name”, obj)方法中的名称。 获取的参数类型由obj的类型决定。
参数传递接口代码:
<body>
<%
request.setAttribute("name", "李四");
request.setAttribute("age", 18);
%>
使用该方法传递参数时,页面会自动跳转到指定页面。
获取参数页面代码:
<body>
<%
String name = (String)request.getAttribute("name");
int age = (int)request.getAttribute("age");
%>
获取到的信息是:
姓名:<%=name %>
年龄:<%=age %>
效果如下:
,
中文乱码解决办法
要在页面前端设置整个页面的编码为“UTF-8”编码格式,
好吧,我就给大家分享一下JSP页面常用的三种参数传递方式以及中文乱码的解决方法。 朋友们在实际操作中遇到新问题也可以一起讨论学习。 其他可能出现的问题的解决方案以后会更新在这里。