Java web简答题



1.<%@include %>和<jsp:include />的区别。


  • <%@include %>先包含后处理,只能包含静态文件
  • <jsp:include />先处理后包含,既可以包含静态文件又可以包含动态文件。

2.jsp技术是一种在WEB应用中开发动态交互性网页的技术,请阐述一下web程序的特点是什么?

  • Web程序运行在浏览器上
  • 易于修改和维护
  • 跨平台
  • 提供一致的用户界面
  • 使用HTTP协议通信

3.简述JSP的执行过程

  • 客户端发出请求
  • WEB服务器将JSP代码转译成Servlet源代码
  • Web容器将产生的源代码进行编译
  • Web容器加载编译后的代码并执行
  • 把执行结果响应至客户端

4.在JSP的动作元素中,<jsp:include >标签允许包含两种文件:动态文件和静态文件,在服务器对这两种文件进行解析执行时,有什么异同点。

  • 当文件是静态文件时,那么这种包含仅仅是把包含文件的内容加载到JSP文件中,这种被包含文件不会被JSP编译器执行。
  • 当文件是动态文件时,那么这个被包含文件会被JSP编译器执行。

5.<jsp:param >动作可以在哪些场合使用?起到什么作用?

  • 在传递参数的场合使用,可以用在本页面中也可以用在JavaBean中。可以用在<jsp:include >和<jsp:forward >动作体中。为动作提供附加信息。
  • 作用:用于指定参数和与其对应的值。

6.JSP中四种属性保存范围

  • Page范围:页面范围
  • Request范围:请求范围
  • Session范围:会话范围
  • Application范围:应用服务器范围

7.简述客户端跳转sendRedirect()方法和服务器端跳转<jsp:forward >在使用上有哪些异同。

  • (1) 相同点:都可以进行页面跳转
  • (2) 不同点:
  • sendRedirect方法
  • 客户端跳转,地址栏不改变
  • 所有代码执行完后执行跳转
  • 不保存request属性,但可以使用URL重写方式传参
  • <jsp:forward >
  • 服务端跳转,地址栏改变
  • 强制即时执行跳转
  • 保存request属性,使用<jsp:param >传参

8.JSP有几种页面之间传参数的方法,分别说明

  • request传参:request.setAttribute(“name”,”abc”);
  • session传参:session.setAttribute(“name”,”abc”);
  • application传参:application.setAttribute(“name”,”abc”);
  • JavaBean:
  • <jsp:param >:<jsp:param name=”abc”/>
  • URL传参
  • 提交表单

9.什么是JDBC;使用JDBC访问数据库的基本步骤?

  • JDBC是JavaDataBaseConnectivity,Java数据库连接,是一个JavaAPI,用于连接数据库,断开数据库,执行SQL,获得结果。
  • 步骤
  • 加载JDBC驱动
  • 创建数据库连接
  • 创建Statement对象
  • 执行SQL
  • 处理结果
  • 关闭创建的各个对象

10.什么是JavaBean,按照功能分为几种类型?为什么要使用VO?作为VO(值对象)的JavaBean如何编写;为什么使用DAO? DAO模式的意义是什么?

  • JavaBeann是用Java语言描述的一种软件组件模型,实际上就是一个Java类,可以提高Java代码的复用性。在JSP程序中常用来封装事物逻辑和数据库操作等。可以很好的实现业务逻辑和前台程序的分离,提高程序的健壮性和灵活性。
  • 分为实体Bean和业务逻辑Bean
  • 为什么要使用VO?:使用VO是为了在业务层进行数据交互。
  • 作为VO(值对象)的JavaBean如何编写?
  • 一个public类
  • 一个无参构造方法
  • getter/setter方法
  • 为什么要使用DAO?
    答:DAO模式提供了访问关系型数据库所需操作的接口,将数据访问和业务逻辑分离,对上层提供面向对象的数据访问接口。
  • DAO模式的意义:
  • 封装数据库操作,隔离了数据访问代码和业务逻辑代码。
  • 隔离了不同数据库实现。

11.JavaBean有几种保存范围

  • Page范围:保存在一页范围中
  • Request范围:保存在一次服务器跳转范围中
  • Session范围:在一次用户请求范围中保存
  • Application范围:在整个服务器上保存,服务器关系时才会消失。

12.将<jsp:setproperty >与<jsp:getproperty >分别转换成相应的Java代码

  • <jsp:setproperty name=”book” property=”name” value=”abc”>
    Java代码:book.setName(“abc”);
  • <jsp:getproperty name=”book” property=”name”>
    Java代码:out.println(book.getName())

13.什么是servlet? servlet与JSP之间的关系与区别。

  • Servlet是一个独立于平台的Java类,实际上就是一个按照Servlet规范编写的Java类。Servlet被编译成平台独立的字节码文件,能够被web服务器加载运行,可以生成动态的web界面。
  • 关系:JSP是Servlet技术的扩展
  • 区别:
  • Servlet完全是由Java程序代码构成的,擅长于流程控制和业务逻辑处理。通过servlet生成的动态web界面结构不够清晰,界面效果不能预览。
  • JSP是由HTML和JSP元素构成的,对页面的静态内容和动态内容进行了有效分离,可以方便地编写web动态界面。

14.servlet的生命周期有哪几个阶段,如何在编程中利用?

  • (1) Servlet类加载:servlet容器在servlet被第一次调用时生成,主要操作包括将servlet对应的class文件载入内存,该过程开发人员无法参与。
  • (2) 实例化servlet:调用servlet的init()方法。
  • (3) Servlet提供服务:调用servlet的service()方法。
  • (4) 销毁servlet:调用servlet的destroy()方法。

15.在servlet中,将当前请求跳转到“/demo.jsp”。分别编写代码实现服务器端跳转与客户端跳转。

16.什么是servlet过滤器?简述其基本原理

  • Servlet过滤器是一种可以插入的web组件,能够对web服务器接收到的客户端请求和向客户端发出的响应进行拦截过滤。过滤器支持对servlet程序和JSP界面的基本请求处理功能。
  • 基本原理:servlet作为过滤器使用时,它可以对客户的请求进行处理。处理完成后,它会交给下一个过滤器处理。这样,客户请求在过滤链里逐个处理,直到请求发送到目标位置。

17.什么是Ajax,其优点是什么?解释web编程中的异步请求;什么是XMLHttpRequest对象。编写ajax代码需要哪些步骤。

  • 什么是Ajax:异步JavaScript和XML,是一种无需重新加载整个页面的情况下就能更新部分网页的技术。
  • 优点:
  • 减轻服务器负担。
  • 实现了局部刷新更新界面,减少了用户的心理和实际等待时间。
  • 可以把以前一些服务器负担的工作转到客户端,利用客户端闲置的资源处理。
  • 什么是XMLHttpRequest对象:是一种浏览器内置对象,用于在后台和服务器交换数据。
  • 编写Ajax的步骤:
  • 在界面的JavaScript上创建以下函数:
  • 创建XMLHttpRequest对象。
  • 创建处理服务器响应结果的方法。
  • 开启B/S通道
  • 发送客户端请求
  • 自定义的方法,最后必须调用发送客户端请求的方法。
  • 在servlet或jsp上写服务器处理请求/响应的代码。

18.解释模式二(MVC模式)及其基本原理(文字及画图解释),与模式一的主要区别是什么?

  • 模式2是由JSP,Servlet,JavaBean组件分工协作共同完成系统功能的所有任务。
  • 原理:
  • 客户端请求首先发送到servlet。
  • Servlet通过连接数据库执行数据库操作。
  • 操作完成后再用JavaBean来封装执行结果。
  • 把结果保存在请求对象中。
  • 最后跳转到视图JSP界面中。
  • 区别:
  • 处理的主控部分不同。
  • 实现表现层的业务逻辑和数据层的分离程度不同。
  • 适用于动态交互处理的需求不同。