日结面试题
Jsp的重定向和转发的流程有什么区别?
重定向是客户端行为,重定向时服务器产生两次请求,重定向时可以转发到项目以外的任何网址,重定向会导致request对象信息丢失
重定向的url会改变,response.getRedirect();
转发是服务器端行为, 转发产生一次请求,转发只能在当前项目里转发,转发不会导致request对象信息丢失
转发的url不会变,request.getRequestDispatch().forward()
Jsp和servlet的区别
jsp的可读性强,容易维护,并且jsp在最后会编译成servlet
servlet容易调试
重载与重写区别?
重载是同一个类中,方法名称相同, 但是参数或个数不同。与返回值没有关系。
重写方法的规则:
参数列表必须与重写的方法相同
返回的类型必须一致与被重写的方法的返回类型相同
访问修饰符的限制一定要大于被重写方法的访问修饰符
重写方法不能抛出新的检查异常或者比重写方法申明更加广泛的检查型异常
重载的规则:
必须有不同的参数列表
可以有不同的访问修饰符
可以有不同的返回值类型 参数列表不同就行了
可以抛出不同的异常
重写是在多个类中, 产生继承关系。父类与子类的方法方法必须相同。
接口与抽象类的区别?
区别:
抽象类和接口不能直接被实例化
抽象类要被子类继承 。接口要被类实现
接口中是静态变量,抽象类是普通变量
抽象类可以没有抽象方法
接口可以继承接口 ,并可以多继承接口
定义接口的关键字是:interface 而定义抽象类的关键字是:abstract。
接口中成员不能有私有, 抽象类可以私有。
接口中的不能有普通方法, 抽象类中可以有普通方法。
相同:
两个都不new
但是 接口与抽象类是面向对象必备知识,设计模式、重构代码有必然作用
List、Map、Set 三个接口,存取元素时,各有什么特点?
list:存储: 有序的 可重复的
访问:可以for循环,foreach循环,iterator迭代器 迭代。
set:存储:无序的 不重复的
访问:可以foreach循环,iterator迭代器 迭代
map:存储:存储的是一对一对的映射 ”key=value“,key值 是无序,不重复的。value值可重复
访问:可以map中key值转为为set存储,然后迭代这个set,用map.get(key)获取value
也可以 转换为entry对象 用迭代器迭代
九大内置对象:
application:应用程序对象 对整个web工程都有效
request:对当前请求的封装
pageConfig:只对当前页面有效,里面封装了基本request和session的对象
response:返回服务端信息给客户
page:当前页面对象
session:浏览当前会话 浏览器范围内有效
exception:错误页面的Exception对象
out:页面打印对象,在jsp页面打印字符串
Config:单个Servlet的配置对象,相当于ServletConfig对象
四大作用域:
application:整个程序浏览器的反问 只要浏览器不关闭 他就一直存在统计
session:建立当前会话 只要不关闭浏览器 会话一直存在
page:当前页面 跳出当前页面就失效
request:表示一次请求,在情趣的范围内有效
三大指令:
Page :指令是针对当前页面的指令
Include :用于指定如何包含另一个页面
Taglib :用于定义和指定自定义标签
七大动作:
Forward,执行页面跳转,将请求的处理转发到另一个页面
Param :用于传递参数
Include :用于动态引入一个jsp页面
Plugin :用于下载javaBean或applet到客户端执行
useBean :使用javaBean
setProperty :修改javaBean实例的属性值
getProperty :获取javaBean实例的属性值