Java Web常见面试题

学习了MLDN李兴华老师的java web常见面试题的教程,现记录下来和大家分享一下,希望可以对将要面试的童鞋们有所帮助!


1.JSP有哪些内置对象?作用分别是什么?
一共有九个内置对象
pageContext javax.servlet.jsp.PageContext

request javax.servlet.http.HttpServletRequest

response javax.servlet.http.HttpServletResponse

session javax.servlet.http.HttpSession

application javax.servlet.ServletContext this.getServletContext()

config javax.servlet.ServletConfig

exception java.lang.Throwable

page java.lang.Object

out javax.servlet.jsp.JspWriter


作用:
1.pageContext 表示页容器 EL、标签、上传
2.request 服务器端取得窗户端的信息:头信息、Cookie、请求参数
3.response 服务器回应给客户端信息,Cookie,重定向
4.session 表示每一个用户,用于登陆验证上
5.application 表示整个服务器,getRealPath()
6.config 取得初始化参数,初始化参数在web.xml中配置
7.exception 表示是错误页的处理操作
8.page 如同this一样,表示整个jsp页面
9.out 输出,但是尽量使用表达式输出



2.JSP中有哪些动作,分别是什么。
所谓的动作实际上就是指的标签指令
<jsp:include>:包含
<jsp:forward>:跳转
<jsp:useBean>:使用javaBean
<jsp:getProperty>:取得属性
<jsp:setProperty>:设置属性,通过反射调用方法
<jsp:plugin>: 插入Applet程序代码



3.JSP中动态include与静态include的区别?
动态include:<jsp:include>,如果包含的是动态页,则先编译之后再进行处理
静态include:<%@include%>,直接将内容先包含后处理


4.两种跳转方式分别是什么?有什么区别?
 服务器端跳转:<jsp:forward>,跳转之后地址栏不改变,可以传递request 属性,实际是对RequestDispatcher接口的封装
客户端跳转:response.sendRedirect(),跳转之后地址栏改变


5、请总结一下WEB开发中的会话跟踪实现
1.session,也是最常用的一种
2.Coolie
3.地址重写
4.隐藏域



6、在Web开发中需要处理HTML时,应做什么样的处理,要筛选那些字符< > ' & 
&lt; & gt; &amp;等等


7.说明JSP中errorPage的作用、应用范围
表示错误页的操作,在一般的站点,只要一个程序出现了错误,就是产生了异常,则可以统一跳转到一个页面上进行显示,那么这种操作就属于错误页的处理,但是简单的错误页基本上都是在JSP的开发中使用的。
要想进行错误页的设置,需要满足以下两个条件:
1.在错误能够处理的页上的page指令中,增加:isErrorPage="true"
2.在每一个页面指定errorPage,指定isErrorPage为true的页面
<error-page>
<error-code>404</error-code>
<location>/errors.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.NullPointerException</exception-type>
<location>/errors.jsp</location>
</error-page>



8.写一个连接Oracle数据库的例子
PDF中


9.简述在JSP中是如何实现分页操作的。
首先一定要确定的是分页有两种:
真分页:性能较高,是基于数据库的操作,只是从数据库中取出部分的数据进行显示,所以性能高,但是可移植性低。
假分页:性能较低,是将全部的结果查询出来,之后依靠算法分页,只显示部分数据

实现原理:
定义一系列的变量:currentPage, lineSize, 并通过查询求了allRecorders和计算求出pageSize pageSize=(AllRecorders  + lineSize - 1)/lineSize
之后数据库查询语句中根据lineSize和currentPage进行数据的查询
Oracle中使用ROWNUM,mysql中使用limit()
之后通过表单不断的修改currentPage, lineSize就可以实现分页显示


10.介绍在JSP中如何使用JavaBean
JavaBean的格式要求:必须有包、public class 声明、属性封装、无参构造、setter\getter
import 语句导入或者通过<jsp:useBean>


11.说一说Servlet的生命周期
初始化,正常一次:对应init()方法,有两个init()其中一个是有ServletConfig对象,此方法存在则无参不调用,正常情况下第一次使用Servlet的时候才进行初始化的操作,当然也可以通过配置在容器启动的时候自动进行初始化<load-on-startup>
服务,服务多次:所有的服务器都由services()方法分配,主要有doGet()和doPost(),分别处理get和post请求
销毁,正常一次,调用destory()方法,如果一个Servlet长时间不用,也会自动销毁,而当再次使用的时候就必须重新进行初始化的操作


12.Servlet中forward()与redirect()的区别?
forward()方法是RequestDispatcher接口定义的,而redirect是response定义的,一个是服务器端跳转,另外一个是客户端跳转

13.MVC的各个部分都有哪些技术来实现?如何实现?
MVC:model view controller
model:JavaBean 业务处理、数据处理
view:显示的事JSP,最好不存在任何的scriptlet,可以使用标签消除
controller:控制,接收view传递的内容和调用javaBean,并根据javaBean的处理结果进行跳转
实现原理:所有的JSP将内容提交给Servlet,servlet接收这些内容并调用相应的JavaBean进行业务及数据的处理,一般javabean有专人负责开发,完成业务的操作流程,而servlet调用的只是接口,并根据这些接口的操作结果将内容交给JSP运行显示,但是显示的时候尽可能少出现Scriptlet代码


14.简述国际化程序的实现思路。
Locale属性文件、ResourceBunder
国际化程序的实现、是根据本机的操作系统的语言类型,选择不同的属性文件,所有程序的基本代码一样,但是文字显示不一定,所以将内容作用属性文件出现之后,可以只显示属性文件中的文字



15.描述JSP和Servlet的区别、共同点、各自应用的范围
先有的Servlet再有的JSP,Servlet是在java中嵌入HTML代码,而JSP是在HTML中嵌入JAVA代码
共同点:JSP可以完成的功能,Servlet都可以完成,但是对于过滤器、监听器只能由Servlet完成
应用范围:JSP用于显示,Servlet用于控制


16.简述web.xml的作用
属于部署描述符,在整个JAVA中只要是容器都会存在部署描述符,此部署描述符可以控制整个WEB中各个组件的运行状态,也可以配置整个窗口的状态
<error-page> <welcome-file-list> <servlet> <session-timeout><filter>



[谢谢MLDN!谢谢李兴华老师!]

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值