java_web学习(六) request对象中的get和post差异

1.get与post的区别

     Get和Post方法都是对服务器的请求方式,只是他们传输表单的方式不一样。

    下面我们就以传输一个表单的数据为例,来分析get与Post的区别

1.1 get方法  jsp中的代码form表单代码

java_web学习(六)  request对象中的get和post差异

1.2 action包中servlet的doGet方法中的代码

protected void doGet(HttpServletRequest request, HttpServletResponse response)
             throws ServletException, IOException {
         response.setContentType("text/html;charset=gbk");//设置响应正文的mime类型
         request.setCharacterEncoding("gbk");//设置请求的编码格式
         response.setCharacterEncoding("gbk"); 
 
         String username = request.getParameter("userName");//
         String password = request.getParameter("password");
         String sex = request.getParameter("sex");
         String classes = request.getParameter("class");
         String hobby[] = request.getParameterValues("hobby");// 获取checkbox的数据保存到hobby数组中
 
         PrintWriter out = response.getWriter();
         
         if (hobby != null) {
             for (String x: hobby) {
                 out.println("doGet被调用");
                 out.println("name:"+username+"password:"+password+"sex"+sex+"classes"+classes);
                 out.println("hobby:" + x);        
             }
         }else{
             out.println("此人没爱好!");    
         }
     }

 注意:action包中servlet命名与form表单action的名字相同:

java_web学习(六)  request对象中的get和post差异

2.运行结果

  2.1 输入数据

java_web学习(六)  request对象中的get和post差异

  2.2 打印出数据

java_web学习(六)  request对象中的get和post差异

3.post方法

   只需要将table表单中method改为post:

java_web学习(六)  request对象中的get和post差异

servlet中有这样的一行代码:

java_web学习(六)  request对象中的get和post差异

同样能打印出:只是出现了乱码

java_web学习(六)  request对象中的get和post差异

4.对比

   4.1 在输出页面按下F12查看

java_web学习(六)  request对象中的get和post差异

java_web学习(六)  request对象中的get和post差异

   post跟get的差异,优先选post

    post的缺点:

java_web学习(六)  request对象中的get和post差异

  更新web版本可以避免错误

servlet代码分析

java_web学习(六)  request对象中的get和post差异

5.分析

     servlet作为控制器是不应该输出内容的,我们应该把要打印的内容放到jsp文件中

本人还是初学者,高手大神请指教,

相关推荐