避坑指南(Java Web实战每日经验汇总,持续更新)

本文分享了关于页面设置的最佳实践,例如使用百分比而非绝对值;介绍了如何避免因使用localhost引发的问题;提供了优化数据库操作的方法;探讨了文件上传功能的实现细节,包括解决无法上传特定类型文件和超过限制大小的问题;并强调了数据备份的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

页面设置技巧

页面设置尽量用百分比,不要用像素之类的绝对值,使用绝对值之后,如果显示页面的分辨率发生改变,页面将十分难看。

localhost注意事项

访问本机的tomcat的时候,我们经常用的是localhost,但是如果此时是断网的状态,那么本机是解析不了localhost的,如果断网,请用192.168访问。

优化

后台对数据库进行增删改查的时候,一定要记得把connection、statement、resultset这三个关掉,否则会造成与服务器连接数太多而导致的崩溃及内存溢出等问题,最好的finally中关闭,而不是try里面。

文件上传功能

前台form表单用的是form-data的属性,这样就可以以二进制的形式进行传输,但是在后台用fileUtils.copyFile()进行文件上传的时“.txt”“.csv”类的纯文本文档根本无法实现上传功能,但是excel文件可以。去掉了fileUtils.copyFile(),改用最原始的输入输出流的fileInputStream,和fileOutputStream编写后台,还是无法读取纯文本文档,经过各种排查,发现如果上传的纯文本文档里面是没有内容了,也就是说纯文本文档内容为空,那么在用流输入的时候是读取不到内容了,后台就会报错,显示空指针异常,这就导致了输出不成功,从而导致了上传失败,所以 ,一定要注意,上传的文本文档一定要有内容,否则文件的上传就会失败。

文件上传功能

问题:点击上传按钮,无法上传大于2M的文件
解决方法:
方法1:
struts2默认使用common-fileupload实现文件的上传,默认最大支持上传文件的大小为2M,
新建struts.properties 添加struts.multipart.maxSize=10000000大约为9.5M
方法2:
在struts.xml 的添加 constant标签中添加 name=“struts.multipart.maxSize” value="10000000"即

服务器中毒

一定要把平时做的数据备份!备份!备份!

MyEclipse新导入项目报错——The type javax.servlet.http.HttpServletRequest cannot be res…

问题原因:

新添加的项目运行环境和本地不同,需要重新添加服务器运行环境。

解决问题方法:

右击项目 ——> properties ——> 选择“Java Build path” ——> 选择 Libraries 选项卡——> 点击“Add Libraries” ——> 选择 MyEclipse Server Library——>选择Tomcat——>点击“Finish”

无法去除字符串的空格

问题:
使用字符串的trim()和replace()等方法,还是无法去除字符串里面的空格

可以看看该显示的空格是否是真的空格,多数情况下,此空格并不是空格符,而是特殊字符导致无法显示。可以把字符强转成ascii码,对照ascii码表,看其实什么字符。
/**
* 方法:将char 强制转换为byte
*/

for(i=0;i < str1.length();i++) {
		char ch = str1.charAt(i);
		byte byteAscii = (byte)ch; 
		System.out.println(ch+" , "+byteAscii);
		if (ch == '\0') {
			continue;
		}else{
			str2+=ch;
		}										
} 

解决问题方法:
把控制台输出的字符复制到word上,word有一个显示空格字符的功能,把word中的特殊字符复制到复制到replace()方法中,用空字符代替特殊字符

Mysql无法插入数据

问题:
控制台报错信息:Incorrect string value: ‘\xF0\x9F\x92\x93\xE4\xB8…’ for column
原因:
mysql的UTF-8只支持三个字节的存储,插入的信息中有表情,而一般字符是三个字节,但是emoji表情是4个字节,所以存储不了。
解决办法:
删除表情等特殊字符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值