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

内容发布更新时间 : 2024/11/17 23:31:13星期一 下面是文章的全部内容请认真阅读。

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的各个部分都有哪些技术来实现?如何实现?