JavaWeb相关面试题!
- 2019 年 10 月 5 日
- 筆記

- 简述Servlet和JSP的关系
答∶JSP是以另外一种方式实现的Servlet,Servlet是JSP的早期版本,在JSP中,更加注重页面的表现,而在Servlet中则更注重业务逻辑的实现。
因此,当编写的页面显示效果比较复杂时,首选是JSP。或者在开发过程中,HTML代码经常发生变化,而Java代码则相对比较固定时,可以选择JSP。而我们在处理业务逻辑时,首选则是Servlet。 同时,JSP只能处理浏览器的请求,而Servlet则可以处理一个客户端的应用程序请求。因此,Servlet加强了Web服务器的功能。
- 简述Servlet的生命周期。(企业笔试题)
答∶Servlet运行机制和Applet类似,Servlet是载服务器端运行的,但是Applet是在客户端运行的。Servlet是javax.servlet包中HttpServlet类的子类,由服务器完成该子类的创建和初始化。
Servlet的生命周期主要由3个过程组成。
1、init()方法:服务器初始化Servlet。
2、service()方法:初始化完毕,Servlet对象调用该方法相应客户的请求。
3、destroy()方法:调用该方法消灭Servlet对象。
其中,init()方法只在Servlet第一次被请求加载的时候被调用一次,当有客户再请求Servlet服务时,Web服务器将启动一个新的线程,在该线程中,调用service方法相应客户的请求。
- jsp有哪些内置对象?作用分别是什么?
答∶JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):
request |
用户端请求,此请求会包含来自GET/POST请求的参数 |
---|---|
response |
网页传回用户端的回应 |
pageContext |
网页的属性是在这里管理 |
application servlet |
正在执行的内容 |
config servlet |
构架部件 |
session |
与请求有关的会话期 |
out |
用来传送回应的输出 |
page JSP |
网页本身 |
exception |
针对错误网页,未捕捉的例外 |
- jsp有哪些动作?作用分别是什么?
答∶JSP共有以下6种基本动作
jsp:include |
在页面被请求的时候引入一个文件。 |
---|---|
jsp:useBean |
寻找或者实例化一个JavaBean。 |
jsp:setProperty |
设置JavaBean的属性。 |
jsp:getProperty |
输出某个JavaBean的属性。 |
jsp:forward |
把请求转到一个新的页面。 |
jsp:plugin |
根据浏览器类型为Java插件生成OBJECT或EMBED标记 |
- MVC的各个部分都有那些技术来实现?如何实现?
答∶MVC是Model-View-Controller的简写。"Model" 代表的是应用的业务逻辑
(通过JavaBean,EJB组件实现), "View" 是应用的表示面(由JSP页面产生),
"Controller" 是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。
- 转发和重定向的区别
答∶
forward方式:request.getRequestDispatcher("/somePage.jsp").forwardrequest, response);
redirect方式:response.sendRedirect("/somePage.jsp");forward是服务器内部重定向, 程序收到请求后重新定向到另一个程序,客户机并不知道;redirect则是服务器收到请求后发送一个状态头给客户,客户将再请求一次,这里多了两次网络通信的来往。当然forward也有缺点,就是forward的页面的路径如果是相对路径就会有些问题了。
forward 会将 request state , bean 等等信息带往下一个 jspredirect 是送到 client 端后再一次 request ,所以资料不被保留.使用 forward 你就可以用 getAttribute() 来取的前一个 jsp 所放入的 bean 等等资料
- 使用HTTP协议将客户端的请求传送到服务器端有哪两种方式?请简述它们的区别
答∶1) get是从服务器上获取数据,post是向服务器传送数据。
2) 在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。
3) 对于get方式,服务器端用request.getQueryString()可以获取GET请求参数的变量值,对于post方式,服务器端用request.getParameter获取提交的数据。
4) GET方式提交的数据最多只能有1024字节,而POST则没有此限制。
5) 安全性问题。正如在(1)中提到,使用 Get 的时候,参数会显示在地址栏上,而 Post 不会。所以,如果这些数据是中文数据而且是非敏感数据,那么使用 get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用 post为好。
- jsp主要内置对象有?
答∶
request |
---|
response |
out |
exception |
session |
application |
config |
pageContext |
page |
- 请简述Cookie, Session 和Application它们的区别
答∶1) Cookie会在客户端硬盘上创建Cookie文件
2) Session大部分情况下会在服务器端硬盘上写入Cookie文件
3) Cookie安全性最低
4) Application 表示Servlet上下文环境,在整个WEB应用中只有一个Application对象,用于存储些全局性的数据
- 三个Statment区别,用法
答∶Statment,基本的;PreparedStatement是可编译的,提高效率,callablestatment,存储过程
- 什么是mvc模式?
答∶是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
模型 |
model |
---|---|
视图 |
view |
控制器 |
controller |
Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。
View(视图)是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。
Controller(控制器)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。