如何用get方法提交多个值?

sqq4290 2009-03-28 10:55:56
我做的网页中有一个表单:<form name="f" action="result.do?method=getAll" method="get">,我想除了提交表单所包括的一个文本框值并且提交此表单action属性中所附带的method参数,但是我在后台Servlet里用request.getParameter("method")方法却得不到method参数的值,而用post方法却能,请问用get方法除了隐藏域和点超链接外还有什么办法得到多于一个的参数值?
...全文
808 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sqq4290 2009-03-30
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 suncheng_hong 的回复:]
1. 不起作用? 你把url贴出来看看。
2. 页面提交到servlet,你的页面编码是什么?要改成GBK,GB2312,UTF-8,不然默认是以iso-8859-1来编码。servlet中需要转码
比如 需要 String tmp = new String(str.getBytes("iso-8859-1"),"UTF-8");这样才行。
不过,上面都不是好的解决方式,最好在web.xml中配置一个过滤器,来统一解决编码问题。至于过滤器怎么解决,你可以 google 一下
有现成的。
[/Quote]
谢谢,中文字符乱码问题解决了。
现在还是想问一问下面这个问题:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>test.html</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>

<body>
<form name="f1" id="f1" action="result.do?method=src" method="get">
<table border="0">
<tr>
<td>
 
</td>
<td>
<input type="text" name="word">
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="搜索">
</td>
</tr>
</table>
</form>
</body>
</html>

我想用以下Servlet得到上面test.html中method这个参数的值:

public class RecordServlet extends HttpServlet {
// private Searcher s;

public RecordServlet() {
super();
/*
* try { s = new Searcher("D:/index", 10); } catch (Exception e) {
* System.out.println(e); }
*/
}

// ----------------------------------------------------------------------------

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String me = request.getParameter("method");//得到method的值src
System.out.println(me);

}

}


问题就是method的值总是null的,难道get方法不能通过action=result.do?method=src"的形式得到method的值吗?
fengqiaoyebo2008 2009-03-29
  • 打赏
  • 举报
回复
可以在url后面加?para1=..¶m2=...
注意不要加空格
也可以用hidden隐藏域<input name="参数名" type="hidden" value="参数值"/>
隐藏域可以用于get和post
guolimin1118 2009-03-29
  • 打赏
  • 举报
回复
可以通过¶meter
直接也能多传几个
不过这种是传不很多
用隐藏域就不错
SAP小熊 2009-03-29
  • 打赏
  • 举报
回复
用get方式提交的话,在提交的时候浏览器是重新组织你的URL地址,将表单的所有input以名值的形式加到URL请求路径后面,而此时是忽略?后面的内容的.所以只能用POST或者隐藏域提交.
happydaisy1985 2009-03-29
  • 打赏
  • 举报
回复
lz试试能用
<input name="参数名" type="hidden" value="参数值"/>
点击提交按钮后来传值吗,应该可以的吧!
Study_Work_2009 2009-03-29
  • 打赏
  • 举报
回复
up
suncheng_hong 2009-03-29
  • 打赏
  • 举报
回复
1. 不起作用? 你把url贴出来看看。
2. 页面提交到servlet,你的页面编码是什么?要改成GBK,GB2312,UTF-8,不然默认是以iso-8859-1来编码。servlet中需要转码
比如 需要 String tmp = new String(str.getBytes("iso-8859-1"),"UTF-8");这样才行。
不过,上面都不是好的解决方式,最好在web.xml中配置一个过滤器,来统一解决编码问题。至于过滤器怎么解决,你可以 google 一下
有现成的。
sqq4290 2009-03-29
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 fengqiaoyebo2008 的回复:]
可以在url后面加?para1=..¶m2=...
注意不要加空格
也可以用hidden隐藏域 <input name="参数名" type="hidden" value="参数值"/>
隐藏域可以用于get和post
[/Quote]
隐藏域可以。但是
1.在URL后面加?来增加参数的方法不起作用,后台得到的参数值始终为null我这个页面提交中文字符后生成的URL后面是百分号加英文组成,而不是URL+?+参数来组成,不知道是不是因为这个问题而导致的。
2.另外我发现如果在前台用get或post方法提交信息,我在后台的servlet里用request.setCharacterEncoding("utf-8")来把提交的中文字符编码,结果却是乱码。这是为什么呢?
fangpengyu 2009-03-29
  • 打赏
  • 举报
回复
如http://...?id=1&name=fang&age=12就可以,用&符号分隔参数
tjnkaccp 2009-03-28
  • 打赏
  • 举报
回复
你使用JS,然后用¶m=...进行拼接发送,应该可以吧
ben0759 2009-03-28
  • 打赏
  • 举报
回复
所有得input都可以得到值,或者通过javascript来获值,一般不要使用get,get主要是从服务器返回值,而post是向服务器传递值。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧