h5經過表單將localStorage裏的信息傳到java後臺servlet處理

作技術和人生同樣,哪有什麼作不到,只有想不到。css

乍一看你覺得我在開玩笑呢。百度過,沒有這種操做。html

沒有就不能實現了嗎 /壞笑java

-------------------------------------------------------------------------------華麗麗分割線---------------------------------------------------------------------------------------------------------------------------------------------ajax

localStorage是存儲在客戶端的,道理上講和服務端八竿子打不着,除非用ajax。但我就是要用表單,由於有時候上傳大文件到服務端要用form提交的,而form裏要寫data-ajax="false"      (即禁用ajax)post

不是舉例,但能夠清晰的說明操做:spa


首先是css樣式:orm

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

  //你是不但願客戶端存的信息(每每是用戶名和密碼之類的)顯示到頁面上的對麼htm


表單的內容:blog

<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:ip

<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();
                    //二、建立一個文件上傳解析器
                    ServletFileUpload upload = new ServletFileUpload(factory);
                     //解決上傳文件名的中文亂碼
                    upload.setHeaderEncoding("UTF-8"); 
                    //三、判斷提交上來的數據是不是上傳表單的數據
                    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();
                    
                }
    }

  這算是當心機吧,不過可能能幫到一些人。

相關文章
相關標籤/搜索