Java面试中Servlet、JSP相关

2025-05-19 21:04:08

1、亭盍誓叭JSP内置对象:

request:表示HttpServerRequest对象,包含了有关浏览器请求页面的信息,并提供了几个用于获取cookie,header,session数据的有用方法

response:表示HttpServerResponse对象,提供了用于设置送回浏览器的响应的方法,如cookies,头信息等

out:对象是javax.jsp.JspWriter的一个实例,提供了几个能用于向浏览器会送输出结果的方法

pageContent:表示javax.servlet.jsp.PageContext对象,用于使存取各种范围的名字空间,servlet相关对象的API,包装了通用的servlet相关功能的方法

session:表示一个请求的javax.servlet.http.HttpSession对象,Session可以存贮用户的状态信息

appliction:表示一个javax.servlet.ServletContext对象,有助于查找有关servlet引擎和servlet环境的信息

config:表示一个javax.servlet.ServletConfig对象,该对象用于存取servlet实例的初始化参数

page:表示从该页面产生的一个servlet实例

exception:针对错误网页、未捕捉的例外

2、JSP中动态Include和静态Include的区别

动态Include:<jsp:include page="head.jsp" />总是会检查所含文件中的变化,适合用于包含动态页面,可以带参数

静态Include:<%@include file="head.jsp"%>不会检查所含文件中的变化,适合静态页面

3、Servlet中forward和redirect的区别

forward是容器中控制权的转向,是服务器请求资源,服务器直接访问目标地址的URL,把URL的响应内容读取过来,再发给浏览器,浏览器不知道服务器发送的内容来自哪儿,所以地址栏不变

redirect是服务器端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,所以session、request参数都可以获取,可以看到地址栏中跳转后的链接地址

前者更加高效,在forward可以满足需要时,尽量使用forward方法,这样有助于隐藏实际的链接,在需要跳转到一个其它服务器上的资源,必须使用sendRedirect()方法。

4、get 和 post 的区别

Form 中的 get 和 post 方法,在数据传输过程中分别对应了 HTTP 协议中的GET 和 POST 方法。二者主要区别如下:

1) Get 将表单中数据按照 variable=value 的形式,添加到 action 所指向的URL 后面,并且两者使用“?”连接,而各个变量之间用“&”连接;Post 是将表单中的数据放在 form 的数据体中,按照变量和值相对应的方式,传递到 action所指向 URL;

2)Get 是不安全的,因为在传输过程,数据被放在请求的 URL 中;Post 的所有操作对用户来说都是不可见的;

3)Get 传输的数据量小,这主要是因为受 URL 长度限制;而 Post 可以传输大量的数据,所以在上传文件只能使用 Post;

4) Get 限制 Form 表单的数据集必须为 ASCII 字符,而 Post 支持整个 ISO10646字符集;

5)Get 是 Form 的默认方法。

5、JSP 和 Servlet 有哪些相同点和不同点,他们之间的联系是什么

JSP 是 Servlet 技术的扩展,本质上是 Servlet 的简易方式,更强调应用的外表表达。JSP 编译后是"类 servlet"。Servlet 和 JSP 最主要的不同点在于,Servlet 的应用逻辑是在 Java 文件中,并且完全从表示层中的 HTML 里分离开来。而 JSP 的情况是 Java 和 HTML 可以组合成一个扩展名为.jsp 的文件。 JSP 侧重于视图,Servlet 主要用于控制逻辑。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢