MLDN魔乐科技-直击面试系列-破解Java面试题-2—Java+WEB面试题

Java Web面试题讲解

1、 JSP和Servlet在面试中出现的题目 2、 MVC设计模式

1、 JSP有哪些内置对象?作用分别是什么?

a) 一共有九个内置对象

pageContext javax.servlet.jsp.PageContext request javax.servlet.http.HttpServletRequest response javax.servlet.http.HttpServletResponse session javax.servlet.http.HttpSession

application config exception page out

javax.servlet.Servlet Context javax.servlet.ServletConfig java.lang.Throwable java.lang.Object

javax.servlet.jsp.JspWriter

-->可用this.getServletContext()替代

b) 作用:

1、pageContext 2、request 3、response 4、session 5、application 6、config 7、exception 8、page 9、out

表示页容器 -->EL、标签、上传

服务器端取得客户端的信息:头信息、Cookie、请求参数、MVC设计模式 服务器端回应给客户端信息:Cookie、重定向 表示每一个用户,用于登录验证上 表示整个服务器,getRealPath()

去的初始化参数,初始化参数在web.xml中配置 表示的是错误页的处理操作

如同this一样,表示整个JSP页面 输出,但是尽量使用表达式输出

2、JSP有哪些动作?作用分别是什么? 所谓的动作—>指标签指令: ·:包含 ·:跳转 ·:使用JavaBean ·:设置属性,通过反射调用方法 ·:取得属性 ·插入Applet程序的代码

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

4、两种跳转方式?区别? ·服务器跳转:,跳转之后地址栏不改变,可以传递request属性实际上是对RequestDispathcer接口的封装。 ·客户端跳转:response.sendRedirect(),跳转之后地址栏改变

5、请总结一下WEB开发中的绘画跟踪实现 1、session,也是最常用的一种 2、Cookie 3、地址重写

4、隐藏域

6、在Web开发中需要处理HTML标记是,应做什么样的处理,要筛选哪些字符(<、>、&、”、’)。 因为以上的标记都属于HTML范畴的内容,所以必须进行转义操作:<、>、"、&apos、&;

7、说明JSP中errorPage的作用,应用范围。 表示错误页的操作,在一般的站点中,只要一个程序出现了错误,就是产生了一场,则可以统一跳转到一个页面上进行显示,那么这种操作就属于错误页的处理,但是简单的错误页基本上都是在JSP的开发中使用的。 要想进行错误页的设置,需要满足以下两个条件:

1、 在错误能够处理的页上的page指令中,增加:isErrorPage=”ture”,表示可以处理错误。 2、 在每一个页面制定errorPage,进行isErrorPage为true的页面。

如果现在希望配置一种全局的错误处理的话,则可以在web.xml中进行配置。 404 /errors.jsp java.lang.NullPinterException /errors.jsp 一旦出现错误之后,会自动跳转到指定的页面中,但是这种跳转,永远是属于服务器端跳转。

8、写一段JDBC连接Oracle的程序,并实现数据查询。 a)步骤: ·定义一系列的全局常量:驱动路径、连接地址、用户名、密码 ·加载驱动程序 ·连接数据库 ·操作数据库:更新或查询 ·关闭数据库

c) 代码: <%@ page language=\<%@ page import=\ My JSP <% public static final String DBdriver = \ public static final String DBurl = \ public static final String DBuser = \ public static final String DBpassword = \ %> <% Connection conn = null;//连接数据库 PreparedStatement pstmt = null; ResultSet rs = null; String sql = \ %> <% %> Class.forName(DBdriver); conn = DriverManager.getConnetciton(DBurl,DBuser,DBpassword); pstmt = conn.preparedStatement(sql); rs = pstmt.excuteQuery(); while(rs.next()){ int empno = rs.getInt(1); String ename = rs.getString(2); String job = rs.getString(3); } rs.close(); pstmt.close(); conn.close(); 9、简述在JSP中是如何实现分页操作的。 a)首先分页有两种: ·真分页:性能较高,是基于数据库的操作,只是从数据库中提取出部分的数据进行显示,所以性能高,但是可移植性低。 ·假分页:性能较低,是将全部的结果查询出来,之后依靠算法分页,只是显示部分数据,因为使用的是通用的语法,所以可移植性高。 b)分页实现原理: ·定义一系列的变量:currentPage、lineSize、并通过查询求出allRecorders和计算求出pageSize; |-pageSize = (allRecorders + lineSize - 1)/lineSize ·之后数据库查询语句中根据lineSize和currentPage进行数据的查询; |-Oracle中使用rownum、Mysql中使用limit() ·之后通过表单不断地修改currentPage、lineSize就可以实现分页显示。

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

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

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

13、MVC的各个部分都有哪些技术来实现?如何实现?

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4