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 >传参
- sendRedirect方法
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上写服务器处理请求/响应的代码。
- 在界面的JavaScript上创建以下函数:
18.解释模式二(MVC模式)及其基本原理(文字及画图解释),与模式一的主要区别是什么?
- 模式2是由JSP,Servlet,JavaBean组件分工协作共同完成系统功能的所有任务。
- 原理:
- 客户端请求首先发送到servlet。
- Servlet通过连接数据库执行数据库操作。
- 操作完成后再用JavaBean来封装执行结果。
- 把结果保存在请求对象中。
- 最后跳转到视图JSP界面中。
- 区别:
- 处理的主控部分不同。
- 实现表现层的业务逻辑和数据层的分离程度不同。
- 适用于动态交互处理的需求不同。