所以我有一个例子问题如下:
Explain how a JSP page is executed and what kind of problems may occur.
我对第一部分很好,将静态html和scriptlet编译为java,由servlet等提供服务。
但我对可能出现的问题感到难过? JSP页面保存在内存中...所以这可能会耗尽内存?我有点抓住稻草......
答案 0 :(得分:1)
许多人在编写JSP页面时忽略了一个可能存在问题的事情是JSP声明,即:
<%! String foo = "bar" %>
在编译成servlet时创建实例变量,这会破坏JSP的线程安全性。
更一般地说,常见的问题包括在表达式的末尾使用分号,或者在scriptlet中不使用分号;尝试检索null或错误类型的参数或属性或会话值;尝试访问变量时使用错误的范围。各种有趣的东西。
答案 1 :(得分:1)
JSP标记中的语法或scriptlet中的Java代码可能导致JSP文件无法正确编译。
此外,可能还有未包含的标记库或Java源文件导入。
答案 2 :(得分:1)
我必须说这个问题对我来说有点尴尬。通常,当您有一个JSP页面(已执行)时,它应该处理因使用scriptlet,表达式或其他JSP事件而可能产生的任何异常。当你不通过指定web容器应该在异常发生时将控制转发到错误页面来处理它们时,事情可能会出错:)。当然,总会出现一个不可预测的错误,但也可以通过使用“处理未处理的异常”来处理这个错误。
所以答案是,根据您的代码在JSP页面中的内容,可能会发生无限多的错误。问题是你可以预测它们并提前处理它们吗?
答案 3 :(得分:0)
客户端可能会关闭连接,例如,如果他们点击后退按钮,如果您从页面流式传输数据(pdf,word doc,二进制文件),则会出现问题。