一个表单提交操作的编码格式问题

本文介绍了HTML表单的基本使用方法,包括不同类型的输入元素及其应用场景,并详细解释了如何通过Java处理表单提交的数据,特别关注了编码设置以避免乱码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一般与前台交互最好的就是html中表单了。非常简单,但是我也来提一提
show my code:

<%@ page language="java" contentType="text/html" import="java.util.*" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>repuested_demo01</title>
   
  </head>
 
  <body>
    <form action="requested_demo2.jsp" method="post">
     姓名:<input type="text" name="admin"><br>
     性别:<input type="radio" name="sex" value="man">man
          <input type="radio" name="sex" value="woman">woman<br>
     城市:<select name="city">
       <option value="北京">北京</optinon>
       <option value="天津">天津</optinon>
       <option value="厦门">厦门</option>    
     <option value="福建">福建</option>
     </select><br>
   兴趣<input type="checkbox" name="**inset" value="跑步">跑步
    <input type="checkbox" name="**inset" value="足球">足球
    <input type="checkbox" name="**inset" value="蓝桥">篮球
    <input type="checkbox" name="**inset" value="桥牌">桥牌<br>
   自我介绍<textarea cols="30" rows="10" name="textarea" value="abc"></textarea> <br>
       <input type="hidden" name="uid" value="1">
       <input type="submit" name="button" value="提交">
       <input type="reset" name="reset" value="重置">
  </form>
  </body>
  </html>

所有表单都要用<form>进行声明,其中action 为表单要提交的路径,而method为提交的方法,而提交方有get和post一般使用较多的是post方法,原因提一点吧!post提交的信息数据大小没有限制,而get会有限制,所以信息量较打的内容提交方式都是post。
然后是文本框,单选按钮,复选按钮,和文本域的使用。

看下接受信息并把内容重新展示在页面上

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
     <base href="<%=basePath%>">
    <title>requested_demo2</title>
   

  </head>
 
  <body>
  <% request.setCharacterEncoding("utf-8"); %>
  <center>
 <table border="1">
 <tr>
  <td>参数名</td>
  <td>参数内容</td>
 </tr>
 
 
  <%
      Enumeration en=request.getParameterNames();   //接受全部请求参数的名称,看成一个容器就行了生气.
      while(en.hasMoreElements()){                                        //循环取出没一个参数的名称
       String paramname=(String)en.nextElement();    //取出对应的内容
     %>
     <tr>
     <td> <%=paramname%></td>           //输出名称
     <td>
      <%
       if(paramname.startsWith("**")){              //如果是复选框里面的内容,我们就用数组输出
        String paramValue[]=request.getParameterValues(paramname);
        for(int x=0;x<paramValue.length;x++){
       
      %>
      <%=paramValue[x] %>
      <%
        }
       }else{                       //否则就单独输出搞定了
        String paramValue=request.getParameter(paramname);
       
      %>
      <%=paramValue %>
      <%
       }
      %>
      </td>
      </tr>
     <%
     }
     %>
     
     
 </table>
  </center>
  </body>
  </html>

这里输出方法很好用,讲下原理吧,算了,还是在代码上注释一下。
中提示一下,编码问题,困扰了个把小时才解决的。首先如果你的pageEncoding="GBK“ 那么一定要在接受表单的页面上加这样一句
request.setCharacterEncoding="GBK"一定要加,一定要加,一定要加。否则,你就等着乱码吧!而且是接受表单的页面。
大家知道request做动词时请求,索取,得到的意思,这里肯定是向表单页面请求编码格式,就不难理解了。
或者在表单页面加上response.setCharacterEcoding="GBK"
如果你的页面编码是utf-8,同样原理。然后给大家几个myeclipse编译器修改编码格式的方法:
1.修改一个项目的编码格式
选中你的项目,右击,选择最下面一个,英文单词是properties,中文应该是特性的意思
然后你就可以改成你需要的格式,一半我习惯是utf-8,不过也有习惯GBK的。

2.修改你一种类型的文件的编码格式
选择window窗口中的perference再选择General中的content type项
然后比如说你要修改Jsp页面的编码格式,就在下面Default encoding后面条形框中写上UTF-8或者gbk再或者你喜欢的编码格式大笑
然后update,最后ok!这样你你可以快乐的在jsp页面上编码了,妈妈再也不用担心我写出来的页面会乱码了。

3。整个myeclipse中的编码格式修改
同样是window窗口中的perference选项,然后是General下面的wokespace选中。
然后选择默认的GBK或者下面下拉框中的UTF-8或者你喜欢的编码格式。点击Apply,再点击ok。这样你写的所有的页面默认格式就是你所选中的格式了。

如果此时你说我写出来的东西还是乱码。那我也无能为力了。重装myeclipse,再或者重装系统。吐舌头

以上都是我自己遇到的问题然后搜索的答案,再根据自己理解加以总结出来的。如果有不对的地方欢迎指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值