JSP, Servlet常见面试题

1J2EE是什么?

J2EE本身是一个标准,一个为企业分布式应用的开发提供的标准平台。
J2EE也是一个框架,包括JDBC、JNDI、RMI、JMS、EJB、JTA等技术。

2,session和cookie的区别

点击打开链接

3,get和post的请求区别

1get从服务器上获取数据,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页面。

以上作用范围使越来越小, requestpage的生命周期都是短暂的,他们之间的区别就是:一个request可以包含多个page(includeforward以及filter)

9,动态include和静态include方法

动态include的优点和不足:

优点:

1:引入和同步一个动态的页面,使jsp页面更具灵活性

2:能和不同页面之间进行信息的交互和快捷的实现方式。

3:改变了原始的所有页面编码都放在一个jsp上,使不同的功能分别写在不同页里,通过动态include方式引用到页面,更易于编码,更易于管理。

不足:

动态的引入时需要频繁的变化和页面信息的更新和交互,要占用大量的资源开销。降低页面的访问速度。如果在没必要动态引入的情况下,不要使用动态include

应该注意事项:

1<jsp:include>动作的flush属性必须要定义,不定义会出现转换错误。而且设置的flush必须要为true

2:在<jsp:include>动作中指定的页面必须是同一web应用程序的一部分。如果引入的是非同一web应用的页面将导致请求时错误。

10ForwardsendRedirect方法的区别

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、JSPServlet有哪些相同点和不同点,他们之间的联系是什么?

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

24,应用服务器有哪些

BEA WebLogic ServerIBM WebSphere Application ServerOracle9i Application ServerjBossTomcat

JSP, Servlet常见面试题详解相关推荐

  1. Java开发常见面试题详解(LockSupport,AQS,Spring循环依赖,Redis)_3

    Java开发常见面试题详解(LockSupport,AQS,Spring循环依赖,Redis)_3 总览 问题 详解 String.intern()的作用 link LeetCode的Two Sum题 ...

  2. Java开发常见面试题详解(JVM)_2

    Java开发常见面试题详解(JVM)_2 JVM 问题 详解 JVM垃圾回收的时候如何确定垃圾?是否知道什么是GC Roots link 你说你做过JVM调优和参数配置,请问如何盘点查看JVM系统默认 ...

  3. Java开发常见面试题详解(LockSupport,AQS,Spring循环依赖,Redis)

    总览 问题 详解 String.intern()的作用 link LeetCode的Two Sum题 link 什么是可重入锁? link 谈谈LockSupport link 谈谈AQS link ...

  4. Java开发常见面试题详解(并发,JVM)

    预览 并发 问题 详解 请谈谈你对volatile的理解 link CAS你知道吗? link 原子类Atomiclnteger的ABA问题谈谈?原子更新引用知道吗? link 我们知道ArrayLi ...

  5. jQuery的概念、用法、常见面试题详解

    什么是jQuery? jQuery 是一个高效.精简并且功能丰富的 JavaScript 工具库.它提供的 API 易于使用且兼容众多浏览器,这让诸如 HTML 文档遍历和操作.事件处理.动画和 Aj ...

  6. Redis常见面试题详解

    文章目录 1. Redis 1.1 Redis可以用来做什么? 1.2 Redis和传统的关系型数据库有什么不同? 1.3 Redis有哪些数据类型? 1.4 Redis是单线程的,为什么还能这么快? ...

  7. 深入剖析线程池基本原理以及常见面试题详解

    文章目录 面试官:能给我讲讲线程池的实现原理? 线程池类继承关系 ThreadPoolExecutor 核心数据结构 面试官:给我讲讲线程池的有哪些参数? 面试官:如何优雅的关闭线程? 线程的生命周期 ...

  8. JSP和Servlet常见面试题

    1. Servlet的生命周期? 装载Servlet类并创建实例阶段,该阶段在默认情况下发生在客户端第一次向服务器端发送请求 初始化阶段,servlet实例创建完成后,调用init(ServletCo ...

  9. Python常见面试题:TCP 协议中的三次握手与四次挥手相关概念详解

    今天来聊聊Python常见面试题中面试频率特别高的一个题目:TCP 协议中的三次握手与四次挥手. 涉及到的知识点有: 1.TCP.UDP 协议的区别 2.TCP 头部结构 3.三次握手与四次挥手过程详 ...

最新文章

  1. bootstraptable 汇总_JS组件系列——表格组件神器:bootstrap table
  2. 【bzoj1951】 Sdoi2010—古代猪文
  3. 含有自增字段的插入问题
  4. 关于 CSS3 backface-visiable 与 overflow 属性的冲突
  5. SQLite学习手册(内置函数)
  6. 【NLP】如何在文本分类任务中Fine-Tune BERT
  7. html mvc 分页 保存,Asp.net Mvc3 加载cshtml文件自定义分页+ 查询
  8. 【OpenCV 例程200篇】64. 图像锐化——Sobel 算子
  9. 刷题笔记2020-06-26
  10. python 测试mysql数据库_Python MySQL 数据库之测试索引
  11. bash shell 快捷键
  12. 谁的世界,哪一个梦想?
  13. android 隐藏系统音量的接口_Android9.0 系统默认配置清单
  14. 理解Liang-Barsky裁剪算法的算法原理
  15. shiro.crypto.CryptoException: Unable to correctly extract the Initialization Vector or ciphertext
  16. android 文本框,Android实现简单的圆形文本框
  17. 名利如过往云烟,知足就好
  18. 微信公众号扫码授权登录思路
  19. 什么是RFID技术?
  20. JavaCV依赖精简

热门文章

  1. Softmax及其损失函数求导推导过程
  2. mysql的week函数与JAVA计算周的差别问题
  3. C语言--Union类型的使用方法
  4. Java微服务面试题整理
  5. 数据挖掘与数据分析(快速入门)
  6. operator++()实现:前置++和后置++
  7. Word里表格跨页时自动断开,表格后留有空白部分,未布满整页,如何操作让表格上下页均匀布满?
  8. pwn题堆利用的一些姿势 -- IO_FILE
  9. 微信指数批量采集、导出
  10. [vdbench]vdbench典型配置