jsp中四种传递参数的方法
1、form表单
2、request.setAttribute();和request.getAttribute();
3、超链接:name
4、
下面一一举例说明:
1、form表单
form.jsp:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<%@page contentType="text/html; charset=GB2312"%>
< html >
< head >
< title >
form.jsp file
< CODE> |
result.jsp:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
<%@page language="java" import="java.util.*" pageEncoding="GB2312"%>
< html >
< head >
< title >
result.jsp file
< CODE> |
注意:form表单的提交方式为get,在参数传递时会遇到中文乱码的问题,一个简单的解决方法是,将接受到的字符串先转换成一个byte数组,再用String构造一个新的编码格式的String,如:
1. String name=request.getParameter("name");
2. 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:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<%@page contentType="text/html; charset=GB2312"%>
< html >
< head >
< title >
set.jsp file
< CODE> |
get.jsp:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<%@page contentType="text/html; charset=GB2312"%>
< html >
< head >
< title >
get.jsp file
< CODE> |
request.setAttribute()和request.getAttribute()是配合
3、超链接:name
href.jsp:
?
1
2
3
4
5
6
7
8
9
10
11
|
<%@page contentType="text/html; charset=GB2312"%>
< html >
< head >
< title >
href.jsp file
< CODE> |
getHref.jsp:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<%@page contentType="text/html; charset=GB2312"%>
< html >
< head >
< title >
getHref.jsp file
< CODE> |
这种传递参数的方法和form表单的get方式类似,是通过地址栏传递的参数,其乱码解决方法也和form 的get方式一样。
4、
param.jsp:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<%@page contentType="text/html; charset=GB2312"%>
< html >
< head >
< title >
param.jsp file
< CODE> |
getParam.jsp:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<%@page contentType= "text/html; charset=GB2312" %>
|
这里发现了一个奇怪的问题,还是在中文乱码的问题上,在form表单的例子中,如果传递方式为post,则只需要在接收参数的页面设置request的编码方式就可以了,即request.setCharacterEncoding("GB2312");,注意是在接收参数的页面,如果将该句放到form表单里,那么不起作用,仍然是乱码。而在本例中,为了使传递的参数不出现乱码,却是将request.setCharacterEncoding("GB2312");放在发送参数的页面中,才会正常显示中文,放在接收参数的页面中,不起作用。也许这就是
jsp复习资料汇总
[JSP]2017年1月24日asp教程编程辅导汇总
[ASP]2016年12月2日JSP快速入门教程汇总
[JSP]2016年12月2日jsp基本用法和命令汇总
[JSP]2016年10月3日ASP编码教程:如何实现/使用缓存
[ASP]2015年4月15日