jsp简答题 联系客服

发布时间 : 星期日 文章jsp简答题更新完毕开始阅读51c1ab1f5e0e7cd184254b35eefdc8d376ee1488

1、简述JSP页面的运行原理(JSP页面的请求执行过程)。

(1) 当客户第一次请求JSP页面时,JSP引擎会通过预处理把JSP文件中的静

态数据(HTML文本)和动态数据(Java脚本)全部转换为Java代码。 (2) JSP引擎把生成的.java文件编译成Servlet类文件(.class)。

(3) 编译后的class对象被加载到容器中,并根据用户的请求生成HTML格式

的响应页面。

2、如果表单提交的信息中有汉字,接受该信息的页面应做怎样的处理? 解决中文乱码

在获取表单信息之前使用

setCharacterEncoding(String code)设置统一字符编码 request.setCharacterEncoding(“UTF-8”); 对获取的信息进行重新编码 new String(request.getParameter(“Name”).getBytes(“ISO-8859-1”),”UTF-8”); 3、请简单叙述<%@include%>、两者的区别。

<%@include%>:页面请求之前预编译,所有代码包含进来之后,一起进行处理,把所有代码合在一起,编译成一个servlet。

:所有代码分别处理,在页面被请求的时候才编译,被编译成多个servlet,页面语法相对独立,处理完成之后再将代码的处理结果组合起来。

PPT上答案为:

Include指令标记是先将JSP页面与所要嵌入的页面合并成一个新的JSP页面,然后再由JSP引擎将新页面转化为java文件处理并运行。

Include动作标记在把JSP页面转译成java文件时,并不合并两个页面;而是在java文件的字节码文件被家在执行时,才去处理include动作标记引入的文件。

4、分析下面连接数据库的程序代码,将正确的表达式或语句填入空白 import java.sql.*; public class DbUtil{

public static void main(String args[]){

Class.forName(\String uri=\

Connectioncon = DriverManager.getConnection(uri,\Statementst= con.createStatement();

ResultSetrs = st.executeQuery(\} }

请将上面的空填好,填完整这个程序后,这个程序有问题吗?应该怎样改正?

5、假设创建servlet的类是tom.jiafei.Dalian,创建的servlet对象的名字是myservlet,应该怎样配置web.xml?

myservlet

tom.jiafei.Dalian

myservlet

/lookhello

6、JSP有哪些内置对象,作用分别是什么?(至少列举4种)

out 页面输出

request 得到用户的请求信息

response 服务器向客户端的回应信息 session 用来保存每一个用户的信息 application 用来表示所有用户的共享信息 pageContext JSP的页面容器 config 服务器配置,可以取得初始化参数 page 表示从该页面中表示出来的一个servlet实例

exception 表示JSP页面所发生的异常,在错误页面才起作用 7、简述JSP中MVC模式的具体实现。

MVC是Model、View、Controller的缩写

模型:一个或多个JavaBean对象,用于存储数据(实体模型,由Java类创建)和处理业务逻辑(由一般的Java类创建)。

视图:一个或多个JSP页面,向控制器提交数据和为模型提供数据显示。JSP页面主要使用HTML标记和JavaBean标记来显示数据。

控制器:一个或多个Servlet对象,根据视图提交的请求进行控制,即把请求转发给业务逻辑的JavaBean,并将处理结果放到实体模型JavaBean中,输出给视图显示。

8、JavaBean是什么?有哪些分类以及作用?请描述。

JavaBean组件就是利用Java语言编写的组件。它好比一个封装好的容器,使用者并不知道其内部是如何构造的,但它却具有适应用户要求的功能。每个JavaBean都实现了一个特定的功能,通过合理地组织不同功能的JavaBean,可以快速生成一个全新的应用程序。

JavaBean可分为可视化JavaBean和不可视化JavaBean两类: (1) 可视化JavaBean:就是具有GUI图形用户界面的JavaBean。

(2) 不可视化JavaBean:就是没有GUI图形用户界面的JavaBean,最终对用

户是不可见的。它更多地是被应用到JSP中。

9、Tag文件中的attribute指令和variable指令各有什么作用,请描述其使用方法。

使用attribute指令可以动态地向该Tag文件传递对象的引用。

<$@ attribute name=”对象名字” request=”true”|”false” type=”对象的类型”%> 使用variable指令可以将Tag文件中的对象返回给调用该Tag文件的JSP页面。 <%@ variable name-given=”对象名字”variable-class=”对象的类型”scope=”有效范围”%>

10、简述Servlet的生命周期与运行原理。

Servlet生命周期:Servlet加载?实例化?服务?销毁 (1) 初始化servlet对象

当servlet对象第一次被请求加载时,服务器会创建一个servlet对象,该对象调用init方法完成必要的初始化工作 (2) Service方法响应请求

创建的servlet对象再调用service方法响应客户的请求 (3) Servlet对象死亡

当服务器关闭时,servlet对象调用destroy方法使自己消亡

Servlet运行原理:

当客户端浏览器向服务器请求一个Servlet时,服务器收到请求后,首先到容器中检索与请求匹配的Servlet实例是否已经存在。 --若不存在,则Servlet容器负责加载并实例化出该类Servlet的一个实例对象,接着容器框架负责调用该实例的init()方法对实例做一些初始化工作,然后Servlet容器运行该实例的service()方法。 --若Servlet实例已经存在,则容器框架直接调用该实例的service()方法。 Service()方法在运行时,自动派遣运行与用户请求相对应的doXX()方法来响应用户发起的请求。 通常,每个Servlet类在容器中只存在一个实例,每当请求到来时,则分配一条线程来处理该请求。

11、简述forward动作标记和response.sendRedirect()两种跳转方式的区别。

forward为服务器端跳转,浏览器地址不变

sendRedirect为客户端跳转,浏览器地址栏改变为新页面的URL

12、分别应用include指令和include动作标记在一个jsp页面中包含一个文件(如a.txt)。

include指令:

<%@ include file=”a.txt”%> include动作标记:

13、如果用户长时间不操作session对象,用户的session对象会消失吗?用户关闭浏览器后,用户的session对象会消失吗?如何延长session的过期时间?

(1) 会消失。在一定时间内(系统默认在30min内),如果客户端不向服务器

发出应答请求,session对象就会自动消失。

(2) 会消失。从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览

器离开这个服务器结束,被称为一个会话。可以利用此特性来保存每个用户信息。当一个客户登录一个网站时,系统将为用户生成一个独一无二的会话对象,用以记录该用户的个人信息,一旦该用户退出网站,该会话对象将会被注销。

(3) 进行会话超时设置。利用setMaxInactiveInterval(int interval)方法以秒为单

位设置超时时间。

14、请写出在设置JavaBean属性和获取JavaBean属性时所使用的动作标记以及使用方法,并对参数做简单描述。

设置JavaBean属性的动作

获取JavaBean属性的动作

name属性用来指定一个存在JSP中某个范围中的JavaBean实例 property储存用户在JSP输入的所有值,用于匹配Bean中的属性

15、执行SQL语句时创建的Statement对象主要有那两种,其区别是什么?

方法executeQuery用于产生单个结果集的语句,例如select语句。 方法executeUpdate用于执行insert、update或delete语句以及SQL DDL(数据定义语言)语句。

16、什么是AJAX?请写出一种利用jQuery发送AJAX请求的例子(get、post列举一个即可)。

Ajax是Asynchronous JavaScript and XML的缩写,意思是异步的JavaScript与

XML。Ajax并不是一种新的语言或技术,它是JavaScript、XML、CSS、DOM等多种已有技术的组合,它可以实现客户端的异步请求操作。这样可以实现在不需要刷新页面的情况下与服务器通信,从而减少了用户的等待时间。 17、JSP中常用的动作标记有哪些?请列举至少两个,并简单描述其作用。

include动作标记:允许包含动态和静态文件。如果包含的是静态文件,那么只将静态文件的内容加到JSP网页中;如果包含进来的为动态文件,那么这个被包含的文件也会被JSP容器编译执行。

forward动作标记:将客户端所发出来的请求,从一个JSP网页转交给另一个JSP网页。

param动作标记:以“键-值”对的形式为对应页面传值。(该标记不能单独使用,必须作为include、forward动作标记的子标记来使用) 18. 简述JavaBean的4个作用域,并分别说明其作用范围。

page:仅在当前页面有效 request:请求范围 session:会话范围 application:全局范围

19.列举request对象提供的获取客户端信息的方法,以及设置信息的方法。

getMethod():获取客户端向服务器传送数据的方法

getParameter(String name):获取客户端传送给服务器端的有name指定的参数值

getParameterNames():获取客户端传送给服务器端的所有参数的名字 getRequestURL():获取发出请求字符串的客户端地址 getRemoteAddr():获取客户端的IP地址 getRemoteHost():获取客户端的名字实例

getProtocol():获取客户端向服务器端传送数据所依据的协议名称 getServletPath():获取客户端所请求的脚本文件的路径 设置信息的方法:

setAttrubute(String name,Object object) 20. 简述Servlet的生命周期。

Servlet生命周期:Servlet加载?实例化?服务?销毁 (4) 初始化servlet对象

当servlet对象第一次被请求加载时,服务器会创建一个servlet对象,该对象调用init方法完成必要的初始化工作 (5) Service方法响应请求

创建的servlet对象再调用service方法响应客户的请求 (6) Servlet对象死亡

当服务器关闭时,servlet对象调用destroy方法使自己消亡