2018最新JAVA程序员面试题

时间:2021-08-14 13:13:40

应用服务器有那些?【基础】

答:BEAWebLogic Server, IBM WebSphere Application Server, Oracle9i   Application Server, JBoss, Tomcat。

146、Servlet执行时一般实现哪几个方法?【基础】

答:publicvoid init(ServletConfig config)

public ServletConfig getServletConfig()

public String getServletInfo()

public void service(ServletRequestrequest,ServletResponse

response)

public void destroy()

147、struts的入口类?【基础】

答:是ActionServlet,所有的struts 请求都经由该类转发处理。

148、STRUTS的应用(如STRUTS 架构)?【基础】

答:Struts是采用JavaServlet/JavaServer Pages 技术开发Web应用程序的开放源码的framework。采用Struts 能开发出基于MVC(Model-View-Controller)设计模式的应用构架。Struts 有如下的主要功能:

1)包含一个controllerservlet,能将用户的请求发送到相应的Action对象;

2)JSP *tag库,并且在controllerservlet 中提供关联支持,帮助开发人员创建交互式表单应用;

3)提供了一系列实用对象:XML处理、通过Javareflection APIs 自动处理JavaBeans属性、国际化的提示和消息。

149、几种会话跟踪技术?【基础】

答:cookieURL 重写、设置表单隐藏域。

150、BS CS 的联系与区别?【基础】

答:C/S是Client/Server的缩写,是客户机与服务器结构的应用程序,服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix 或SQL Server。客户端需要安装专用的客户端软件。B/S是Brower/Server 的缩写,是浏览器和服务器结构的应用程序,即Web 应用程序,客户机上只要安装一个浏览器(Browser),如Netscape Navigator 或InternetExplorer,服务器安装Oracle、Sybase、Informix 或SQL Server 等数据库。在这种结构下,用户界面完全通过WWW 浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。浏览器通过WebServer 同数据库进行数据交互。

C/S 与B/S区别:

1)硬件环境不同:

C/S 一般建立在专用的网络上,小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务;B/S建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租用设备. 信息自己管理. 有比C/S 更强的适应范围, 一般只要有操作系统和浏览器就行;

2)对安全要求不同:

C/S 一般面向相对固定的用户群,对信息安全的控制能力很强. 一般高度机密的信息系统采用C/S 结构适宜. 可以通过B/S 发布部分可公开信息;B/S 建立在广域网之上, 对安全的控制能力相对弱, 可能面向不可知的用户;

3)对程序架构不同:

C/S 程序可以更加注重流程,可以对权限多层次校验, 对系统运行速度可以较少考虑;B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上.比C/S 有更高的要求B/S 结构的程序架构是发展的趋势, 从MS 的.Net 系列的BizTalk 2000 Exchange 2000 等, 全面支持网络的构件搭建的系统. SUN 和IBM 推的JavaBean 构件技术等,使B/S 更加成熟;

4)软件重用不同:

C/S 程序可以不可避免的整体性考虑,构件的重用性不如在B/S 要求下的构件的重用性好;B/S 对的多重结构,要求构件相对独立的功能. 能够相对较好的重用.就入买来的餐桌可以再利用,而不是做在墙上的石头桌子;

5)系统维护不同:

C/S 程序由于整体性,必须整体考察, 处理出现的问题以及系统升级. 升级难. 可能是再做一个全新的系统;B/S 构件组成,方面构件个别的更换,实现系统的无缝升级. 系统维护开销减到最小.用户从网上自己下载安装就可以实现升级;

6)处理问题不同:

C/S 程序可以处理用户面固定,并且在相同区域, 安全要求高需求, 与操作系统相关. 应该都是相同的系统;B/S 建立在广域网上, 面向不同的用户群, 分散地域, 这是C/S 无法作到的. 与操作系统平台关系最小;

7)用户接口不同:

C/S 多是建立的Window平台上,表现方法有限,对程序员普遍要求较高;B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流. 并且大部分难度减低,减低开发成本;

8)信息流不同:

C/S 程序一般是典型的*集权的机械式处理,交互性相对低;B/S 信息流向可变化, B-B B-CB-G 等信息、流向的变化, 更像交易中心。

151、过滤器有哪些作用?【基础】

答:可以验证客户是否来自可信的网络,可以对客户提交的数据进行重新编码,可以从系统里获得配置的信息,可以过滤掉客户的某些不应该出现的词汇,可以验证用户是否登录,可以验证客户的浏览器是否支持当前的应用,可以记录系统的日志等等。

152、过滤器的用法?(对客户端的请求统一编码和对客户端进行认证)【基础】

答:首先要实现(implements)Filter 接口,同时覆盖Filter 接口的三个方法:

init(FilterConfig config) //用于获得FilterConfig 对象;

doFilter(ServletRequest request, ServletResponseresponse,

FilterChain chain) //进行过滤处理一些业务;

destroy() //销毁Filter。

153、简述HttpSession的作用、使用方法,可用代码说明。(3分钟)【基础】

答:HttpSession中可以跟踪并储存用户信息,把值设置到属性中,有2个方法:setAttribute(),getAttrribute();

例如:在一个方法中用session.setAttribute(“student”,student);在session 中设置一个属性名为student,值为一个名为student 的对象。而后可在同一session 范围内用getAttribute(“student”)取出该属性,得到student对象。

154、介绍在JSP 中如何使用JavaBeans?【基础】

答:在JSP中使用JavaBean 常用的动作有:

1)<jsp:useBean/>:用来创建和查找bean 对象;

2)<jsp:setProperty/>:用来设置bean 的属性,即调用其setXxx()方法;

3)<jsp:getProperty/>:用来获得bean 的属性,即调用其getXxx()方法。

155、JSP和Servlet 中的请求转发分别如何实现?【基础】

答:JSP中的请求转发可利用forward 动作实现:<jsp:forward/>;Serlvet 中实现请求转发的方式为:

getServletContext().getRequestDispatcher(path).forward(req,res)。

156、Web.Xml的作用?【基础】

答:用于配置web应用的信息;如listener、filter 及servlet 的配置信息等。

157、写出熟悉的JSTL标签。【基础】

答:<c:if>、<c:choose>、<c: when>、<c: otherwise>、<c:forEach>、<c:set>。

158、说出struts中的标签。【基础】

答:<bean:message/> <html:errors />

<bean:include /> <html:messages />

<bean:define /> <html:html>

<bean:write /> <html:form>

<bean:resource /> <html:link>

<bean:cokkie /> <html:text>

<bean:heder /> <logic:present />

<bean:parameter /> <logic:equal />

<bean:size />

159、JSP标签的作用?如何定义?【中等难度】

答:作用:分离jsp页面的内容和逻辑;

业务逻辑开发者可以创建自定义标签;

封装业务逻辑;

可重用并且易维护;

易于手工修改、易于工具维护;

提供简洁的语法;

定义:

写标签处理器;

写tld文件;

讲标签处理器和tld文件放到同一个包里面;

把jsp页面和标签库配置部署在一起。

160、写一个自定义标签;【中等难度】

答:代码如下:

import javax.servlet.jsp.tagext.*;

import javax.servlet.jsp.*;

import java.io.*;

public class TimeTag extends SimpleTagSupport{

private boolean isServer = true;

public void setServer(boolean isServer){

this.isServer = isServer;

}

public void doTag() throws JspException, IOException{

JspWriter out = getJspContext().getOut();

if(isServer) {

out.println(new java.util.Date());

}else{

out.println("<scriptlanguage=\"javascript\">");

out.println("document.write(new Date());");

out.println("</script>");

}

}

}

161、javascript的优缺点和内置对象;【中等难度】

答:1)优点:简单易用,与Java 有类似的语法,可以使用任何文本编辑工具编写,只需要浏览器就可执行程序,并且事先不用编译,逐行执行,无需进行严格的变量声明,而且内置大量现成对象,编写少量程序可以完成目标;

2)缺点:不适合开发大型应用程序;

3)Javascript 11 种内置对象:ArrayStringDateMathBooleanNumberFunctionGlobalErrorRegExpObject