Web面试题

来源:互联网 发布:ubuntu 复制命令 编辑:程序博客网 时间:2024/05/18 10:16

壹、Collection Collections 的区别?

         前者是集合接口,后者是工具类。

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

         一共有九个内置对象,

         1pageContext                      javax.servlet.jsp.PageContext

       2request                                   javax.servlet.http.HttpServletRequest(接口) →父接口ServletRequest

         3response                               javax.servlet.http.HttpServletResponse   

         4session                                   javax.servlet.http.HttpSession

         5application                           javax.servlet.ServletContext       可以使用this.getServletContext()方法 替代application对象

         6config                                               javax.servlet.ServletConfig

         7exception                                       java.lang.Throwable

         8page                                        java.lang.Object

         9out                                         javax.servlet.jsp.JspWriter

作用:

         1pageContext                      表示页容器                      EL、标签、上传

       2request                                   服务器端取得客户端的信息:头信息、Cookie、请求参数      3response                               服务器端回应给客户端信息:Cookie、重定向

         4session                                   表示每一个用户,用于登陆验证上

         5application                           表示整个服务器,最常用的一个方法getRealPath(),获得页路径

         6config                                               取得初始化参数,初始化参数在web.xml中配置

         7exception                                       表示的是错误页的处理操作。

         8page                                       如同this一样,表示整个JSP页面

         9out                                         输出,但是尽量使用表达式输出

 

叁、JSP有哪些动作?作用分别是什么?

         所谓的动作实际上就是指的是标签指令:

                   <jsp:include>:包含.

                   <jsp:forward>跳转

                   <jsp:userBean>: 使用userBean

                   <jsp:setProperty>:设置属性,通过反射调用方法。

                   <jsp:getProperty>:取得属性

                   <jsp:plugin>: 插入Applet程序的代码.

 

肆、JSP中的动态include与静态include的区别?

         动态include<jsp:include>, 如果包含的是动态页,则先编译之后再进行处理。

         静态include<%@ include %>,直接将内容先包含后处理。

 

伍、两种跳转的方式分别是什么?有什么区别?

         1.服务器端跳转:<jsp:forward>,跳转之后地址栏不改变,可以传递request属性,实际上是对RequestDispatch接口的封装。传递参数值不会丢失

         2.客户端跳转:response.sendRedirect(),跳转之后地址栏发生改变,传递参数值会丢失

 

 

陆、总结一个WEB开发中回话跟踪实现。

         1.session: 也是最常用的一种。

         2.Cookie:

         3.地址重写

         4.隐藏域

 

柒、WEB开发中的字符(<>&)怎么处理?

         因为以上的俄标记都属于HTML范畴的内容,所以必须 进行转义操作:&lt&gt&quot&apos&amp.

 

捌、说明JSPerrorPage的作用,应用范围?

         表示错误页的操作,在一般的站点中,只要一个程序出现了错误,就是产生了异常,则可以统一跳转到一个页面上进行显示,那么这种操作就属于错误也的处理,但是简单的错误也基本上都是在JSP的开发中使用的。

1、  在错误能够处理的页上的page指令中,增加:isEooroPage=”true”,表示可以处理错误。

2、  在每一个页面指定errorPage,指行isErrorPagetrue的页面。

如果现在希望配置一种全局的错误处理的话,则可以在web.xml中进行配置。

一旦出现错误之后,会自动跳转到指定的页面中,但是这种跳转,永远是属于服务器端跳转。

 

玖、写一段JDBC链接Oracle的程序,并实现数据查询。

A:步骤:

1.       定义一系列的全局常量:驱动路径、连接地址、用户名、密码

2.       加载驱动程序

3.       连接数据库

4.       操作数据库:更新或查询

5.       关闭数据库

代码:

         <%

                   Public static final String Driver=”oracle.jdbc.driver.OracleDriver”;

                   Public static final String url=”jdbc:oracle:thin:@localhost:1521:MLDN”;

                   Public static final String username=”scott”;

                   Public static final String userpass=”tiger”;

%>

<%

                   Connection conn=null;                        //数据库连接

                   PreparedStatement ps=null;

                   ResultSet rs=null;

                   String sql=”select empno,ename,job from emp”;

%>

<%

                   Class.forName(Driver);

Conn=DriverManager.getConnection(url,username,userpass);

                   Ps=conn.preparedStatement(sql);

                   Rs=pstmt.executeQuery();

While(rs.next()){

                            Int empno=rs.getInt(1);

                            String ename=rs.getString(2);;

                            String job=rs.getString(3);

}

Rs.close()

Ps.close();

Conn.close();

%>

 

 

拾、簡述在JSP中是如何实现分页操作的?

         首先一定要确定的是分页有两种:

1.       真分页:性能较高。,是基于数据库的俄操作,只是从数据库中取出部分的数据进行显示,所以性能高,但是可移植性低。

2.       假分页:性能较低,是将全部的结果查询出来,之后依靠算法分页,只显示部分数据,因为使用的是通用的语法,所以可移植性高。

 

实现的原理:

1.       定义一系列的变量:currentPagelineSize、并通过查询求出allRecorders和计算求出pageSize

 

pageSize=(allRecorders+lineSiez-1)/lineSize

 

2.       之后数据库查询语句中根据lineSizecurrentPage进行数据的查询;

 

Oracle中使用ROWNUMMySQL中使用limit();

 

3.        之后通过表单不断的修改currentPagelineSize就可以实现分页显示。

 

 

拾壹、介绍在JSP中如何使用JavaBean

1.       JavaBean的格式要求:必须有包、public class 声明、属性封装、无参构造函数、settergetter

2.       Import语句导入或者通过<jsp:userBean>

 

 

拾贰、Servlet的生命周期?

1.              初始化,正常一次:对应init()方法,有两个 init()其中一个是有ServletConfig对象,此方法存在则无参不调用。正常情况下在第一次使用Servlet的时候才进行初始化的操作,当然,也可以通过配置在容器启动的时候自动进行初始化<load-on-startup>

2.              服务:服务多次:所有的服务都有services()方法分配,主要有doGet()doPost(),分别处理getpost请求。

3.              销毁:正常一次:调用destroy()方法,如果一个Servlet长时间不用,也会自动销毁,而当再次使用的时候就必须重新进行初始化的操作。

 

拾叁、Servlet中的forward()redirct()的区别?

         Forward() 方法是RequestDispatcher接口定义的,而redirect()response定义的,一个是服务器端跳转,另外一个是客户端跳转。

 

拾肆、MVC的哥哥部分都有哪些技术实现?如果实现?

         MVCModelViewController

                   ModelJavaBean:业务处理、数据处理

                   View:显示的JSP,最好不存在人和的scriptlet,可以使用标签消除

                   Controller:控制,接收View传递的内容和调用JavaBean,并根据JavaBean的处理结果进行跳转,实现原理:

                   所有的JSP将内容提交给ServletServlet接收这些内容并调用相应的JavaBean进行业务及数据的处理,一般JavaBean有专人负责开发,完成业务的惭怍流程,而servlet调用的只是接口,并根据这些接口的操作结果将内容交给JSP进行显示,但是在显示的时候尽可能少出现Scriptlet代码。

 

拾伍、国际化陈旭的实现思路?

1.              Locale、属性文件、ResourceBundle

2.              国际化程序的实现,是根据本机的操作系统的语言类型,选择不同的属性文件,所有程序的基本代码一样,但是文字显示不一样,所以将内容作为属性文件出现之后,可以只显示属性文件中的蚊子。

 

拾陆、描述JSPServlet的区别、共同点、各自应用的范围?

1、  现有的Servlet再有的JSPServlet是在java中嵌入HTML代码,而JSP是在HTML中嵌入java代码

2、  共同点:JSP可以完成的功能,Servlet都可以完成,但是对于过滤器、监听器只能由Servlet完成。

3、  应用范围:JSP用于显示,Servlet用于控制。

 

拾柒、简述web.xml的作用?

         属于部署描述符,在整个java中只要是容器都会存在部署描述符, 此部署描述符可以控制WEB中各个组件的运行状态,也可以配置整个容器的状态:<error:page><welcome-file-list>,<servlet>,<session-timeoue>,<filter>,<listener>

 

 

 

 

面试中最常见的代码,凡是自动生成的代码,还有main方法,都需要十分注意:

<%@ page language=”java”    import = “java.util.*”   pageEncoding=”GBK”  %>

 

Main方法


 

Public static void main(String args[]){

 

}

 

 

总结:需要十分注意基础知识。