jsp文件中的内容转换规则如下:
1.html和普通文本转换为servlet中out.print(" ");语句中的字符串,即会原封不动地直接传递输出。如果输出中含有<%或%>,需要在文本中使用<\%或%\>。
如果希望添加一段注释,使之出现在jsp页面中但不现在结果文档中,需要使用<%-- jsp comment --%>.html注释会按照常规的方式传递给客户程序。
2.jsp表达式<%=Java Expression %>转换为out.print( Java Expression),即求值后插入到Servlet的输出中;
3.<% Java Code %>,将其中的代码插入到_jspService方法中(service方法调用);
4.<%! Field/Method Declaration %>:jsp声明,转换为Servlet类属性或方法的定义,转换为在_jspService方法之外的代码。
由于java类中属性和方法可以以任意次序声明,因此,由声明产生的代码放在servlet顶部还是底部并不重要。
注意事项
编写jsp页面时想着以上四种转换规则。
要限制jsp页面中java代码的量。可以使用一些辅助类,然后在jsp页面中使用他们。
要将所有类都放在包中。
客户对同一个servlet的多个请求只会产生多个线程,每一个线程都调用单一servlet实例的service方法。
除非servlet实现了现在已经不赞成使用的SingThreadModel接口,否则多个请求并不会导致多个servlet实例的创建。
因此,常规servlet的实例变量为每个请求共享。
servlet的实例变量只在对象构建时初始化,且servlet只构建一次,
然后保存在内存中处理不同的请求,并不为每个请求分配新的实例,而方法在每个请求时执行。