1.因为文件(即用户头像)重命名用到IPTimeStamp类,此类通过接收的IP地址与时间戳来进行文件重命名,获取客户端IP地址使用的代码为:request.getRemoteAddr(),所以当访问形式为:http://localhost:8080/xxxxxxxx/xxx.jsp,request.getRemoteAddr()得到的值会有问题,所以访问时url地址改为:http://127.0.0.1:8080/xxxxxxxx/xxx.jsp,注意,是在代码里面改,不是在地址栏里改。
2.上传的文件保存在发布路径,发布路径在tomcat中配置,通过双击server可以看到,如下图。
Server path路径的查找:.metadata\.plugins\org.eclipse.wst.server.core\tmp1,此路径在解决下面的问题3和4时也要用到。
也可以通过在程序中打印的方式得到项目发布路径:
System.out.println(this.getServletContext().getRealPath("/"));
3.需要新建文件夹upload。
由于没有在程序自动创建文件夹,所以需要在项目发布路径中找到本项目,在本项目的目录下新建文件夹upload。如我的项目名为Sep29,则在.metadata\.plugins\org.eclipse.wst.server.core\tmp1\work\Catalina\localhost\Sep29下建立文件夹upload,而不是直接在.metadata\.plugins\org.eclipse.wst.server.core\tmp1下建立。
4.直接导入项目是看不到图片的,因为图片保存在发布路径,而发布路径一般为图2中所示,所以按照问题3完成后需要点击修改按钮,修改雇员信息,从本地选择图片上传到发布路径。即把头像上传到.metadata\.plugins\org.eclipse.wst.server.core\tmp1\work\Catalina\localhost\Sep29\upload中。
5.DiskFileItemFactory cannot be resolved to a type错误抛出:
应该将jars(commons-fileupload-……-.jar和commons-io-……-.jar)复制到WEB-INF/lib(只在如下图的Classpath中加入这两个jar包是不行的)。这是确保在运行已部署的Web应用程序时库将位于类路径上的唯一方法。