zoukankan      html  css  js  c++  java
  • h5通过表单将localStorage里的信息传到java后台servlet处理

    做技术和人生一样,哪有什么做不到,只有想不到。

    乍一看你以为我在开玩笑呢。百度过,没有这种操作。

    没有就不能实现了吗 /坏笑

    -------------------------------------------------------------------------------华丽丽分割线---------------------------------------------------------------------------------------------------------------------------------------------

    localStorage是存储在客户端的,道理上讲和服务端八竿子打不着,除非用ajax。但我就是要用表单,因为有时候上传大文件到服务端要用form提交的,而form里要写data-ajax="false"      (即禁用ajax)

    不是举例,但可以清晰的说明操作:


    首先是css样式:

    <style type="text/css">
    #isme{
    display:none;
    }
    </style>
    

      //你是不希望客户端存的信息(往往是用户名和密码之类的)显示到页面上的对么


    表单的内容:

    <form method="post" action="你的servlet地址"  enctype="multipart/form-data"  data-ajax="false">
      <input type="file" class="form-control" name="file1"> <!--这个是大文件,好吧不重要!!!可以忽略 -->
         <div id="isme"> 这是你事先存在localStorage里的用户名:<input type="text" id="iname" name="iname"></div> <!--name这个属性一定要有,不知道为什么,但是没有的话后台获取不到-->
    
    </form>
    

      jQuery:

    <script>
    
    $(document).ready(function(){
       $("#iname").val(localStorage.iname);//下划线的表示你已经存好了一个key为iname的值,然后赋给input,不要紧张,这部分不会显示在页面的
    
    });
    
    </script>
    

      后台servlet:

    	public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    		List<String> value = new ArrayList<String>();//万一你一高兴写了好几个input想要传递localStorage
    		response.setCharacterEncoding("utf-8");
                    //上传大文件的部分在分类“soga开发实录”第三篇里有
                    try{
                    	DiskFileItemFactory factory = new DiskFileItemFactory();
                        //2、创建一个文件上传解析器
                        ServletFileUpload upload = new ServletFileUpload(factory);
                         //解决上传文件名的中文乱码
                        upload.setHeaderEncoding("UTF-8"); 
                        //3、判断提交上来的数据是否是上传表单的数据
                        List<FileItem> list = upload.parseRequest(request);
                        for(int index=0;index<list.size();index++){
                        	 //如果fileitem中封装的是普通输入项的数据
                                String name = list.get(index).getFieldName();
                                //解决普通输入项的数据的中文乱码问题
                                value.add(list.get(index).getString("UTF-8"));
                                System.out.println(name + "=" + value.get(index));                        
                        }
                    }catch (Exception e) {
                        e.printStackTrace();
                        
                    }
        }
    

      这算是小心机吧,不过可能能帮到一些人。

  • 相关阅读:
    2016奇虎360研发工程师内推笔试编程题:找镇长
    2016奇虎360研发工程师内推笔试编程题:找到字符串第一个只出现一次的字符
    lintcode: 最长无重复字符的子串
    lintcode :同构字符串
    lintcode : 跳跃游戏
    lintcode :单词搜索
    Project Euler 110:Diophantine reciprocals II 丢番图倒数II
    Project Euler 109 :Darts 飞镖
    Project Euler 108:Diophantine reciprocals I 丢番图倒数I
    Project Euler 107:Minimal network 最小网络
  • 原文地址:https://www.cnblogs.com/Amy-is-a-fish-yeah/p/7392390.html
Copyright © 2011-2022 走看看