给大家整理了份Java面试题

1.说一说Servlet的生命周期?
a、Servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由javax.servlet.Servlet接口 的init(),service()和destroy方法表达。
b、Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的
doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。
c、web容器加载servlet,生命周期开始。通过调用servlet的init()方法进行servlet的初始化。通过调用service()方法实现,根据请
求的不同调用不同的do***()方法。结束服务,web容器调用servlet的destroy()方法。
2.jsp和servlet的区别、共同点、各自应用的范围?
JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。JSP编译后是“类servlet”。Servlet和JSP最主要的不同点在于:
Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩 展名
为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。在struts框架中,JSP位于MVC设计模式的视图层,而Servlet位于 控制层.
3.Servlet API中forward()与redirect()的区别?
a、从地址栏显示来说
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览
器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.所以redirect等于客
端向服务器端发出两次request,同时也接受两次response。
b、从数据共享来说
forward:转发页面和转发到的页面可以共享request里面的数据.redirect:不能共享数据.redirect不仅可以重定向到当前应用程序
的其他资源,还可以重定向到同一个站点上的其他应用程序中的资源,甚至是使用绝对URL重定向到其他站点的资源.forward方法
能在同一个Web应用程序内的资源之间转发请求.forward 是服务器内部的一种操作.redirect 是服务器通知客户端,让客户端重新
发起请求.所以,你可以说 redirect 是一种间接的请求, 但是你不能说"一个请求是属于forward还是redirect "。
c、从运用地方来说
forward:一般用于用户登陆的时候,根据角色转发到相应的模块.
redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等.
d、从效率来说
forward:高.
redirect:低.
4.request.getAttribute()和 request.getParameter()有何区别?
a、request.getParameter()取得是通过容器的实现来取得通过类似post,get等方式传入的数据。
b、getAttribute是返回对象,getParameter返回字符串
c、getAttribute()一向是和setAttribute()一起使用的,只有先用setAttribute()设置之后,才能够通过getAttribute()来获得
值,它们传递的是Object类型的数据。而且必须在同一个request对象中使用才有效。,而getParameter()是接收表单的get或者 post
提交过来的参数
5.MVC的各个部分都有那些技术来实现?如何实现?
MVC是Model-View-Controller的简写。Model代表的是应用的业务逻辑(通过JavaBean,EJB组件实现),View是应用
的表示面(由JSP页面产生),Controller是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,
处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。
6.jsp有哪些内置对象?作用分别是什么?
a、request 用户端请求,此请求会包含来自GET/POST请求的参数
b、response 网页传回用户端的回应
c、pageContext 网页的属性是在这里管理
d、session 与请求有关的会话期
e、application 封装服务器运行环境的对象; f、out 输出服务器响应的输出流对象;
g、config Web 应用的配置对象;
h、page JSP网页本身
i、exception 封装页面抛出异常的对象。
7.说一下 JSP 的 4 种作用域?
a、 page:代表与一个页面相关的对象和属性。
b、 request:代表与客户端发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个 Web 组件;需要在页面
显示的临时数据可以置于此作用域。
c、session:代表与某个用户与服务器建立的一次会话相关的对象和属性。跟某个用户相关的数据应该放在用户自己的sessio 中。
d、 application:代表与整个 Web 应用程序相关的对象和属性,它实质上是跨越整个 Web 应用程序,包括多个页面、请求和
会话的一个全局作用域。
8.session 和 cookie 有什么区别?
a、存储位置不同:session 存储在服务器端;cookie 存储在浏览器端。
b、安全性不同:cookie 安全性一般,在浏览器存储,可以被伪造和修改。
c、容量和个数限制:cookie 有容量限制,每个站点下的 cookie 也有个数限制。
d、存储的多样性:session 可以存储在 Redis 中、数据库中、应用程序中;而 cookie 只能存储在浏览器中。
9.说一下 session 的工作原理?
session 的工作原理是客户端登录完成之后,服务器会创建对应的 session,session 创建完之后,会把 session 的 id 发送给客
户端,客户端再存储到浏览器中。这样客户端每次访问服务器时,都会带着 sessionid,服务器拿到 sessionid 之后,在内存找到
与之对应的 session 这样就可以正常工作了。
10.JSP三大指令是什么?
Page :指令是针对当前页面的指令,Include :用于指定如何包含另一个页面,Taglib :用于定义和指定自定义标签。
11.http的响应码200,404,302,500表示的含义分别是?
200
- 确定。客户端请求已成功
302
- 临时移动转移,请求的内容已临时移动新的位置
404
- 未找到文件或目录
500
- 服务器内部错误
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值