Java WEB面试系列-05

2022年7月17日
大约 2 分钟

Java WEB面试系列-05

1. JSP 请求是如何被处理的?

浏览器首先要请求一个以.jsp扩展名结尾的页面,发起JSP请求,然后,Web服务器读取这个请求,使用JSP编译器把JSP页面转化成一个Servlet类。

需要注意的是,只有当第一次请求页面或者是JSP文件发生改变的时候JSP文件才会被编译,然后服务器调用servlet类,处理浏览器的请求。一旦请求执行结束,servlet会把响应发送给客户端。这里看下如何在JSP中获取请求参数。

2. 什么是 JSP 指令(Directive)?JSP 中有哪些不同类型的指令?

Directive是当JSP页面被编译成Servlet的时候,JSP引擎要处理的指令。Directive用来设置页面级别的指令,从外部文件插入数据,指定自定义的标签库。Directive是定义在 <%@ 和 %>之间的。

下面列出了不同类型的Directive:

  • 包含指令(Include directive):用来包含文件和合并文件内容到当前的页面。

  • 页面指令(Page directive):用来定义JSP页面中特定的属性,比如错误页面和缓冲区。

  • Taglib指令: 用来声明页面中使用的自定义的标签库。

3. 为什么 Java 中接口方法必须使用 public 修饰?

子类重写父类方法时,方法的访问权限不能小于原访问权限,在接口中,方法的默认权限就是public,所以子类重写后只能是public。

1)接口必须要具体类实现才有意义,所以必须是public。

2)接口中的属性对所有实现类只有一份,所以是static。

3)要使实现类为了向上转型成功,所以必须是final的。

1、接口是一种约束和规范,是一种更加更高级的抽象类,抽象类的方法必须是公开的,因为要给人继承和使用,不用public,别人如何看得到,所以在接口实现时,定义的方法修饰符必须是public;因此子类在实现接口重写方法时的修饰符必须是public。

2、另外再扩展一下,接口中没有变量(既然是约束和规范,怎么能够定义一个都可以改的东西?),只能是常量,接口中定义常量默认的修饰符为public static final。