java ee基础面试

来源:互联网 发布:淘宝客怎么赚鹊桥佣金 编辑:程序博客网 时间:2024/05/25 18:12

1.Servlet的生命周期

初始化:Web容器加载servlet,调用init()方法

处理请求:当请求到达时,运行其service()方法。service()自动派遣运行与请求相对应的doXXX(doGet或者doPost)方法。

销毁:服务结束,web容器会调用servlet的distroy()方法销毁servlet。

2.get提交与post提交的区别

1.获取数据和提交数据 2.请求参数的位置不同 3.请求参数的大小限制 4.servlet处理参数的方法不同

3.Servlet与jsp的区别

Servlet是服务器端的程序,动态生成html页面发送到客户端,但是这样程序里会有很多out.println(),Java与html语言混在一起

很乱,所以后来sun公司推出了JSP.其实JSP就是Servlet,每次运行的时候JSP都首先被编译成servlet文件,然后再被编译成

.class文件运行。有了jsp,在MVC项目中servlet不再负责动态生成页面,转而去负责控制程序逻辑的作用,控制jsp与javabean

之间的流转。

4.request.getAttribute()和request.getParameter

(1)有setAttribute,没有setParameter方法

(2)getParameter获取到的值只能是字符串,不可以是对象,而getAttribute获取到的值是Object类型的。

(3)通过form表单或者url来向另一个页面或者servlet传递参数的时候需要用getParameter获取值;getAttribute只能获取setAttribute的值

(4)setAttribute是应用服务器把这个对象放到该页面所对应的一块内存当中,当你的页面服务器重定向到另一个页面的时候,应用服务器

会把这块内存拷贝到另一个页面对应的内存当中。通过getAttribute可以取得你存下的值,当然这种方法可以用来传对象。

用session也是一样的道理,这是说request和session的生命周期不一样而已。


5.jsp的三个指令

jsp指令控制jsp编译器如何生存Servlet (page,include,taglib指令)


6.jsp动作

JSP动作是一系列可以调用内建于网络服务器中的功能的XML标签。

使用标签的形式来表示一段代码如: <jsp:include page="2.jsp"></jsp:include>

<jsp:include > 动态包含

<jsp:forward> 请求转发

<jsp:param> 设置请求参数

<jsp:useBean> 创建一个对象

<jsp:setProperty> 给指定的对象属性赋值

<jsp:getProperty> 取出指定对象的属性值


7.四大域对象

PageContext : pageConext 存放的数据在当前页面有效。开发时使用较少。

ServletRequest: request  存放的数据在一次请求(转发)内有效。使用非常多。

HttpSession: session 存放的数据在一次会话中有效。使用的比较多。如:存放用户的登录信息,购物车功能。

ServletContext: application 存放的数据在整个应用范围内都有效。因为范围太大,应尽量少用。


8.Servlet是安全的吗?当service有一个实例变量,doGet和doPost去调用这个变量,会出现什么问题,你是如何解决的

是线程不安全的,因为servlet是单例模式,当多个客户端共同访问的时候线程不安全。尽量用局部变量,同步块,如果当前字段是不会改变的,用final修饰








0 0
原创粉丝点击