您的位置:首页 > 其它

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

2016-05-28 16:40 288 查看
一般与前台交互最好的就是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,再或者重装系统。


以上都是我自己遇到的问题然后搜索的答案,再根据自己理解加以总结出来的。如果有不对的地方欢迎指正
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: