当前位置: 代码迷 >> Java Web开发 >> 无意发现一个servlet有关问题,百思不得其解,怪哉.怪哉.怪哉.
  详细解决方案

无意发现一个servlet有关问题,百思不得其解,怪哉.怪哉.怪哉.

热度:5109   发布时间:2016-04-10 23:58:32.0
无意发现一个servlet问题,百思不得其解,怪哉...怪哉...怪哉...


今天没事敲一个登陆demo时发现一个从未发现的问题:

<a href="javascript:void(0)" onclick="submit();">登陆</a>
<input type="submit" value="登陆"/>


都是提交表单,而且值都能提交成功到后台,让我想不通的是:

String name = request.getParameter("name");
String pwd = request.getParameter("pwd");
System.out.println(name+"___"+pwd);
if("admin".equals(name)&&"123456".equals(pwd)){
System.out.println(1);
response.sendRedirect("MyJsp.jsp");
System.out.println(2);
}else{
response.sendRedirect("MyJspError.jsp");
}

为什么用submit()提交到后台后,再跳转页面无法跳转,
而用input按钮时又可以跳转页面,
怪哉...怪哉...怪哉...怪哉...怪哉...怪哉...
jsp servlet request response java

------解决方案--------------------
是不是js方法中有问题, 看后台似乎没问题!
------解决方案--------------------
好像是js出现了问题
------解决方案--------------------
不知道你的onclick="submit();"里面怎么写的.....
------解决方案--------------------
我刚测试了下,是没有区别的啊
<html>
<title></title>
<script type="text/javascript">
function submit(){
document.getElementById("form1").submit();

}

</script>

<body>
<form action="loginAction.action" method="post" id="form1">
<input name="" value="1">
<input type="submit">
<a href="javascript:void(0)" onclick="submit();">登陆</a>
</form>
</body>
</html>
------解决方案--------------------
submit()函数做了特殊处理,使用Ajax请求
------解决方案--------------------
引用:
submit()函数做了特殊处理,使用Ajax请求

+1
------解决方案--------------------
submit函数贴出来。
------解决方案--------------------
你input都可以跳转,而a标签不可以

应该是你js里的方法有问题
------解决方案--------------------
引用:
Quote: 引用:

是不是js方法中有问题, 看后台似乎没问题!

不知道什么问题,后台没改,前台也不动,就是<a>标签提交,而且后台还能拿到表单的值,就是无法跳转
而input就是可以


先把submit  js 函数贴出来;
不要使用submit来作为函数名, 容易跟js内置函数冲突, 

------解决方案--------------------
如果submit()方法是用ajax进行的请求,那么是不能跳转的。如果用ajax进行请求,然后后台进行页面跳转,那么ajax返回的数据就是那个跳转页面的html字符串
------解决方案--------------------
引用:
submit()函数做了特殊处理,使用Ajax请求

+1
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

是不是js方法中有问题, 看后台似乎没问题!

不知道什么问题,后台没改,前台也不动,就是<a>标签提交,而且后台还能拿到表单的值,就是无法跳转
而input就是可以


先把submit  js 函数贴出来;
不要使用submit来作为函数名, 容易跟js内置函数冲突, 

这个才是关键,以前我就遇到过,楼主这样写<a href="javascript:void(0)" onclick="submit();">登陆</a>等于自定义了一个函数叫submit的,把js原有的内置函数submit重写了。
------解决方案--------------------
引用:
Quote: 引用:

submit函数贴出来。


没写那个函数,本来是想调用内置函数的,不过调用错了,但不明白的是后台怎么拿到数据的

建议要么在javascript函数中写一个form提交,要么就用submit按钮提交。提交效果是一样的。只不过js函数里面提交的话方式选择多一点,比如ajax提交。
  相关解决方案