我们参加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面试技术问答后续会继续提供,想要一口气获得所有答案的小伙伴可以评论交流哦~