一般来说我们是用不到doGet方法的,doGet方法提交表单的时候会在url后边显示提交的内容,所以不安全。而且doGet方法只能提交256个字符(1024字节),而doPost没有限制,因为get方式数据的传输载体是URL(提交方式能form,也能任意的URL链接),而POST是HTTP头键值对(只能以form方式提交)。通常我们使用的都是doPost方法,你只要在servlet中让这两个方法互相调用就行了,例如在doGet方法中这样写
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
再把业务逻辑直接写在doPost方法中。servlet碰到doGet方法调用直接就会去调用doPost因为他们的参数都一样。而且doGet方法处理中文问题很困难,要写过滤器之类的。
以上from 百度知道 @權寶兒
在网上搜集了一些资料,把两方法的区别整理如下:
get和post是http协议的两种方法,另外还有head, delete等
这两种方法有本质的区别,get只有一个流,参数附加在url后,大小个数有严格限制且只能是字符串。post的参数是通过另外的流传递的,不通过url,所以可以很大,也可以传递二进制数据,如文件的上传。
在servlet开发中,以doGet()和doPost()分别处理get和post方法。
首先判断请求时是get还是post,如果是get就调用doGet(), 如果是post就调用doPost()。都会执行这个方法。
1.doGet
GET调用用于获取服务器信息,并将其做为响应返回给客户端。当经由Web浏览器或通过HTML、JSP直接访问Servlet的URL时,一般用GET调用。GET调用在URL里显示正传送给SERVLET的数据,这在系统的安全方面可能带来一些问题,比如用户登录,表单里的用户名和密码需要发送到服务器端,若使用Get调用,就会在浏览器的URL中显示用户名和密码。
例:
jsp页代码:
<form action="/doGet_servlet" method="get">
………
<input type="text" >
………
</form>
servlet代码:
public class doGet_servlet extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {
request.setCaracterEncoding(“gb2312”);//汉字转码
PrintWriter out = response.getWriter();
out.println("The Parameter are :"+request.getParameter("name1"));
}
}
这样提交表单后,参数会自动添加到浏览器地址栏中,带来安全性问题。
2.doPost
它用于客户端把数据传送到服务器端,也会有副作用。但好处是可以隐藏传送给服务器的任何数据。Post适合发送大量的数据。
例:
jsp页代码:
<form action="/doPostt_servlet" method="post">
………
<textarea cols="50" rows="10"></textarea>
………
</form>
servlet代码:
public class doPostt_servlet extends HttpServlet {
public void doPost(HttpServletRequest request,HttpServletResponse esponse) throws IOException,ServletException {
request.setCaracterEncoding(“gb2312”);//汉字转码
PrintWriter out = response.getWriter();
out.println("The Parameter are :"+request.getParameter("name2"));
}
}
3.可以把方法写在doGet()方法中,在doPost()方法中调用执行,这样,无论你提交的是post还是get方法都可以执行
例如:
jsp页代码:
<form action="/servlet" method="post">
………
<input type="text" >
………
</form>
servlet代码:
public class servlet extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {
request.setCaracterEncoding(“gb2312”);//汉字转码
PrintWriter out = response.getWriter();
out.println("The Parameter are :"+request.getParameter("name1"));
}
public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException {
this.goGet(request,response);//调用doGet()方法
}
}
另外,HttpServlet处理客户端请求方式还有doPut、doDelete、doTrace、doHead、doOptions,但使用的比较少。
分享到:
相关推荐
Servlet中doGet与doPost的区别
Servlet访问流程以及doGet和doPost 能力目标 能叙述Servlet访问流程以及Servlet的生命周期 能描述init()、service()、destory()什么时候被调用的 能描述doGet()和doPost()内部访问流程
自己写的用于Servlet转码 charset包下charset类里的charset方法传入参数,返回经过utf-8转码的信息 注:主要用于Servlet中的doGet方法
我们在javaWeb项目时,使用doget和dopost总是会出现各种原因的中文乱码问题,楼主在查阅大量资料后,将为什么有这样的问题,和如何解决这种问题做个总结。 思维导图: 1. 应答乱码处理(response输出页面时乱码) 1.1 ...
这个是servlet中的doGet()和doPost()的区别,介绍的是相当的详细。值得期待。
可以完全解决servlet的dopost和doget中文乱码的思维导图,如果觉得太少了看的不太明白,可以去看我的博客https://blog.csdn.net/qq_42495847/article/details/105237768 这个思维导图是我精华整理过的,试试上传功能
可以完全解决servlet的dopost和doget中文乱码还有控制台乱码的思维导图,如果觉得太少了看的不太明白,可以去看我的博客https://blog.csdn.net/qq_42495847/article/details/105293206 这个是升级版,更加给力
测试助手(还有很多事情要添加,但是现在应该涵盖了测试doPost的基本知识) 这里的想法是直接测试Java Servlet的doPost,doGet,doPut,doDelete。为什么? 尽管您仍然必须模拟某些服务和DAO类(我曾使用PowerMock)...
了解servlet中的doPost和doGet方法 实验内容: 编写一个servlet,以两种不同的方法响应客户请求。当客户一post方式提交一个整数时,Servlet列出该数字的所有因数;而以get方法提交一个整数时,Servlet则列出该数...
这是一个在刚学习servlet时写的九九乘法表
4、什么情况下调用doGet()和doPost()? 答:Jsp页面中的form标签里的method属性为get时调用doGet(),为post时调用doPost()。 5、如何现实servlet的单线程模式★★ 答:<%@page isThreadSafe=false%> 面试中会...
1、serialVersionUID作用, 一个是默认的1L,比如:private static final long serialVersionUID = 1L; 2、Servlet中service()方法 3、servlet中的doGet和doPost的不同 4、……
每个Servlet必须实现doGet()或doPost()方法(或者两者都实现),这些方法分别处理GET和POST请求。 要在Web应用程序中使用Servlet,您需要将其部署到Web服务器上。 Web服务器通常支持Java Servlet规范,并提供一个...
service() 方法可以调用其它方法来处理请求,例如 doGet()、doPost() 或其它的方法。 (3) 终止 当服务器不再需要 Servlet, 或重新装入 Servlet 的新实例时,服务器会调用 Servlet 的 destroy() 方法。 3. ...
2)覆盖doGet和doPost 3)在web.xml中进行servlet的配置。 (1)Servlet接口中的方法 1)init(ServletConfig config) 何时执行:servlet对象创建的时候执行 ServletConfig : 代表的是该servlet对象的配置信息 2)...
方法初始化servlet,再根据不同请求调用doGet或doPost方法,最后再通过destroy()方法进行销毁。 2.Get和Post的区别 在页面提交数据时,get的数据大小有限制4k,post没有限制,get请求提交的数据会在地址栏显示,...
doGet(HttpServletRequest, HttpServletResponse) - Method in class javax.servlet.http.HttpServlet Called by the server (via the service method) to allow a servlet to handle a GET request. doHead...
Servlet JSP登陆注册,一个注册和一个登陆功能,不涉及数据库操作,就一个doPost()方法和doGet()方法,初学者可以看看,仅作参考。不谋金币,免费献上
内容包括了Tomcat服务器配置、启动分析、Servlet文件配置等tomcat的基础应用配置。