最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

JavaWeb开发中遇到的坑(更新2021.6.24)

网站源码admin5浏览0评论

JavaWeb开发中遇到的坑(更新2021.6.24)

1. Cookie里面不能有空格,所以不能写成以下的形式

代码语言:javascript代码运行次数:0运行复制
Date d = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss");
String currentTime = format.format(d);
//存入到cookie中
Cookie c = new Cookie("lastVisit",currentTime);

xx日 和 hh之间一定不能有空格,不然会报错

2.数据库某一列存储日期用datetime,因为之后会根据日期范围进行查询

暂时的理解是这样,当然也可以用varchar,查询的时候进行格式转换。

3.数据库的id列一定要用String类型!!!!!!要不然会给自己埋很多坑,比如

  • ①后期条件查询的时候,用string可以方便判断是否为空以及去除多余的空字符串,id != null && !id.trim().equals("")
  • ②向数据库添加id时,不设置id递增,而是直接传进去一个 UUID.randomUUID().toString()

4.form表单中如果有enctype="multipart/form-data",在Servlet中无法通过request.getParameter()接收数据

5.商品删除分为逻辑删除和物理删除,逻辑删除是update操作,在数据库增加flag值;物理删除是delete操作,在数据库真正删除。

6.通过a标签的onclick=function()传参时,EL表达式要加引号!

代码语言:javascript代码运行次数:0运行复制
<a href="javascript:;" onclick="delProduct('${product.pid}','${product.pname}')">
    <img src="${pageContext.request.contextPath}/images/i_del.gif" width="16" height="16" border="0" style="CURSOR: hand">
</a>

7.向后台传递参数时,可以使用隐藏域

代码语言:javascript代码运行次数:0运行复制
<input type="hidden" name=""  value="">

8.在进行条件筛选(搜索)时,可以建议一个VO层(独立于domain层)存放实体,比如下图,建立一个pname、is_hot、category组成的实体,方便操作。

9.通过queryrunner核心类中的query方法查询数据总条数时,new一个ScalarHandler对象,它的返回值是object类型的,如果需要获得int类型,需要转换两次。

先强转为Long,再使用intValue()转换为int

代码语言:javascript代码运行次数:0运行复制
Long count = (Long)queryRunner.query(sql, new ScalarHandler());
return count.intValue();

10.在分页操作中,总页数 = ( 总条数 / 每页显示的条数 )向上取整,也就是Math.ceil( 总条数 / 每页显示的条数 )

如果总条数和每页显示的条数为int,需要给总条数乘以1.0!,即 Math.ceil( 1.0 * 总条数 / 每页显示的条数 )

代码语言:javascript代码运行次数:0运行复制
Math.ceil( 1.0 * 总条数 / 每页显示的条数 )

11.将<script>中的内容提取到单独的js文件中时,需要修改url中的${pageContext.request.contextPath}/

因为.js不支持EL表达式!

12.<script>中的js代码可以获取作用域中的值,比如request中的、session中的,因此可以用js接收后端传来的数据。注意,同11一样不能放到单独的.js文件中。

13.Mysql5.7支持中文检索(where = 中文),但是需要设置编码为UTF-8,需要修改两个地方,打开文件C:\ProgramData\MySQL\MySQL Server 5.7\my.ini

  1. 在[client]中添加 default-character-set=utf8
  2. 在[mysqld]添加 character-set-server=utf8

注意:在MySQL5.7中,不需要在[mysql]或者[mysqld]下添加 default-character-set=utf8,那是以前老版本的方法,添加之后会造成Mysql无法启动

14.使用BeanListHandler时,定义的Javabean的属性名要跟数据库返回值的字段名相同!!!!

15.MYSQL某一字段为int且所有值都为0时,不管查询条件如何,都会返回所有行。

原因:在Mysql中字符串和整数比较都会进行转换后再行比较,然而任何没有有效整数的字段都将转换成为0,因为把VARCHAR类型转换成整数类型, 不符合整数类型的被转为0,所以造成你的结果不是你想要的;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2021-04-30 ,如有侵权请联系 cloudcommunity@tencent 删除表单开发数据字符串数据库
发布评论

评论列表(0)

  1. 暂无评论