JSP面试必备知识点:重定向、转发与包含

需积分: 0 2 下载量 82 浏览量 更新于2024-09-12 收藏 36KB DOC 举报
"这是一份关于JSP面试的考题集合,包含了多个关于JSP和Servlet的问题,旨在帮助应试者准备面试,确保能够成功通过。" 在JSP(Java Server Pages)中,字符串变量`str`被定义为`"abc"`。要将这个字符串显示在页面上,我们需要使用`out`对象的`print`方法来输出内容。因此,正确的JSP代码片段是: ```jsp <%out.print(str);%> ``` 选项A `<%str%>` 是错误的,因为它试图直接输出一个Java表达式,而不是调用`out`对象的方法。选项C `<%abc%>` 也是错误的,因为它不是一个有效的JSP代码。选项D `<%out.print(str)%>` 和选项B一样,都是正确的,但根据题目,我们只需要选择一个答案。 在转向其他页面的问题上,我们需要区分`forward`和`redirect`。选项C的`response.sendRedirect("http://www.chinasofti.com")` 是正确的方法来重定向浏览器到"ChinaSofti"的首页。这是因为`sendRedirect`会发送一个新的HTTP响应,指示浏览器加载新的URL。而选项A的`response.forward()` 是服务器端的转发,不会改变浏览器的URL显示,所以它是错误的。选项B和D的`page`对象不是标准的JSP或Servlet对象,因此这两个选项也是不正确的。 关于`forward`和`redirect`的区别,以下陈述是不正确的: - "在forward和redirect的情况下,服务器都会将新URL发送到浏览器去打开"。这是不正确的,因为`forward`是服务器内部操作,不会改变浏览器的URL,而`redirect`会让浏览器发起新的请求,URL会变化。 - "forward不会触发浏览器再次提交请求,而redirect会"。这个陈述是正确的,因此它不是我们要找的答案。 - "forward发生在服务器端,而redirect发生在客户端"。这个陈述也是正确的,不是我们要找的不正确答案。 最后,关于“动态包含JSP”的语句,正确的语法是使用`jsp:include`动作元素,如下所示: ```jsp <jsp:include page="top.jsp"/> ``` 选项A是正确的`jsp:include`的使用形式,而选项B的`@%include`是错误的,这不是JSP中的一个有效指令。选项C和D的语法错误在于`include`后应跟`page`属性,而非`file`或`pa`。 这些面试问题涵盖了JSP基本的语法、输出方法、页面转向以及动态包含的概念,对于理解和掌握JSP核心概念是非常有帮助的。理解这些问题的答案,将有助于应试者在面试中展现出对JSP和Servlet的深入理解。