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='width: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文件来解决的,但是这个问题依然很困扰我。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· 深入理解Mybatis分库分表执行原理
· 使用 Dify + LLM 构建精确任务处理应用