一、代码优化. 检查点如下:
1、整个jsp/jsp bean表示层应当尽可能的瘦和简单化。
2、牢记大多数的JSP都应当是只读的视图,而由页面bean来提供模型。
3、应当一起设计JSP和JSP bean
4、应当在JSP中避免使用页面引入指令。import指令会促使类的实列化而不是jsp
5、bean的实例化
6、在JSP中避免代码重复。把要重复的功能放在一个包含的JSP、bean或标记扩展中,使得它能够被重用。
7、在JSP中应该避免使用out.println()发放来产生页面内容。
8、除了JSP bean之外,JSP不应当去实例化复杂的可读写的对象。如果这样的话,就有可能在JSP中去执行不适当的业务逻辑。
9、应当使用隐藏的注释来阻止输出的HTML过大。
10、如果没有充分的理由,就不要在JSP中定义方法和内部类。
11、在Servlet/JSP中尽量避免使用实例变量
12、应当在JSP中避免使用页面引入指令。import指令会促使类的实列化而不是jsp bean的实例化不用:<%@ page import = "com.java.util.*" %> 而用:<% java.util.List l = new java.util.LinkedList(); %>
13、JSP不应当访问属性文件,或者使用JNDI。bean可以访问属性文件。
14、JSP bean应当永远不要去产生HTML。
15、JSP bean中不应当包含大量的数据。
16、定制标记应当用在适当把逻辑从jsp中移走的地方。
17、"""返回上一级""或“后退”的链接不宜写成:
18、建议不要硬编码,特别是页面链接、参数、文字信息,如果写在java文件中,会带来很大的维护工作量。我们的目的是将现网操作尽量简化,尽量减少。尽量用配置文件、数据库表来实现
二、业务安全
1、在尽可能合理的情况下,把业务逻辑从JSP中移走。具体于HTTP的逻辑(如,对Cookie的处理)属于bean或支持类中,而不是JSP中。
2、JSP层不应该直接访问数据,这包括JDBC数据库访问和EJB访问。
3、JSP不应该直接去访问请求参数。bean应当执行这样的处理过程并且输出所处理的模型数据。
4、尽量把条件逻辑放在控制器中而不是放在视图中。
三、结构
1、每个JSP文件中都应当使用一个错误页面来处理不能够从中恢复的异常。
2、在JSP中避免进行异常处理