JSP, Servlet常见面试题详解
JSP, Servlet常见面试题
1,J2EE是什么?
J2EE本身是一个标准,一个为企业分布式应用的开发提供的标准平台。
J2EE也是一个框架,包括JDBC、JNDI、RMI、JMS、EJB、JTA等技术。
2,session和cookie的区别
点击打开链接
3,get和post的请求区别
1,get是从服务器上获取数据,post是向服务器传送数据。
2,在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。
3 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
(2) GET方式提交的数据最多只能有1024字节,而POST则没有此限制。
(3) 安全性问题。正如在(1)中提到,使用 Get 的时候,参数会显示在地址栏上,而 Post 不会。所以,如果这些数据是中文数据而且是非敏感数据,那么使用 get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用 post为好。
4,servlet的生命周期
编译阶段:
servlet容器编译servlet源文件,生成servlet类
· 初始化阶段:
加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法
· 执行阶段:
调用与JSP对应的servlet实例的服务方法
· 销毁阶段:
调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例
点击打开链接
5,servlet和jsp的区别
jsp处理页面显示,servelet处理业务逻辑,jsp要编译为servlet才能够执行。
6,jsp架构模型
Model1:纯jsp维护难,代码复用性差。
Model2:jsp+javaBean,在jsp中使用usebean标签,代码 在jsp中体现和model1一样。
Mvc:jsp+javaBean+servlet
7,Jsp隐含变量
1、out 来源于java.io.Writer类,它用于发送输出流到客户端。
2、request 来源于javax.servlet.http.HttpServletRequest接口。它被关联到每一个HTTP请求。
3、response 来源于javax.servlet.http.HttpServletResponse。response对象用于把取得的数据返回到客户端。
4、pageContext 提供访问JSP页面的命名空间。它也提供用来访问其他的JSP隐含对象。
5、session 来源于javax.servlet.http.HttpSession。它用于存储客户端请求的信息,因此它是有状态交互式的。
6、application 来源于javax.servlet.ServletContext。
7、config 来源于ServletConfig,它包含了当前JSP/Servlet所在的WEB应用的配置信息。
8、page 来源于当前被访问JSP页面的实例化。它实际使用的是JSP转换成的Servlet。
9、exception 用于捕获JSP抛出的异常。它只有在JSP页面属性isErrorPage=true时才可用。
8,四大共享范围
application:
全局作用范围,整个应用程序共享,就是在部署文件中的同一个webApp共享,生命周期为:应用程序启动到停止。
session:
会话作用域,当用户首次访问时,产生一个新的会话,以后服务器就可以记住这个会话状态。生命周期:会话超时,或者服务器端强制使会话失效。
request:
请求作用域,就是客户端的一次请求。
page:
一个JSP页面。
以上作用范围使越来越小, request和page的生命周期都是短暂的,他们之间的区别就是:一个request可以包含多个page页(include,forward以及filter)。
9,动态include和静态include方法
动态include的优点和不足:
优点:
1:引入和同步一个动态的页面,使jsp页面更具灵活性
2:能和不同页面之间进行信息的交互和快捷的实现方式。
3:改变了原始的所有页面编码都放在一个jsp上,使不同的功能分别写在不同页里,通过动态include方式引用到页面,更易于编码,更易于管理。
不足:
动态的引入时需要频繁的变化和页面信息的更新和交互,要占用大量的资源开销。降低页面的访问速度。如果在没必要动态引入的情况下,不要使用动态include
应该注意事项:
1:<jsp:include>动作的flush属性必须要定义,不定义会出现转换错误。而且设置的flush必须要为true
2:在<jsp:include>动作中指定的页面必须是同一web应用程序的一部分。如果引入的是非同一web应用的页面将导致请求时错误。
10,Forward和sendRedirect方法的区别
forward()就是转发。sendRedirect就是重定向。两者最大的区别就是一个是:
forward()执行后还是在同一个request范围,
而sendRedirect执行之后就不在同一个request范围里面。
11,jsp有哪些动作,作用分别是什么?
JSP共有以下6种基本动作
jsp:include:在页面被请求的时候引入一个文件。
jsp:useBean:寻找或者实例化一个JavaBean。
jsp:setProperty:设置JavaBean的属性。
jsp:getProperty:输出某个JavaBean的属性。
jsp:forward:把请求转到一个新的页面。
jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记。
12,session的特点有哪些?
1,不是线程安全。
2,session是轻量级,
3,每个数据库操作都在事务中进行。
13,session缓存的作用。
1,减少数据库的访问频率。
2,保证缓存中的对象和数据库中的相关记录保持同步。
14,实现页面跳转的几种方式
点击打开链接
15, include指令标签
主要有两个方面的不同;
1.执行时间上:
< %@ include file=”relativeURI”%> 是在翻译阶段执行
< jsp:include page=”relativeURI” flush=”true” /> 在请求处理阶段执行.
2.引入内容的不同:
< %@ include file=”relativeURI”%>
引入静态文本(html,jsp),在JSP页面被转化成servlet之前和它融和到一起.
< jsp:include page=”relativeURI” flush=”true” />引入执行页面或servlet所生成的应答文本.
16,内置对象的作用域
application:全局作用范围,整个应用程序共享,就是在部署文件中的同一个webApp共享,生命周期为:应用程序启动到停止。
session:会话作用域,当用户首次访问时,产生一个新的会话,以后服务器就可以记住这个会话状态。生命周期:会话超时,或者服务器端强制使会话失效。
request:请求作用域,就是客户端的一次请求。
page:一个JSP页面。
17,cookie的使用
创建cookie
<% String userName=request.getParameter("username");
Cookie theUsername=new Cookie("username",userName);
response.addCookie(theUsername);
%>
获取cookie
<%
Cookie myCookie[]=request.getCookies();//创建一个Cookie对象数组
for(int n=0;n=cookie.length-1;i++);//设立一个循环,来访问Cookie对象数组的每一个元素
Cookie newCookie= myCookie[n];
if(newCookie.getName().equals("username")); //判断元素的值是否为username中的值
{%>
你好,<%=newCookie.getValue()%>!//如果找到后,向他问好
<%}
%>
设置cookie过期:setMaxAge(0);单位为秒。
18,什么是servlet
是运行在web容器中的服务器端小程序。在mvc架构中控制部分。
19,什么是servlet容器
用来管理servlet生命周期的应用程序(tomcat)
20,jsp标签
动作标签:jsp:include jsp:forword jsp:usebean jsp:set/get Property
:<%@page%> <%@include.%> <%@taglib..%
Page指令:import session contentType buffer isTreadSafe info errorPage isErrorPage
21 、servlet的生命周期
web容器加载servlet,生命周期开始。
通过调用servlet的init()方法进行servlet的初始化。通过调用service()方法实现,根据请求的不同调用不同的do***()方法。结束服务,web容器调用servlet的destroy()方法。
22、如何现实servlet的单线程模式
<%@ page isThreadSafe=”false”%>
23、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是"类servlet"Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑
24,应用服务器有哪些
BEA WebLogic Server,IBM WebSphere Application Server,Oracle9i Application Server,jBoss,Tomcat
JSP, Servlet常见面试题详解相关推荐
- Java开发常见面试题详解(LockSupport,AQS,Spring循环依赖,Redis)_3
Java开发常见面试题详解(LockSupport,AQS,Spring循环依赖,Redis)_3 总览 问题 详解 String.intern()的作用 link LeetCode的Two Sum题 ...
- Java开发常见面试题详解(JVM)_2
Java开发常见面试题详解(JVM)_2 JVM 问题 详解 JVM垃圾回收的时候如何确定垃圾?是否知道什么是GC Roots link 你说你做过JVM调优和参数配置,请问如何盘点查看JVM系统默认 ...
- Java开发常见面试题详解(LockSupport,AQS,Spring循环依赖,Redis)
总览 问题 详解 String.intern()的作用 link LeetCode的Two Sum题 link 什么是可重入锁? link 谈谈LockSupport link 谈谈AQS link ...
- Java开发常见面试题详解(并发,JVM)
预览 并发 问题 详解 请谈谈你对volatile的理解 link CAS你知道吗? link 原子类Atomiclnteger的ABA问题谈谈?原子更新引用知道吗? link 我们知道ArrayLi ...
- jQuery的概念、用法、常见面试题详解
什么是jQuery? jQuery 是一个高效.精简并且功能丰富的 JavaScript 工具库.它提供的 API 易于使用且兼容众多浏览器,这让诸如 HTML 文档遍历和操作.事件处理.动画和 Aj ...
- Redis常见面试题详解
文章目录 1. Redis 1.1 Redis可以用来做什么? 1.2 Redis和传统的关系型数据库有什么不同? 1.3 Redis有哪些数据类型? 1.4 Redis是单线程的,为什么还能这么快? ...
- 深入剖析线程池基本原理以及常见面试题详解
文章目录 面试官:能给我讲讲线程池的实现原理? 线程池类继承关系 ThreadPoolExecutor 核心数据结构 面试官:给我讲讲线程池的有哪些参数? 面试官:如何优雅的关闭线程? 线程的生命周期 ...
- JSP和Servlet常见面试题
1. Servlet的生命周期? 装载Servlet类并创建实例阶段,该阶段在默认情况下发生在客户端第一次向服务器端发送请求 初始化阶段,servlet实例创建完成后,调用init(ServletCo ...
- Python常见面试题:TCP 协议中的三次握手与四次挥手相关概念详解
今天来聊聊Python常见面试题中面试频率特别高的一个题目:TCP 协议中的三次握手与四次挥手. 涉及到的知识点有: 1.TCP.UDP 协议的区别 2.TCP 头部结构 3.三次握手与四次挥手过程详 ...
最新文章
- bootstraptable 汇总_JS组件系列——表格组件神器:bootstrap table
- 【bzoj1951】 Sdoi2010—古代猪文
- 含有自增字段的插入问题
- 关于 CSS3 backface-visiable 与 overflow 属性的冲突
- SQLite学习手册(内置函数)
- 【NLP】如何在文本分类任务中Fine-Tune BERT
- html mvc 分页 保存,Asp.net Mvc3 加载cshtml文件自定义分页+ 查询
- 【OpenCV 例程200篇】64. 图像锐化——Sobel 算子
- 刷题笔记2020-06-26
- python 测试mysql数据库_Python MySQL 数据库之测试索引
- bash shell 快捷键
- 谁的世界,哪一个梦想?
- android 隐藏系统音量的接口_Android9.0 系统默认配置清单
- 理解Liang-Barsky裁剪算法的算法原理
- shiro.crypto.CryptoException: Unable to correctly extract the Initialization Vector or ciphertext
- android 文本框,Android实现简单的圆形文本框
- 名利如过往云烟,知足就好
- 微信公众号扫码授权登录思路
- 什么是RFID技术?
- JavaCV依赖精简