文件2. 文件重命名
servlet对本机已存在的文件进行重命名。
.jsp界面
1 <form action="<%=basePath %>fileAction" method="get" > 2 <table> 3 <tr> 4 <td>输入文件路径</td> 5 <td><input type="text" name="filePath" /></td> 6 </tr> 7 <tr> 8 <td>新文件名</td> 9 <td><input type="text" name="newName"/></td> 10 </tr> 11 <tr> 12 <td colspan="2"> 13 <input type="submit" value="修改"/> 14 </td> 15 </tr> 16 <tr> 17 <td colspan="2"><input type="hidden" name="method" value="file"/></td> 18 </tr> 19 </table> 20 </form>
servlet层FileAction.java代码
1 protected void doGet(HttpServletRequest req, HttpServletResponse resp) 2 throws ServletException, IOException { 3 req.setCharacterEncoding("utf-8"); 4 resp.setCharacterEncoding("utf-8"); 5 resp.setContentType("text/html;charset=utf-8"); 6 PrintWriter out=resp.getWriter(); 7 String method=req.getParameter("method"); 8 9 if(method.equals("file")) { 10 //对文件进行操作 11 12 13 /* 14 * 判断文件是否存在 15 */ 16 // 1. 获取请求中的文件路径(get方式,获得表单中的含有中文的值) 17 // 若是英文,则直接用req.getParameter("name"); 18 String filePath=new String(req.getParameter("filePath").getBytes("iso8859-1"),"utf-8"); 19 // 2. 根据路径定义相应的文件 20 File file=new File(filePath); 21 // 3. 使用exists();函数,判断生成的文件是否存在 22 boolean bool=file.exists(); 23 if(bool==true) { 24 /* 25 * 文件重命名renameTo(); 26 * // 1. 获取新的文件名 27 String newName =new String(req.getParameter("newName").getBytes("ISO8859-1"),"UTF-8"); 28 2. 根据源文件父路径和新的文件名,组合创建一个新的File对象 29 File newFile=new File(file.getParent()+File.separator+newName); 30 boolean reName=file.renameTo(newFile); 31 if(reName) 32 out.write("<script>alert('文件重命名成功!');</script>"); 33 } else { 34 out.write("<script>alert('该文件不存在!');</script>"); 35 }
}
}
web.xml
1 <servlet> 2 <servlet-name>fileAction</servlet-name> 3 <servlet-class>servlet.FileAction</servlet-class> 4 </servlet> 5 <servlet-mapping> 6 <servlet-name>fileAction</servlet-name> 7 <url-pattern>/fileAction</url-pattern> 8 </servlet-mapping>