form表单提交方法get可以,但用post提交却不行,我想知道为什么

下面是一段代码,用myeclipse在servlet里面写的
out.println("<h1>登录界面</h1>");
out.println("<form action='/UserManager2/DLCLServlet' method='get'>");
out.println("用户ID:<input type='text' name='Name' value='"+cookie_name+"'/><br/>");
out.println("密 码:<input type='password' name='PSW' value='"+cookie_psw+"'/><br/>");
out.println("<input type='checkbox' value='save' name='saveinfo'/>保存用户名和密码<br/>");
out.println("<input type='submit' value='登录'/>");
out.println("</form>");

第1个回答  2012-11-03
form 里的 method 方法与servlet里的方法名有直接关系 method='get' servlet里就必须用doGet来处理,method=‘post’ 那servlet就要用doPost来处理,还有,你说说看你用post的时候报什么错。追问

①request.getRequestDispatcher("/MainFrame").forward(request,response); ②response.sendRedirect("/UserManager2/MainFrame");
我用了你们说的方法确实可以了
但我不理解,为什么第一种跳转方式不行,第二种可以,如果是一个web应用,用第一种方法跳转有何不可呢?

追答

第一种是什么情况嘛? 404?
第一个是请求转发,第二个是重定向。你去看一看servlet的帮助文档嘛,一两句话我也给你说不清楚。

追问

我是在另一个servletcl里处理验证的,验证成功后用第二种跳转是没有问题的,但用第一种方法跳转的时候他就停留在servletcl了,整页面什么都不显示,没有提示错误。
提示文档和视频教程都是研究过了,只是觉得奇怪,在这里用转发没理由过不去啊,我还是小菜,希望老鸟们教教我啦 ^_^

本回答被网友采纳
第2个回答  2012-11-03
首先是看看页面报什么错误,如果是405的话就说明你的servlet中的方法是doget.当使用doget方法获取请求时,只能获取到页面用get方法提交的请求.而post的是无法获取到的.与之相同的还有一个dopost方法.所以我建议你使用service方法.这个方法可以获取到get和post中的任意一种请求.
第3个回答  推荐于2018-05-06
你的方法是写在serverlet 的get里面吧 你可以在下面的post里面调用get就好啦.本回答被网友采纳