互联网大厂(字节、华为)Java EE面试题:Servlet/JSP 部分解析+答案,最强八股文


1.请列举至少6种javaEE技术,并简述其作用。

解析:

javaEE是一系列的技术,主要包扩13种。对于开发人员来说,了解几种主要的技术是非常必要的,例如JDBC、JSP、Servlet、XML、JNDI、JMS、JTA等。

参考答案:

(1)JDBC(Java Database Connectivity):用来访问数据库的API。
(2)JavaServlet :是一种小型的Java程序,扩展了web服务器的功能。
(3)JSP(Java Server Pages):JSP页面由HTM代码和嵌入其中的Java代码组成,用来实现动态视图。
(4)JNDI(Java Name and Directory Interface): JNDI API被用于访问名字和目录服务。
(5)EJB(Enterprise JavaBean):实现业务逻辑的组件,可以构成分布式系统。
(6)RMI(Remote Method Invoke):调用远程对象方法。
(7)Java IDL/CORBA:将Java和CORBA集成在一起。
(8)XML(Extensible Markup Language):可以用它来定义其他标记语言的语言。
(9)JMS(Java Message Service):用于和消息中间件相互通信的API。
(10)JTA(Java Transaction Achitecture):一种标准的API,可以访问各种事务管理器。
(11)JTS(Java Transaction Service):是CORBA OTS事务监控的基本实现。
(12)JavaMail:用于存取邮件服务的API。
(13)JAF(JavaBeans Activation Framework):JavaMail利用JAF来处理MIME编码的邮件附件。

2.在web.xml文件中配置Servlet时,主要配置哪些信息?

解析:

使用IDE开发Servlet时,配置信息可以通过可视化方式定义。然而对于web应用开发员来说,了解Servlet的配置非常必要,能够在必要的时候手动进行修改。

参考答案: 配置Servlet时,主要配置以及< servlet -mapping>,如下所示:

		<servlet>
    		<servlet-name>IndexServlet</servlet-name>
    		<servlet-class>com.oracle.servlet.IndexServlet</servlet-class>
  	</servlet>
		<servlet-mapping>
    		<servlet-name>IndexServlet</servlet-name>
    		<url-pattern>/IndexServlet</url-pattern>
 	 </servlet-mapping>
其中<servlet-class>是Servlet源文件的名字,<servlet-name>是自定义的名字,往往使用类名。<url-pattern>是其中非常重要的信息,用来配置访问Servlet的逻辑路径。必须以/开头。
<servlet-class>com.oracle.FirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FristServlet</servlet-name>
<url-pattern>/frist<url-pattern>
<servlet-mapping>

其中,是Servlet源文件的名字,是自定义的名字,往往使用类名。是非常重要的信息,用来配置访问Servlet的逻辑路径,必须以/开头。

3. 如果通过一个链接访问Servlet,默认调用Servlet中的那个方法提供服务?

解析

度与不同的HTTP请求方法Servlet中都定于了对应的doXXXX方法接受请求。一超级链接的方式提交请求,默认的GET方式,所以将调用Servlet中的doGet方法。程序员应该熟悉每种用户请求对应的HTTP方式。

4. 如果一个表单没有显示指定method属性值,那么默认使用什么方法提交请求?

解析

表单提交时Web应用中常见的请求方式,一般情况下,建议使用POST方式提交请求,因为这种方式请求参数在请求体重传递,不会显示在URL中。但是,如果在HTML的标记中没有使用method属性指定提交方式,默认是GET方式。

参考答案

默认使用GET方式。

5. 请求接口中的哪个方法可以返回请求参数的值?哪个方法可以把请求参数的多个值同时返回?

解析

Web应用中复杂重要的的功能往往通过表单提交实现,用户利用表单可以输入很多信息,这些信息被称为请求参数。在Web应用开发中,获得请求参数几乎是使用最多的功能,程序员应该熟练掌握获得请求参数有关的所有方法。

参考答案

请求接口中的getParameter 方法可以返回摸一个请求参数的值,getParaneterValues方法可以把摸个请求参数的多个值同时返回,封装到一个数组中,例如复框的多个值。

6.响应接口中的哪个方法可以设置内容类型?用简单代码演示。

解析

响应可以封装服务器端返回到客户端的数据。而这些数据的格式和编码都需要使用响应中的方法进行设置。如果设置错误,客户端浏览器将无法显示。

参考答案

响应中的soracleontentType方法可以设置内容类型,如下所示:

		//设置响应的内容类型
				Respose.soracleontentType(“text/htmllcharset=gb2312”);

7.简述JSP的运行过程

解析

很多初级开发员对JSP的理解比较肤浅,不熟悉JSP的运行过程,JSP出错时很难排错,开发员必须熟悉JSP的运行过程,这样才能编写出优良的JSP并能顺利调试。

参考答案

(1)容器将JSP翻译成符合Servlet规范的类。
(2)容器编译JSP生成的类。
(3)容器初始化JSP实例;
(4)将请求和相应对象传递给JSP实例的服务方法,提供服务。

8.JSP中的<% %>和<% =%>有什么区别?

解析

JSP从表面上看就是HTML代码中混合了Java代码,而为了区别Java代码和HTML代码,规范中定义了一些符号,即脚本元素。初级开发员应该从熟悉这些脚本元素开始,逐步熟悉JSP的开发。

参考答案

<% %>称为脚本片段,可以包含任何符合语法的Java代码,可以同时包含多行代码。而<% =%>称为表达式,=号后面是一个表达式,这个表达式的值将被输出到浏览器中,表达式后面不用使用分号结束,而且每个<% =%>只能包含一个表达式。

9.JDBC编程中主要有哪几种语句对象?有什么区别?

解析

JDBC主要用来操作数据库,操作数据库本质上是通过执行SQL语句完成。所以,JDBC编程中,能够用来执行SQL语句的语句对象非常重要,每种语句对象都存在一些区别,开发员应该熟悉并掌握。

参考答案 JDBC中主要有以下3种语句对象:

(1)Statement:Statement是所有语句对象的父接口,定义了语句对象的规范。
(2)PreparedStatement:预编译的语句对象,将待执行的语句进行了预编译,可以在执行时动态指定SQL语句中的参数。
(3)CallableStatement:可以用来调用数据库的存储过程。

10、简述使用JDBC操作数据库的主要步骤。

解析

不论使用什么数据库软件,JDBC操作数据库的步骤都基本相同。开发员一定需要注意的是,JDBC的连接对象、语句对象、结果集等都是高开销对象,使用完毕一定要在finally语句中进行关闭处理,否则将降低应用的性能。

参考答案

(1)加载驱动类;
(2)获得连接对象;
(3)获得语句对象;
(4)执行SQL语句,如果是查询语句,需要处理结果集;
(5)关闭结果集。语句对象。数据库连接对象。

11.说明MVC模式的含义,并用图表示web应用中MVC模式中每部分之间的关系

解析

对于web开发员来说,正确理解MVC模式非常关键。目前,大多数web应用都是基于MVC模式进行架构,也有很多MVC框架能够帮助开发员快速搭建MVC应用。值得注意的是,使用JSP,Servlet,JavaBean可以构建MVC模式的应用,但是MVC是一种架构思想,并不仅局限于JSP,Servlet,JavaBean这个范围内,可以使用很多其他技术实现。

参考答案

MVC本来应用于桌面程序中,M是指数据模型 , V是指用户界面 , C则是控制器,至今已被广泛使用。使用MVC的目的是将M和V实现代码分离,从而使同一个程序可以使用不同的表现形式。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。MVC模式是近些年被JavaEE平台广泛使用的设计模式。Web应用中的MVC模式与桌面程序中的MVC模式有所不同。由于web应用大多基于请求响应模式,因此往往做不到“一旦M改变,V应该同步更新”。MVC每部分之间的关系如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值