JSP Web应用开发面试题与答案

1、Servlet执行时一般实现哪几个方法?
   答:Servlet执行时一般实现哪几个方法?
  (1)public void init(ServletConfig config)
  (2)public ServletConfig getServletConfig()  
  (3)public String getServletInfo()
  (4)public void service (ServletRequest request,
       ServletResponse response)
  (5)public void destroy()

2、说出Servlet的生命周期,并说出Servlet和CGI的区别。
   答:Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service()方法,service()方法自动运行与请求对应的doXXX方法(doGet,doPost)等,服务器决定将实例销毁的时候调用destroy()方法。
    与CGI的区别在于:Servlet处于服务器进程中,它通过多线程方式运行其service()方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于Servlet。  

3、说说forward 和redirect的区别。

   答:forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。

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

4、什么情况下调用doGet()和doPost()?
   答:JSP页面中的form标签里的method属性为get时调用doGet(),为post时调用doPost()。

5、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
   答:JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是“类servlet”。
   Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为“.jsp”的文件。JSP侧重于视图,Servlet主要用于控制逻辑。

6、JSP中动态INCLUDE与静态INCLUDE的区别?
   答:动态INCLUDE用jsp:include动作实现 它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数,其代码为:
<jsp:include page="included. jsp" flush="true" />
   静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面,其代码为:
<%@ include file="included.htm" %> 

7、四种会话跟踪技术分别是什么?
   答:会话作用域Servlets JSP 页面描述分别为:
  (1)page是代表与一个页面相关的对象和属性。一个页面由一个编译好的 Java servlet表示。这既包括servlet又包括被编译成servlet的JSP页面。
  (2)request是代表与Web客户机发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个Web组件(由于forward指令和include 动作的关系)。
  (3)session是代表与用于某个Web客户机的一个用户体验相关的对象和属性。一个 Web 会话可以也经常会跨越多个客户机请求。
  (4)application是代表与整个Web应用程序相关的对象和属性。这实质上是跨越整个Web应用程序,包括多个页面、请求和会话的一个全局作用域。 

8、JSP有哪些动作?作用分别是什么? 
   答:JSP共有以下6种基本动作: 
  (1)jsp:include表示在页面被请求的时候引入一个文件。 
  (2)jsp:useBean表示寻找或者实例化一个JavaBean。 
  (3)jsp:setProperty表示设置JavaBean的属性。 
  (4)jsp:getProperty表示输出某个JavaBean的属性。 
  (5)jsp:forward表示把请求转到一个新的页面。 
  (6)jsp:plugin表示根据浏览器类型为Java插件生成OBJECT或EMBED标记。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
常考面试题 1.讲下servlet的执行流程。 Servlet的执行流程也就是servlet的生命周期,当服务器启动的时候生命周期开始,然后通过init()《启动顺序根据web.xml里的startup-on-load来确定加载顺序》 方法初始化servlet,再根据不同请求调用doGet或doPost方法,最后再通过destroy()方法进行销毁。 2.Get和Post的区别 在页面提交数据时,get的数据大小有限制4k,post没有限制,get请求提交的数据会在地址栏显示,post不显示,所以post比get安全. 3.有三台服务器,如果在一台服务器上登陆了这个用户,其他两台就不能再登陆这个用户,使用session共享,你是怎么做的。 把所有的session的数据保存到Mysql服务器上,所有Web服务器都来这台Mysql服务器来获取Session数据。 4.写一个自定义标签要继承什么类 SimpleTagSupport,一般调用doTag方法 或者实现SimpleTag接口 5.Jsp如何处理json 在 jsp 中处理 JSON,通常需要配套使用 JQuery 控件,并且导入一些 Common jar 包。 使用 JQuery 控件是因为它能有效的解析并且展示 JSON 数据, 导入Common 则是因为 Java 中的对象并不是纯粹的数据,需要通过这些 Jar 包的处理使之转化成真实数据。 6.如何处理Servlet的线程不安全问 1.最简单的就是不使用字段变量, 2.使用final修饰变量, 3.线程安全就是多线程操作同一个对象不会有问,线程同步一般来保护线程安全, 所以可以在Servlet的线程里面加上同步方法或同步块。 (Synchronized)可以保证在同一时间只有一个线程访问,(使用同步块会导致性能变差,最好不去使用实例变量) 7.Jsp的重定向和转发的流程有什么区别 重定向是客户端行为,转发是服务器端行为 重定向时服务器产生两次请求,转发产生一次请求,重定向时可以转发到项目以外的任何网址,转发只能在当前项目里转发 重定向会导致request对象信息丢失。转发则不会 转发的url不会变,request.getRequestDispatch().forward() 重定向的url会改变,response.getRedirect().sendRedirect();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值