题号 | 答案 |
---|---|
1 | C |
2 | A |
3 | A |
4 | A |
5 | A |
6 | A |
7 | B |
8 | C |
9 | B |
10 | A |
11 | A |
12 | A |
13 | A |
14 | A |
15 | C |
简答题:
1.在JSP中,<% int a = 3; %>与<%! int b = 3; %>中定义的变量有何不同?若要在某一JSP页面中定义一个方法void f(), 应用什么样的语法?
答:a为局部变量,b为全局变量;
定义语法:
<%!
修饰符 返回值 函数名(参数){
函数体....
}
%>
2.Jsp中的静态包含与动态包含语法以及区别是什么?
答:静态包含:<%@ include file="被包含的文件地址"%>
动态包含:
区别:
1静态包含将多个页面的内容合并后输出,多个jsp页面生成一个java文件,编译成一个class文件;
动态包含将多个页面的内容合并后输出,多个jsp页面生成多个java文件,编译成多个class文件(被包含的页面编译处理后将结果包含在页面中)。
2静态包含只能引入遵循JSP格式的文件,被引入文件与当前JSP文件需要共同合并才能翻译成一个Servlet源文件;
动态包含要引入的资源与当前JSP页面是两个彼此独立的执行实体,即被动态引入的资源必须能被Web容器独立执行。
3静态包含引入的资源是在编译时期包含的,包含的是源代码; 动态包含引入的资源是在运行时才包含的,而且只包含运行结果。
4静态包含在编写代码的时候一般放在最顶部,主要附加的是被重用的代码;
动态包含导入一个重用文件的时候,这个文件是经过编译的,通俗点说就是附加这个要导入文件经过编译后的效果,所以可以含有与当前jsp程序中重复的内容,因为在附加过来之前就会被解析掉。
5静态包含可以认为 这两个页面代码是写在同一个页面里; 动态包含:当向这个页面发出请求后。会转发到 include的哪个页面去执行。 执行完了后又接着执行本页面余下的代码。
3.简述jsp九大内置对象以及其对应的功能
答:request内置对象:request内置对象中包含了有关浏览器请求的信息,并提供了多个用于获取cookie、header以及session内数据的方法。
response内置对象:它是用于响应客户请求,向客户端输出信息。
page内置对象:就是指当前JSP页面本身
session内置对象:session是与请求有关的会话期,用来表示和存储当前页面的请求信息。
application内置对象:application用于实现用户之间的数据共享(多使用于网络聊天系统)。
out内置对象:用于向页面输出打印信息;
exception内置对象:exception内置对象是用来处理页面出现的异常错误
config内置对象:在Servlet初始化的时候,JSP引擎通过config向它传递信息。
pageContext内置对象:使用它可以访问到本页面中所有其他对象
4.简述转发和重定向的区别
答:转发使用的是request对象,当浏览器请求到达servlet时候不会结束,而是等待处理完成之后继续跳转一次页面,因为request是一个作用域,故可以将信息携带到指定的参数到指定的页面中去。
当请求传达到servlet的时候,我们会同样可以通过response对象去跳转到新的页面,但是这种跳转不能携带参数,因为response没有域对象,相当于服务器重新做了一个新的url,和原来的对象没有什么关系了,实际上发生了新的资源定位,重定向发生了两次的资源的跳转。
5.简述session与cookie的区别
答:作用范围不同,Cookie 保存在客户端(浏览器),Session 保存在服务器端。
存取方式的不同,Cookie 只能保存 ASCII,Session 可以存任意数据类型,一般情况下我们可以在 Session 中保持一些常用变量信息,比如说 UserId 等。
有效期不同,Cookie 可设置为长时间保持,比如我们经常使用的默认登录功能,Session 一般失效时间较短,客户端关闭或者 Session 超时都会失效。
隐私策略不同,Cookie 存储在客户端,比较容易遭到不法获取,早期有人将用户的登录名和密码存储在 Cookie 中导致信息被窃取;Session 存储在服务端,安全性相对 Cookie 要好一些。
存储大小不同, 单个 Cookie 保存的数据不能超过 4K,Session 可存储数据远高于 Cookie。
6.简述servlet的生命周期
答:共三个步骤即:初始化------>处理请求------>销毁
创建Servlet对象后---------->初始化(调用 init () 方法)--------->处理/响应客户端的请求(调用 service() 方法)--------->销毁(调用 destroy() 方法,最后由 JVM 的垃圾回收器进行垃圾回收)
7.简述filter的执行过程
答:Filter对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后Filter再对服务器响应进行后处理。
8.在servlet如何获取application,session,config?
答:session可以通过request.getSession();来获取
application可以通过this.getServletContext()来获取
Config可以通过this.getServletConfig ()来获取;
9.简述tomcat 各个目录的功能
答:bin目录主要是用来存放tomcat的命令
conf目录主要是用来存放tomcat的一些配置文件。
lib目录主要用来存放tomcat运行需要加载的jar包。
logs目录用来存放tomcat在运行过程中产生的日志文件,非常重要的是在控制台输出的日志。
temp目录用户存放tomcat在运行过程中产生的临时文件。
webapps目录用来存放应用程序,当tomcat启动时会去加载webapps目录下的应用程序。可以以文件夹、war包、jar包的形式发布应用。
work目录用来存放tomcat在运行时的编译后文件,例如JSP编译后的文件。
清空work目录,然后重启tomcat,可以达到清除缓存的作用。
10.简述jsp的执行过程
答: 当用户通过浏览器访问Tomcat上的JSP页面时,Web应用服务器使用JSP引擎对该页面进行编译 (.class文件)和 执行 ,然后将执行结果(静态页面代码)返回给客户端浏览器,最后浏览器解释执行返回的结果呈现给用户。
编程题:
SELECT sno ,
MAX(CASE course WHEN '数学' THEN score ELSE 0 END ) 数学,
MAX(CASE course WHEN '英语' THEN score ELSE 0 END ) 英语
FROM sc
GROUP BY sno;