当前位置: 代码迷 >> J2SE >> doGet()与doPost()方法的区别,该怎么解决
  详细解决方案

doGet()与doPost()方法的区别,该怎么解决

热度:503   发布时间:2016-04-24 17:21:57.0
doGet()与doPost()方法的区别
如:
1  
a.jsp
<form   method=post   action=xx>
在处理的xx.java中
先是有
public   void   doGet()方法     //处理数据
然后在最后有一个
public   void   doPost(HttpServletRequest   request,HttpServletResponse   response)   throws   ServletException,IOException{
    doGet(request,response);     //提交的是post,为什么上面是doGet方法,而这里要用doPost方法呢,不可以省去这二个方法,而直接用doPost方法吗
}

2
jsp,servlet,javabean我对它们理解是
如果jsp作为提交页面,那么servlet是处理的提交的数据,而javabean是保存信息的,不知道这样理解是否正确呢?

3
RequestDispatcher   dispatcher=request.getRequestDispatcher(a);
dispatcher.forward(requset,response)
上面这个是什么意思呢,没遇到过,不知道怎么理解呢

------解决方案--------------------
1.你的意思大概是在dopost()方法中直接处理请求而不是间接调用doget()方法吧。如果你的这个servlet只处理post方式发送的请求的话,是可以省去doget()的。用不到它。程序这样做的唯一原因是对post和get请求要做同样的操作。

2.这样理解是正确的。不过请注意,这并不是硬性规定。我们也可以单用jsp或servlet来做所有的工作,或不使用javabean等等。上面这样的理解是基于mvc模式的考虑,我们才把程序按这样划分。

3.这些语句使用来转发请求的。就是把请求交给另一个servlet处理和响应。要特别注意转发和重定向的区别。

推荐一本好书《Servlet与JSP核心编程第二版》。里面对你上面的问题有很详细的讲解。
------解决方案--------------------
问题2:在mvc结构中servlet所做的工作就是进行业务逻辑的处理,而javabean则是分为两种:一种是用来储存或者传递数据的;另一种则是用来处理具体的功能代码;楼主不要混淆javabean和servlet,说白了,servlet就是“要执行什么功能”,而javabean就是“怎样执行这些功能”。不知道楼主明白没有。。。。
------解决方案--------------------
2.javabean是满足那三个要求的java类。所有满足三个要求的类都可以用做javabean,通常它使用来做数据对象(即用来转移数据的对象)用的。而servlet用来处理请求的。请求由交给它,经过处理产生响应。bean和servlet是功能不同的两样东西。
3.RequestDispatcher dispatcher=request.getRequestDispatcher( "url ");//可以使相对路径
dispatcher.forward(requset,response);


------解决方案--------------------
1,
<form method=post action=xx> --就是调完doGet(),再调doPost();
<form action=xx> --就是调完doGet(),不调doPost();
2,
如果用struts可以像上面几位大侠那么弄,
我如自已做mvc,javabean我感觉就是servlet调用一个普通的类
3,
RequestDispatcher
这个对象是通过request.getRequestDispatcher(String url)来获取, 在获取的同时就指定跳转的路径
用这样的跳转地址栏不改变,页面传来的参数全部带走,request不销毁
forward(ServletRequest,ServletResponse)执行这个方法才真的跳转