Java Web 开发实用技巧与经验总结
在Java Web开发过程中,我们会遇到各种技术问题和实践挑战。本文整理了一系列实用技巧、解决方案和个人经验,涵盖文件上传、Session管理、前端样式、项目维护等多个方面,希望能为开发者提供参考。
文件上传与图片处理
解决附件上传图片成为临时文件的问题
在开发中,有时会发现上传的图片被保存到临时路径,如:
D:\java\.metadata\.plugins\org.eclipse.wst.server.core\tmp7\wtpwebapps\1LoveHomeJavaWeb\img\2021-02-01-04-14-00-307.gif
这是因为服务器在运行时会将项目部署到临时目录。解决方法是:
- 配置文件上传路径时,使用服务器的实际部署路径
- 上传成功后,将文件从临时目录复制到项目的永久存储目录
- 考虑使用相对路径而非绝对路径引用图片
详细解决方案可参考:https://blog.csdn.net/qq_15676547/article/details/81208991
关于图片存储位置的选择
图片存储位置的选择需要权衡:
-
存储在服务器中:
- 优点:访问速度快,适合动态生成的内容
- 缺点:服务器重启或重新部署可能导致路径失效
-
存储在项目中:
- 优点:路径相对稳定,便于版本控制
- 缺点:会增加项目体积,不适合频繁更新的图片
建议根据图片的性质选择存储位置:静态资源可放在项目中,用户上传的动态内容应存储在服务器指定目录。
多张图上传功能实现
实现多张图片上传功能需要考虑:
- 前端表单设置
multiple
属性支持多文件选择 - 后端处理多个文件流,分别保存
- 为每个文件生成唯一文件名,避免冲突
- 考虑添加上传进度显示和文件类型验证
- 大文件可考虑分片上传
核心思路是循环处理每个上传的文件,分别进行验证、保存和记录路径。
Session管理
Session保存内容的默认时间
Session在服务器中保存的默认时间通常是30分钟,这是大多数服务器(如Tomcat)的默认配置。
可以通过以下方式修改Session超时时间:
- 在web.xml中配置:
<session-config><session-timeout>60</session-timeout> <!-- 单位:分钟 -->
</session-config>
- 在代码中动态设置:
request.getSession().setMaxInactiveInterval(3600); // 单位:秒
更多详情可参考:https://www.cnblogs.com/diewufeixian/p/4221747.html
前端开发技巧
给:before设置背景图片的方法
使用CSS的:be