Java Web面试题

1、Tomcat的优化经验?
去掉对web.xml的监视,把jsp提前编辑成Servlet,有富余物理内存的情况,加大Tomcat使用的JVM内存。

2、HTTP请求的GET与POST方式的区别?
GET在浏览器回退是无害的,而POST会再次提交请求。
GET产生的URI地址可以被Bookmark,而POST不可以。
GET请求会被浏览器主动cache,而POST不会,除非手动设置。
GET请求只能进行URI编码,而POST支持多种编码方式。
GET请求参数会被完整的保留在浏览器历史记录里,而POST参数不保留。
GET请求在URI传递的参数是有长度限制的,而POST没有
对参数的类型,GET只接受ASCII字符,而POST没有限制。
GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感数据。
GET参数通过URL传递,POST放在request body中。

3、解释一下什么是Servlet?
Servlet是使用Java Servlet应用程序接口(API)及相关类和方法的Java程序,所有的Servlet都必须要实现的核心接口是javax.servlet.servlet。每一个servlet都必须要直接或者间接实现这个接口,或者继承javax.servlet.GenericServlet或javax.servlet.HTTPServlet。
Servlet主要用于处理客户端传来的HTTP请求,并返回一个响应。

4、说一说Servlet的生命周期?
①创建Servlet实例
②Web容器调用Servlet的init()方法,对Servlet进行初始化。
③Servlet初始化后,将一直存在于容器中,用于响应客户端请求,根据客户端请求的方式通过Servlet中service()方法,去调用相应的doGet()或者doPost()方法。
④Web容器销毁Servlet时,调用Servlet的destroy()方法,通常在关闭容器时销毁Servlet。

5、请求转发和重定向的区别?
request.getRequestDispatcher(String url).forward(request,response);
request.getRequestDispatcher(String url).include(request,response);
response.sendRedirect(String url);
①请求转发是一个请求一次响应,而重定向会是两次请求两次响应。
②请求转发地址栏不变化,而重定向会显示后一个请求的地址。
③请求转发只能转发到本地项目其他servlet,而重定向不只能重定向到本项目其他servlet,还能定向到其他项目。
④请求转发是服务器端行为,只需要给出转发的servlet路径,而重定向需要给出request URI,即包含项目名。
⑤请求转发带值,重定向不带值。

6、什么情况下调用doGet和doPost?
JSP页面中的form标签里的method属性为get时,调用doGet(),为Post时调用doPost()方法。

7、request.getAttribute()和request.getParameter()有何区别?
①getAttribute表示从request范围取得设置的属性,必须要先setAttribute设置属性,才能通过getAttribute来取得,设置与取得的为Object对象类型。
②getParameter()表示接收参数,参数为页面提交的参数,包括:表单提交的参数,URL重写传的参数等,因此这个并没有设置参数的方法,而且接收参数返回的不是Object,而是String类型。

8、JSP有哪些动作?作用分别是什么?
①jsp:include:在页面被请求的时候引入一个文件。
②jsp:usrBean:寻找或者实例化一个JavaBean。
③jsp:setProperty:设置JavaBean的属性。
④jsp:getProperty:输出某个JavaBean的属性
⑤jsp:forward:把请求转到一个新的页面。
⑥jsp:plugin:根据浏览器类型为Java插件生成Object或Embed标记。

9、JSP有哪些内置对象?作用分别是什么?分别有什么方法?
JSP共有9个内置对象。

pageContext 网页的属性是在这里管理
request 用户端请求,此请求会包含来自GET/POST请求的参数
session 与请求有关的会话期
application 正在执行的内容
response 网页传回用户端的回应
out 用来传送回应的输出
config 的构架部件
page 网页本身
exception 针对错误网页,未捕捉的例外

request表示HttpServletRequest对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie, header, 和session数据的有用的方法。

response表示HttpServletResponse对象,并提供了几个用于设置送回浏览器的响应的方法(如cookies,头信息等)

out对象是javax.jsp.JspWriter的一个实例,并提供了几个方法,用于向浏览器回送输出结果。

pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。

session表示一个请求的javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信息

applicaton 表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的信息

config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。

page表示从该页面产生的一个servlet实例

exception表示JSP页面运行时产生的异常和错误信息,该对象只有在错误页面中才能使用(page指令中设定isErrorPage为true的页面才能使用)

10、JSP常用的指令?
page:针对当前页面的指令。
include:包含另一个页面
taglib:定义和访问自定义标签

11、JSP中动态的include与静态include的区别?
动态include用于jsp:include动作实现<jsp:include page = “include.jsp” flush = “true”/>它总是会检查所含文件的变化,适用于包含动态页面,并且可以带参数。
静态include用include伪码实现,不会检查所含文件的变化,适用于包含静态页面<%@include file=“include.html”%>.

12、两种跳转方式分别是什么?有什么区别?
<jsp:include page = “include.jsp” flush = “true”/>
<jsp:forward page = “nextpage.jsp”/>
前者页面不会转向include所指的页面,只是显示该页的结果,主页面还是原来的页面,执行完后还会回来,相当于函数调用,并且可以带参数,后者完全转向新页面,不会再回来,相当于go to语句。

13、页面间对象传递的方法?
request、session、application、cookie

14、JSP和Servlet有哪些相同点和不同点,联系是什么?
JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是"类Servlet",Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在java文件中,并且完全从表现HTML中分离出来,而JSP的情况是java和HTML可以组合成一个扩展名为.jsp的文件,JSP偏重于视图,Servlet偏重于业务逻辑。

15、MVC的各个部分都有哪些技术来实现?如何实现?
MVC是Model-View-Controller的简写。
Model代表的是应用的业务逻辑(通过Java Bean,EJB组件实现)。
View是应用的表示面(由JSP页面产生)。
Controller是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现,这些组件可以进行交互和重用。

16、 Servlet总结-servlet的主要接口、类

17、作用范围?

           范围		         JSP中的范围       EL表达式中的范围       范围大小
        PageContext          PageContext           PageScope		   降序
     HttpServletRequest        request            requestScope
        HttpSession            session            sessionScope
        ServletContext       application        applicationScope
  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值