其实这样设计的初衷是为了在客户端发出请求前,对要发送的数据进行预处理。比如用户密码的加密 *** 作等等。var xml>
在你的页面中加个链接跳到你的Servlet中, 比如你的Servlet名字叫 test
你就加一个 <a href="testval=你要传的值">点我</a>
然后在Servlet中获取的时候 requestgetParamater("val");就可以获得!
出现乱码的原因及解决方法:
在Web开发中,挺多的时候都是通过超链接去传递中文参数的,这也会导致在显示的时候也会出现乱码,对于超链接来说,它实际上是向服务器端发送了一个请求,而它发出的请求是属于get请求,所以对于超链接的乱码来说,它处理乱码的方式和表单的get请求出现乱码的方式是一样的。
客户端的get请求
对于不同的请求方式,解决乱码的问题也是不一样的,对于客户端的get请求来说,服务器端处理要想不出现乱码,解决这个问题稍微复杂一些,需要用到String类型的构造函数,其中的一个构造函数就是用指定的编码方式去解码,一般都用“UTF-8”的方式。只要在服务器端将请求得到的参数重新构造成一个字符串就行了。如下所示:
String stuname = requestgetParameter("stuname");
String str = new String(stunamegetBytes("ISO-8859-1"),"utf-8")
经过构造之后,客户端输入中文,且表单时get请求的情况下,str就变成了中文了。如果请求参数比较多,最好将它封装成一个工具类:
public class MyUtil
{
public static String getNewString(String str) throws UnsupportedEncodingException
{
return new String(strgetBytes("ISO-8859-1"),"UTF-8");
}
}
String stuname= MyUtilgetNewString(requestgetParameter("stuname"));
你这样写是获取不到type的,可以使用隐藏表单域
<form action="UserServlet" method="get">
<table>
<tr>
<input type="hidden" name="type" value="1">
<td>用户名</td>
<td><input type="text" name="userName" />
</td>
</tr>
<tr>
<td>密码</td>
<td><input type="password" name="password" />
</td>
</tr>
<tr>
<td><input type="submit" value="登陆" />
</td>
</tr>
</table>
</form>
这样就可以获取到了,试试看!
首先第一点 不管是post 还是 get 都有参数的,只是post 表面上看不见, 都能用getParameter() get 对应的属性 , 前提是你必须找对对应的属性名称(如果你不会, 建议你用firebug 去看看,如下图)
第二: getParameter 前面有一个范围的 , 一般是用的request, 所以你就能从对应的request 里面拿到你想要的属性值
你好!
可以使用getAttribute()方法和getParameter()方法,区别在于,getAttribute()方法是从request中得到参数,getParameter()方法是从url中得到参数
打字不易,采纳哦!
以上就是关于如何使用Ajax(XMLHttpRequest)发送带参数的请求,以及如何在Servlet中获取请求中的参数全部的内容,包括:如何使用Ajax(XMLHttpRequest)发送带参数的请求,以及如何在Servlet中获取请求中的参数、Servlet如何获得Form表单的参数、servlet中何如获取a元素的href中设置的参数,获取中文出现乱码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)