上一个项目BookStrore的一些问题以及解决
1、框架里面的展示页面出现类似框架嵌套的问题
target有一个属性“_top”,表示,目标是在框架的最父元素
2、伪删除
一些删除数据需要使用到伪删除,就是给该数据增加一个状态字段,之前所有的查询操作都是在该列为false的基础上的,当执行删除操作的时候,将该类的属性设置成为true
3、过滤器实现简单权限控制
使用过滤器过滤的内容是jsp,servlet。最好要过滤的jsp都是在一个文件夹下,然后最好要过滤的servlet都具有相同的前缀。我们过滤servlet使用的是servlet-name
4、配置文件中如果有东西需要使用占位符的话可以使用MessageFormat这个类进行处理
5、数据库表中A表中一个bid字段是B表的主键,这样在Bean中一般是A类中有一个B类的对象。关于这个对象的赋值操作,我们可以使用request.getParameterMap()得到所有参数的map,然后使用反射从参数map中得到A对象和B对象,再将B对象赋值给A对象的属性。当然B对象和A对象中有一些属性使用的是null
6、完成项目时,分项目可以使用模块进行分,例如分为前台和后台。先完成前台部分再完成后台部分。前台的页面也可以按模块分,例如购物车的放在购物车文件夹内,图书的放在图书模块内。用户使用的放在jsps文件夹内,管理者的放在adminjsps内。一个简单的模块的图:
7、项目出现bug注意浏览器的缓存问题,注意中文乱码问题,注意特殊字符问题
8、在jsp页面中可以使用<c:choose>进行不同问题的页面的切换
9、表单操作失败之后,不要忘记数据的回调
10、如果在jsp页面的中需要使用重定向到该jsp的准确地址,可以在上一个Servlet中将该url信息保存在request域中
11、有些进行数据计算的时候,要注意二进制运算误差问题,将浮点类型转换成为BigDecimal再进行运算
12、需要的时候,可以在bean中添加一些必要的getXxx方法,虽然并没有xxx这个字段
13、在操作数据库中的Date数据的时候,一般在service和其他层我们队date的类型使用的都是java.util下的Date类,然后在dao层中将对应的date数据转换成为java.sql.Date对象,根据数据库中不同的格式转换成为sql.Date的不同子类
14、学会使用自定义异常,学会在修改数据之前多一次验证工作防止“坏人“”进行不法操作
15、发送超链接的文本到其他电脑的时候,你的链接地址最好前面加上http://否则其他电脑上你的超链接没有任何效果
16、获得服务器ip可以使用InetAddress这个类