做技术和人生一样,哪有什么做不到,只有想不到。
乍一看你以为我在开玩笑呢。百度过,没有这种操作。
没有就不能实现了吗 /坏笑
-------------------------------------------------------------------------------华丽丽分割线---------------------------------------------------------------------------------------------------------------------------------------------
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(); } }
这算是小心机吧,不过可能能帮到一些人。