优秀的编程知识分享平台

网站首页 > 技术文章 正文

Java面试技术问答宝典(25)——jsp 静态包含和动态包含的区别?

nanyue 2024-07-29 01:23:15 技术文章 6 ℃

我们参加Java培训学习都是希望能够毕业后找到满意的工作,然而培训机构只是推荐就业,我们仍然需要进行面试,提高面试技术问答的正确率有助于增加面试官的满意度。本系列全面汇总了企业Java面试的技术问题,希望能够帮助大家。

本文列举的技术问题有:

  • jsp 和 servlet 的区别、共同点、各自应用的范围?
  • 转发(forward)和重定向(redirect)的区别?
  • request.getAttribute()和 request.getParameter()有何区别?
  • jsp 静态包含和动态包含的区别?

更多Java面试技术问答后续会继续提供,想要一口气获得所有答案的小伙伴可以评论交流哦~

94、jsp 和 servlet 的区别、共同点、各自应用的范围?

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

95、转发(forward)和重定向(redirect)的区别?

1. 从地址栏显示来说

forward是服务器请求资源,服务器直接访问目标地址的 URL,把那个 URL 的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址。redirect 是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的 URL.

2. 从数据共享来说

forward:转发页面和转发到的页面可以共享 request 里面的数据。redirect:不能共享数据。

3. 从运用地方来说

forward:一般用于用户登陆的时候,根据角色转发到相应的模块。redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等。

4. 从效率来说

forward:高。redirect:低。

96、request.getAttribute()和 request.getParameter()有何区别?

1、request.getParameter()取得是通过容器的实现来取得通过类似 post,get 等方式传入的数据。

2、request.setAttribute()和 getAttribute()只是在 web 容器内部流转,仅仅是请求处理阶段。

3、getAttribute 是返回对象,getParameter 返回字符串

4、getAttribute()一向是和 setAttribute()一起使用的,只有先用 setAttribute()设置之后,才能够通过 getAttribute()来获得值,它们传递的是 Object 类型的数据。而且必须在同一个 request对象中使用才有效。,而 getParameter()是接收表单的 get 或者 post 提交过来的参数

97、jsp 静态包含和动态包含的区别?

1.两者格式不同,静态包含:<%@ include file="文件" %>,而动态包含:<jsp : include page = "文件" />。

2.包含时间不同,静态包含是先将几个文件合并,然后再被编译,缺点就是如果含有相同的标签,会出错。动态包含是页面被请求时编译,将结果放在一个页面。

3.生成的文件不同,静态包含会生成一个包含页面名字的 servlet 和 class 文件;而动态包含会各自生成对应的 servlet 和 class 文件。

4.传递参数不同,动态包含能够传递参数,而静态包含不能。

更多Java面试技术问答后续会继续提供,想要一口气获得所有答案的小伙伴可以评论交流哦~

最近发表
标签列表