• Post提交表单信息


      由于GET方式提交表单所提交的内容会显示在浏览器中,并且URL总长度不能超过255个字符,因此提交敏感信息或者提交过长的内容需要使用Post方式。

      把HTML中FORM的method属性设置为POST,浏览器即以POST形式提交内容。

      同GET方式一样,Servlet也可以通过HttpServletRequest对象的getParameter(String param)来获取param对应的参数值。从下面代码11~16行可以看出,getParameter()只能接收String对象,所以对age这样的Int变量需要做转换。

      下面主要贴了一下doPost方法中的代码。

      

     1 public void doPost(HttpServletRequest request, HttpServletResponse response)
     2             throws ServletException, IOException {
     3         request.setCharacterEncoding("UTF-8");
     4         response.setCharacterEncoding("UTF-8");
     5         response.setContentType("text/html");
     6         
     7         String name = request.getParameter("name");
     8         String password = request.getParameter("password");
     9         String passwordConfirm = request.getParameter("passwordConfirm");
    10         String sex = request.getParameter("sex");
    11         Integer age = 0;
    12         try{  
    13             age = Integer.parseInt(request.getParameter("age"));
    14         }catch(Exception e){
    15             
    16         }
    17         String[] interesting = request.getParameterValues("interesting");
    18         String area = request.getParameter("area");
    19         String btn = request.getParameter("btn");
    20         
    21         PrintWriter out = response.getWriter();
    22         out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
    23         out.println("<HTML>");
    24         out.println("<HEAD><TITLE>感谢您提交信息</TITLE>");
    25         out.println("<fieldset style='90%'><legend>填写用户信息</legend><br/>");
    26 
    27         out.println("        <div class='line'>");
    28         out.println("            <div align='left' class='leftDiv'>您的姓名:</div>");
    29         out.println("            <div align='left' class='rightDiv'>" + name + "</div>");
    30         out.println("        </div>");
    31         out.println("        <div class='line'>");
    32         out.println("            <div align='left' class='leftDiv'>您的性别:</div>");
    33         out.println("            <div align='left' class='rightDiv'>" + sex + "</div>");
    34         out.println("        </div>");
    35         out.println("  </BODY>");
    36         out.println("</HTML>");
    37         out.flush();
    38         out.close();
    39     }
    

      效果图显示如下:

      

      

      但是在跑的时候我遇到了一个问题,我开始把HTML文件的FORM中的ACTION属性写错了,应该是/servlet/servlet/PostServlet,我把它写成了/servlet/servlet/PostServlet.java,于是遇到了HTTP404的错误,发现之后改了发现还是不行,我觉得应该是之前已经把对应关系写到配置文件里面去了,但是配置文件在哪里呢?看了一下web.xml里面也只有关于servlet的配置信息啊,最后我是新建了一个HTML文件来解决的,但是这个问题依然很困扰我。

  • 相关阅读:
    Swift
    ios中沙盒
    Mac下安装apk(命令形式)
    iOS 保存异常日志
    android sliding menu
    iOS 苹果官方 Crash文件分析方法 (iOS系统Crash文件分析方法)
    iOS应用崩溃日志分析
    iOS 推送
    iOS 修改textholder的颜色
    iOS 7.1 UITapGestureRecognizer 不好用的解决办法
  • 原文地址:https://www.cnblogs.com/clara/p/2109648.html
Copyright © 2020-2023  润新知