第一部分: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>以及< 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-class>是Servlet源文件的名字,<servlet-name>是自定义的名字,每每利用类名。<url-pattern>是非常主要的信息,用来配置访问Servlet的逻辑路径,必须以/开头。
3. 如果通过一个链接访问Servlet,默认调用Servlet中的哪个方法供应做事?
解析 度与不同的HTTP要求方法Servlet中都定于了对应的doXXXX方法接管要求。一超级链接的办法提交要求,默认的GET办法,以是将调用Servlet中的doGet方法。程序员该当熟习每种用户要求对应的HTTP办法。
4. 如果一个表单<form>没有显示指定method属性值,那么默认利用什么方法提交要求?
解析 表单提交时Web运用中常见的要求办法,一样平常情形下,建议利用POST办法提交要求,由于这种办法要求参数在要求体重通报,不会显示在URL中。但是,如果在HTML的<form>标记中没有利用method属性指定提交办法,默认是GET办法。
参考答案 默认利用GET办法。
5. 要求接口中的哪个方法可以返回要求参数的值?哪个方法可以把要求参数的多个值同时返回?
解析 Web运用中繁芜主要的的功能每每通过表单提交实现,用户利用表单可以输入很多信息,这些信息被称为要求参数。在Web运用开拓中,得到要求参数险些是利用最多的功能,程序员该当闇练节制得到要求参数有关的所有方法。
参考答案 要求接口中的getParameter 方法可以返回某一个要求参数的值,getParaneterValues方法可以把摸个要求参数的多个值同时返回,封装到一个数组中,例如复框的多个值。
6.相应接口中的哪个方法可以设置内容类型?用大略代码演示。
解析 相应可以封装做事器端返回到客户真个数据。而这些数据的格式和编码都须要利用相应中的方法进行设置。如果设置缺点,客户端浏览器将无法显示。
参考答案 相应中的soracleontentType方法可以设置内容类型,如下所示:
//设置相应的内容类型
Respose.soracleontentType(“text/htmllcharset=gb2312”);
上述代码中设置相应的内容类型是text或者html,编码格式是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每部分之间的关系如下
第二部分 详解Servlet组件开拓
1 . 请解释Servlet的声明周期
解析 Servlet作为做事器真个组件,须要在容器中才能运行,容器管理Servlet的生命周期。对付web开拓员来说,理解Servlet的声明周期才能更好地进行Servlet编程。
参考答案
阶段一:初始化
客户端第一次访问Servlet,或者容器加载运用时(配置<load-on-startup>),容器调用Servlet类的布局方法,实例化一个Servlet工具,该工具存在于做事器端内存中,容器将启动多线程并发访问该工具。实例化结束后,将对Servlet实例进行初始化,先调用init(Servloracleonfig)方法,在调用init()方法
阶段二:供应做事
Servlet初始化成功后,容器调用Servlet接口中定义的service(ServletRequest req,ServletResponse res)方法。Service将要乞降相应工具转换成HttpServletRequest req,HttpServletResponse resp)方法。HttpServlet中的service方法,将要求根据要求办法转发给对应的doXXX方法,如doGet、doPost
阶段三 销毁
Servlet供应做事结束,或者一段韶光后,容器将销毁Servlet实例。销毁Servlet实例前,容器先调用Servlet接口中定义的destroy方法,许可完成一些自定义的操作。
2. 什么是Servlet的初始化参数?如何配置?如何在程序中得到?
解析 如果摸个Servlet须要一些参数,可以再web.xml中今夕配置,而不必要硬编码到源代码中,这样可以方便地进行修正。值得把稳的是,Servlet的初始化参数只能在当前的Servlet中利用,其他Servlet中无法利用。
参考答案 Servlet的初始化参数指的是初始化Servlet实例时的参数,可以再web.xml中尽享配置,如下所示:
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>com.oracleTestServlet</servlet-class>
<init-param>
<param-name>level</param-name>
<param-value>2.1</param-value>
</init-param>
</servlet>
上述配置中,利用<init-param>为TestServlet配置了一个名字为level的初始化参数,值为2.1.可以利用多个<init-param>元素配置多个初始化参数。在TestServlet中,可以直接调用getInitParameter(“level”)方法返回该参数的值。
3. 请列出要求接口中至少三个得到要求头的方法。
解析 当用户向做事器端要求时,HTTP要求头的信息也随之被发送到做事器。要求接口中定义了得到要求头的方法,实际运用中常常须要得到某些要求头的值,根据要求头的值判断客户真个情形进行编程。开饭员该当熟习各种要求头的含义,以及得到要求头的方法。
参考答案 getHeader方法可以根据要求头名字得到要求头值;getIntHeader方法用来返回整型要求头的值;getDateHeader方法用来返回日期类型要求头的值。
4.相应接口中addHeader方法和setHeader方法有什么差异?
解析 相应封装了做事器端发送给客户真个信息,相应接口中定义了操作相应头的方法,有些方法随意马虎稠浊,开拓员该当辨别清楚。
参考答案 addHeader方法用来向相应中添加一个头,如果盖头的名字已经存在,name许可一个头包含多个值:setHeader方法向相应中添加一个头信息,如果头寸在,则覆盖已有的值。
5. Servlet跳转到JSP常常有两种方法:一种称为相应重定向,一种称为要求转发。请用代码展示两种方法,并解释其差异。
解析 Servlet作为MVC中的掌握器,紧张的浸染便是接管客户端要求,得到要求信息后调用业务逻辑,然后根据业务逻辑的处理结果跳转到不同的视图显示给用户。开拓员必须节制常用的两种跳转方法,即相应重定向和要求转发。实际事情中常用的是要求转发,很多MVC框架默认也是利用要求转发.
参考答案
相应重定向response.sendRedirect(“index.jsp”);
要求转发:request.getRequestDispantcher(“index.jsp”).forward(request,respinse);
相应重定向相称于让客户端向重定向的资源重新发送一个要求。当前要求中的信息无法通报到下一个资源。而要求转发显得刚玉吧当前的要求转发到下一个资源。当前要求中的信息将可以转递到下一个资源。
6.要求接口中的供应了处理属性的方法,请列举每个方法并解释其浸染。
解析 掌握器调用业务逻辑后,每每须要把一些处理的结果返回到视图上进行显示。这种时候,属性的观点就至关主要。要求属性是最常用的一种属性,是在要求范围内有效的属性。开拓员一定要精确理解每种范围的属性并能够精确利用。
参考答案 要求接口中有三个和属性有关的方法,分别是:setAttribute(String,Object),可以将一个工具设置一个名字,存储到要求中:getAttribute(String),可以根据属性的名字返回属性值:removeAttribute(String),可以根据属性的名字删除属性。
7.cookie有什么浸染?如何利用Servlet 的API返回要求中的cookie?如何将cookie保存到客户端?
解析 cookie是保存在客户真个小文本,合理地利用cookie能够增强用户体验。然而,开拓员利用cookie时,一定不要把涉及用户隐私的内容保存到cookie中,如银行账号的密码等。其余,cookie可以被用户人为禁止或删除,这也是利用cookie时须要考虑的问题。
参考答案 cookie用来将一些信息保存到客户端,已被用户下次访问同一运用时,能够自动将这些信息发送到做事器端。做事器端通过利用cookie编程,能够提高用户体验。要求接口中供应了goracleookie方法返回所有的cookie,相应接供词给了addCookie方法能够将cookie工具返回到客户端。
8.如何得到会话工具?请用大略代码展示。
解析 web运用中,常常须要利用会话工具。会话是指客户端对做事器端一次连续的访问过程。开拓职员该当熟习会话干系的操作。
参考答案 可以通过要求工具得到会话工具,如request.getSession()。如果当前存在会话,直接返回利用:如果不存在,则创建一个新的会话返回。还有一个重载的getSession方法,具有一个boolean类型的参数,个中request.getSession(true)和request.get
Session()完备相同,而request.getSession(false)意思是如果存在会话工具就返回利用,如果不存在则返回null。
9.有哪几种办法可以设置会话有效韶光?
解析 会话工具都被存储在容器中,如果很永劫光不该用,就该当被销毁,以担保内存的有效利用。容器总是会为会话设置默认的有效韶光,大多数是30分钟,也可以自己定义会话的有效韶光。
参考答案 有两种方法可以设置会话的有效韶光,一种是在web.xml中配置,如下所示:
<session-config>
<session-timeout>40</session-timeout>
</session-config>
利用这种办法设置的有效韶光,是对当前运用中所有会话都有效,单位是分钟。
还有一种办法是利用HttpSession中的setMaxInterval(int)方法,这个方法能够设定最大不活动韶光,超过这个韶光会话没有被访问,即被容器销毁。这个方法只能够掌握调用该方法的会话工具,不会对所有会话工具生效。
10. 什么是URL重写?能办理什么问题?
解析 大多数容器实现会话,都是基于cookie机制实现的。然而,cookie可能被用户人为地设置失落效,这种情形下,会话页将无效。为了能够在cookie失落效时依然使会话有效,可以利用URL重写策略。如果利用某些MVC框架编程,如Struts,这些问题都已经在框架层面得到理解决。
参考答案 URL重写便是利用相应接口中的encodeURL(path)方法,把指定的path重新编码,将名字是JSESSIONID的cookie的值逼迫加到path对应的URL中,通报到做事器端,这样就能够担保纵然cookie被阻挡,做事器端永久能得到会话工具的ID值,使得会话有效。
11. 会话接口中供应了处理会话属性的方法,请列举每个方法并解释其浸染。
解析 如果某些工具须要在会话范围内有效,那么就可以考虑利用会话范围的属性。保存在会话范围内的属性,在当前会话中一贯有效。然而,由于会话的生命中期较长,以是属性也将随着会话一贯存在于内存中。只有当必须利用会话属性时再考虑利用,能用要求属性办理的场合就利用要求属性,开拓员必须能够精确选择不同范围属性进行利用。
参考答案 会话接口中有三个和属性有关的方法,分别是:setAttribute(String,Object),可以将一个工具设置一个名字,存储在会话中;getAttritute(String),可以根据属性的名字返回属性值;removeAttribute(String),可以根据属性的名字删除属性。
12. 什么是高下文工具?如何得到高下文工具?
解析 高下文是一个全局的观点,每个运用都有一个唯一的高下文工具。高下文接口中定义了一系列的方法,开拓员该当熟习这个接口的常用方法。
参考答案 当容器启动时,会加载容器中的每一个运用,并且针对每一个运用创建一个工具,称为高下文工具。每个运用都只有一个唯一的高下文工具,Servlet API 中供应了Servloracleontext 接口来表示高下文工具。要在Servlet中得到高下文工具非常大略,直策应用getServloracleontext()方法就可以返回当前的高下文工具,在JSP中可以直策应用application内置工具利用高下文。
13. 如何配置高下文参数?在程序中如何得到高下文参数?
解析 如果在运用中的很多地方,都须要利用某一个参数,那么就可以配置一个高下文参数。高下文参数与Servlet初始化参数不同的是,高下文参数能够在运用所有资源里利用,而Servlet初始化参数在当前Servlet中利用。
参考答案 在web.xml中可以利用<context-param>配置高下文参数,如下所示:
<context-param>
<param-name>path</param-name>
<param-value>/WEB-INF/props</param-value>
</context-param>
要得到高下文参数,可以利用Servloracleontext接口中的getInitParameter方法返回。
14、高下文接口中供应了处理属性的方法,请列举每个方法并解释其浸染?
解析:除了要求属性、会话属性外,还可以利用高下文属性。如果某个工具在高下文范围内利用,就可以考虑利用高下文属性存储。高下文的生命周期很长,运用加载时初始化,直到运用重新加载才被销毁,以是只有必须利用高下文属性时方可利用,否则该当只管即便利用要求属性。
参考答案:高下文接口中有三个和属性有关的方法,分别是setAttribute(String ,Object),可以将一个工具设置一个名字,存储到高下文范围中:getAttribute(String),可以根据属性的名字返回属性值:removeAttribute(String),可以根据属性的名字删除属性。
15、解释要求属性、会话属性、高下文属性的差异?
解析:属性在Web运用开拓中霸占举足轻重的地位,是用来在组件之间通报工具的紧张办法。紧张有三个工具可以储存属性,即要求、会话、高下文。由于要求生命周期最短,以是该当只管即便利用要求属性,而只有在必须用会话属性或者必须用高下文属性时菜考虑利用这两种属性。
参考答案:要求属性是要求范围内的属性,除了要求转发外,只在当前的要求中有效:会话属性是会话范围内的属性,只要会话没有失落效,就一贯随着当前的会话所在:高下文属性是高下文范围的属性,只要容器没有重新加载运用,就一贯随着高下文工具存在。该当只管即便利用要求属性实现功能,只有在必须用会话属性或者必须用高下文属性时才考虑利用这两种属性。
16、请解释ServloracleontextEvent什么场景下被触发,以及如何处理?
解析:事宜处理在很多时候非常有效,开拓职员该当熟习Servlet中得常用韶光种别,并熟习每种事宜触发的条件。
参考答案:当高下文工具被初始化或者被销毁时,将触发ServloracleontextEvent,要处理该事宜,可以自定义事宜处理类实现ServloracleontextListener接口;然后覆盖该接口中的方法,实现处理逻辑。
17、请解释HttpSessionEvent什么场景下会被触发,以及如何处理?
解析:会话事宜在很多场合可以利用,开拓职员该当熟习会话事宜的触发条件以及处理方法等。
参考答案:当会话工具有变革的时候,将触发HttpSessionEvent事宜发生,例如会话被创建、会话被销毁、会话被活化、要处理该事宜,有两个接口可以监听,分别是HttpSessionListener和HttpSessionActivationListener。个中前者监听会话创建和销毁的情形,后者监听会话活化和钝化的情形。
18、如何在web.xml中配置监听器,使监听器生效?
解析 监听器必须在web.xml中配置才能生效。
参考答案 在web.xml中,可以利用<listenner>配置监听器,如下所示:
<listener>
<listener-class>com.oracle.listener.CounterListener</listener-class>
</listener>
19、简述监听器的开拓配置步骤。
解析 每种监听器的开拓和配置步骤都非常相似,开拓员该当做到闇练节制。
参考答案
(1)根据需求剖析须要利用哪种监听器。
(2)创建类实现监听器接口,并实现接口中必要的方法,实现监听功能。
(3)在web.xml中利用<listener>配置监听器。
20、过滤器有什么浸染 ?
解析 过滤器是web运用中非常主要的观点,乃至在Strust2框架中也作为核心掌握器利用。
参考答案 在web运用中,每每须要一些通用的处理和掌握,如果把这些通用的处理编写在每一个须要的资源文件中,代码就很冗余,且不好管理。只要须要修正,就得修正所有文件中的干系代码,造成掩护困难。过滤器便是用来实行这些通用途理的程序,每每可以用来实现图像转换、数据压缩、登录验证、权限掌握等。
21、Filter接口中定义了哪几个方法?分别有什么浸染?
解析 Filter接口是所有过滤器都必须实现的接口,理解这个接口中的方法对开拓员胜任过滤器开拓非常主要。
参考答案 Filter接口中有以下三个方法:
(1)init(FilterConfig filterConfig):该方法是对filter工具进行初始化的方法,仅在容器初始化filter工具结束后被调用一次。
(2)doFilter(ServletRequest request,ServletResponse response,FilterChain chain):该方法是filter进行过滤操作的方法,是最主要的方法。过滤器实现类必须实现该方法。方法体中可以对request和response进行预处理。个中FilterChain可以将处理后的request和response工具通报到过滤链上的下一个资源。
(3)destroy():该方法在容器销毁过滤器工具前被调用。
22、简述过滤器的开拓配置步骤
解析 开拓员该当闇练节制过滤器的开拓配置步骤。
参考答案
(1)创建类实现Filter接口。
(2)实现Filter接口中的方法,重点实现doFilter方法对要乞降相应进行过滤。
(3)在web.xml中配置过滤器,利用<filter>配置过滤器的类和名字,利用<filter-mapping>配置过滤器须要过滤的资源路径。
23. 过滤器的配置中,<dispatcher>元素是什么含义?有几个可选值?
解析:<dispatcher>元素师Servlet2.4往后新增的配置能够用来指定转发办法
参考答案: <dispatcher>可以配置能够被过滤的URL的要求办法,有以下四个值可以利用;
(1) 要求办法,是一种默认的办法。即不配置disoatcher选项时,默认过滤REQUEST办法要求的URL,包括在地址栏输入URL,表单提交,超级链接,相应重定向,但是如果指定了其他dispatcher值,REQUEST也必须显式指定才能生效。
(2) FORWARD:转发办法,表示可以过滤要求转发办法访问的URL.
(3) INCLUDE:包含办法,表示可以过滤动态包含的URL。
(4) ERROR:缺点办法,表示可以过滤缺点页面
第三部分 详解JSP组件开拓
1.列举至少5个JSPN内置工具,并解释其类型
解析 内置工具是JSP中非常主要的观点,是真正的Servlet API中的工具,不过是容器翻译JSP时进行声明创建的,以是在JSP中不须要声明创建就可以直策应用。Web开拓员最少须要能够闇练利用JSP中常用的内置工具。
参考答案
(1) request:HttpServletRequest
(2) response:HttpServletResponse
(3) session:HttpSession
(4) application:Servloracleontext
(5) pageCountext: pageCountext
(6) out:JspWriter
2.解释<%@include%>和<jsp:include/>的差异
解析 JSP中的指令和标准动作中都有一个名字为include的元素,都是包含的意思,二者详细含义却不同,分别是静态和动态包含,开拓员该当熟习二者差异,避免稠浊。
参考答案 <%@include%>是指令,是静态包含,在翻译期将把被包含的资源翻译到包含资源中,源代码合二为一。而<jsp:include/>是动作,是动态包含,在运行期动态访问被包含的资源,将天生的相应合二为一进行显示。
3.列举page指令中至少三种常用属性,并解释其含义。
解析 page指令是JSP中最常用的指令之一,开拓员该当熟习page指令的常用属性
参考答案
(1)import:用来导入须要利用的类。
(2)pageEncoding:指定JSP页面的编码。
(3)errorPage:指定缺点页面。
4、<jsp:forward>的含义是什么?
解析:要求转发是常常利用的跳转办法,在JSP中有更为大略的办法进行要求转发,便是利用标准动作forward。
参考答案 <jsp:forward>可以在JSP中实现要求转发,类似在Servlet中利用RequestDispatcher的forward方法进行要求转发
5、列举与JavaBean干系的三个标准动作,并解释其含义。
解析:JavaBean可以实现MVC中的Model部分,然而它并不是一个真正的组件,而是有编程规范的Java类。为了能够便捷利用
JavaBean,JSP规范定义了一系列标准动作。
参考答案:与JavaBean干系的有以下三个标准动作。
(1)<jsp:useBean>:用来得到或者创建JavaBean实例。
(2)<jsp:setProperty>:用来为JavaBean的属性赋值。
(3)<jsp:getProperty>:用来显示JavaBean的属性值。
6、什么是EL?EL的紧张浸染是什么?
解析:随着JavaEE技能的发展,人们越来越希望JSP中的动态部分能够更加简练。可以利用<%=%>表达式在JSP中动态输出内容,
然而总是过于繁琐,因此涌现了EL,可以很大程度简化JSP中的表达式。然而,在实际利用中,EL总是和JSTL合营利用才能发
挥更大浸染
参考答案:EL是Expression Language 的简称,即表达式措辞,紧张用来替代表达式<%=%>,使得JSP更为大略。EL常常结合JSTL
一起利用,发挥更强大的浸染。
7、列举EL中4个与属性干系的内置工具,并解释其含义。
解析:EL中定义了一系列的内置工具,个中与属性有关的内置工具特殊常用,开拓员该当闇练节制。
参考答案:
(1)pageScope:可以得到PageContext范围的属性
(2)requestScope:得到要求范围的属性
(3)sessionScope:得到会话范围的属性
(4)applicationScope:得到高下文范围的属性
8、如果web.xml中定义了一个名字为rate的高下文参数,在JSP中如何利用EL进行输出?
解析 EL中定义了11个内置工具,分别能够输出不同的信息,个中initParam能够用来输出高下文参数
参考答案: ${initParam.rate}
9、EL中的内置工具pageContext,与其他内置工具有什么不同?
解析 EL的11个内置工具中,pageContext是一个非常分外的内置工具。其他内置工具都只能输出特定的信息,例如requestScope只能输出要求范围的属性,并不是一个真正的要求工具。而pageContext是一个真正的PageContext类型工具,可以返回任意属性。
参考答案 pageContext内置工具非常分外,它是一个真正的PageContext类型的工具,只要PageContext中存在getXXX方法,就可以利用${pageContext.XXX}将getXXX方法的返回值进行输出。而其他的内置工具都没有这个特点,只能输出特定的信息。
10、EL中的.与[]有什么差异?
解析 EL中的.和[]有类似的功能,特殊随意马虎稠浊,开拓员该当闇练节制。
参考答案 EL中,利用.和[]都可以用来得到数据,然而某些情形下只能利用[],而不能利用圆点,有以下三种情形只能利用[]:
(1) 通过数组或凑集的索引返回值,只能利用[];
(2) 属性值中包括-或者.等非字母或数字的字符,只能利用[];
(3) 属性值不是常量,而是变量时,只能利用[]。
11、JSP中的自定义标记有什么浸染?
解析 自定义标记是JSP1.2版本开始支持的功能,可以将JSP文件中须要利用的Java功能定义成标记,在JSP文件中多次调用。自定义标记能够使得JSP文件构造简练,可读性强,可掩护性也增强。
参考答案 利用自定义标记,能够使得JSP文件构造简练,减少冗余代码,能够在多个地方利用自定义标记,达到重复利用的目的,同时也使得动态功能更随意马虎管理、掩护。
12、简述开拓自定义标记的紧张步骤。
解析 开拓自定义标记有基本的步骤,开拓员该当做到熟习。
参考答案
(1) 根据需求设计需求开拓的标记。
(2) 在tld文件中描述标记的基本信息,包括标记名称、标记的属性、标记体的特色以及标记的处理器类等。
(3) 根据tld描述的信息开拓标记处理器类,实现标记的功能。
13、如何利用自定义标记?
解析 纵然有的运用中不须要自行开拓标记库,然而开拓员至少须要能够闇练节制自定义标记的利用方法。
参考答案
(1)将自定义标记干系的tld文件引入到工程中,可以存放到WEB-INF目录下。
(2)将自定义标记干系的jar文件引入到工程中,可以存放到WEB-INF\lib目录下。
(3)在JSP文件中,利用taglib指令指定标记库的uri,并指定利用该标记库的前缀。
(4)在JSP中须要利用标记的地方,利用前缀引用标记,通报属性即可利用。
14.简述tld文件的紧张浸染。
解析 tld 文件在标记库中有着举足轻重的浸染,开拓职员至少要理解tld文件中的紧张信息。
参考答案 tld文件是标记库描述文件,紧张描述了标记库的信息。紧张包括标记名称、标记体的情形、标记中的属性、标记对应的处理器类。其余还会指定一个唯一的uri值,在jsp中利用标记库的时就通过这个uri进行引用。
15.JSTL是什么?有什么浸染?
解析 目前标记库有很多,除了JSTL外,还有很多第三方供应的标记库,然而浸染和利用步骤大同小异。开拓员该当首先节制标记库的含义以及利用,这样对其他标记库也能很快的闇练利用。
参考答案 JSTL是原sun公司定义的一套标准标签库,供应了一些在Web运用中常用的标签,例如迭代数组或凑集的标签。利用JSTL能够使JSP代码更为简练,减少JSP中的代码量。这些标签能在多个场合重复利用,提高了开拓效率。
16.如何利用JSTL
解析 利用JSTL和利用自定义的标记类似,也可以说,利用任何标记库的步骤都类似,无非是每个标记的浸染、名字以及属性等不用而已。
参考答案
(1) 首先引入JSTL的tld文件和干系的jar文件。
(2) 在JSP中利用taglib指令指定要利用的tld的uri值,并自定义一个前缀。
(3) 在须要利用标记的地方,利用前缀引用标记,设置必要的属性即可。
17.假设存在一个会话属性list,list是泛型为Customer的凑集工具,Customer中包含custname、age、address三个属性。请利用JSTL中的迭代标记遍历该list,将凑集中的数据显示到表格的行中。
解析 JSTL中有很多标记,开拓员该当熟习常用的标记的利用,例如迭代标记便是常用 标记之一。
参考答案
<c:forEach Item=”${sessionScope.list}” var=”cust”>
<tr>
<td>${cust.custname}</td>
<td>${cust.age}</td>
<td>${cust.address}</td>
<tr>
</c:forEach>
18.如何在web.xml中配置非常处理
解析 非常处理一贯是运用开拓中面对的一个问题。在Web运用中,也可以利用try/catch/finally处理非常,同时,还可以在web.xml中进行配置,对某种非常进行统一处理
参考答案 在web.xml中配置非常处理的办法如下:
<error-page>
<exception-type>com.oracle.exception.RegisterException</exception-type>
<location>/register.jsp</location>
</error-page>
上述配置后,当发生了RegisterException却没有被捕获时,跳转到register页面进行处理。
第四部分 高等主题
1.Log4j有什么浸染?
解析:Log4j目前利用最多的日志处理组件,程序员该当节制Log4j
的利用。
参考答案:Log4j是Apache的一个开源项目,利用Log4j可以便捷地掌握( )目的地,包括掌握台,文件,GUI组件以及NT事宜记录器等。同时,Log4j可以掌握( )日志信息的输出格式,也能够通过定义每一条日志信息的级别,更加细致掌握日志的( )程。
2.Log4j紧张由哪三部分组成?每部分的紧张浸染是什么?
解析:节制Log4j的利用,可以从理解Log4j的紧张组件入手。
参考答案:Log4j包含三个紧张组成部分,即Logger、Appender以及Layout。个中( )这天记记录器,是Log4j的核心组件;一个Logger可以指定多个Appender,Appender( )定日志信息的输出目的地,可以是文件、掌握台或文件等;一个Appender又可以指定( )个Layout,Layout用来指定日志信息的格式,可以使HTML、大略文本等。
3.列举至少3种Log4j的输出目的地,并解释其含义。
解析:能够将诶之输出到不同目的地,是Log4j的一大特色。
参考答案
(1)org.apache. log4j.ConsoleAppender:将日志信息输出到掌握台,如果Logger没有使( )addAppender显式添加Appender,默认利用ConsoleAppender。
(2)org.apache. log4j.FileAppender:将日志信息输出到一个文件。
(3)org.apache. log4j.DailyRollingFileAppender:将日志信息输出到一个日志文件,并且( )据指定的模式,可以按照一定的日期将日志信息输出到一个新的日志文件。
4.利用properties文件配置Log4j属性,哀求日志级别为debug,目的地为文件( )式为HTML。
解析:利用Log4j进行日志管理,每每都在属性文件中配置干系的属性,开拓员必须( )Log4j属性的配置,才能够顺利的利用Log4j。
参考答案:
log4j.rootLogger=debug.appender1
log4j.appender.appender1=org.apache.log4j.FileAppender
log4j.appender.appender1.Threshold=debug
log4j.appender.appender1.ImmediateFlush=true
log4j.appender.appender1.File=log.html
log4j.appender.appender1.Append=true
log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout
log4j.appender.appender1.layout.LocationInfo=true
log4j.appender.appender1.layout.Title=Log Message
5.在web运用中利用Log4j记录日志,每每有哪些方法加载属性文件?
解析 web运用中利用Log4j,首先须要考虑的的问题是如何加载属性文件:
参考答案 web运用中加载Log4j的属性文件每每有以下两种办法:
(1)定义一个Servlet,并利用<load-on-startup>在web.xml中配置这个servlet,使得运用
加载时就初始化这个Servlet,从而可以在这个Servlet的init方法中加载Log4j属性文件。只要加载了运用,就会初始化Servlet,就会调用init方法,从而就会加载属性文件。
(2)定义一个高下文事宜监听器,在监听器的contextInitialized方法中加载Log4j属性文件。
这样能够担保只要加载了运用,就会触发高下文韶光,从而调用监听器中的contextInitialized方法,加载Log4j属性文件。
6.Ajax是什么含义?有什么浸染?
解析 ajax并不是一个新技能,而是一系列已有技能的一个新的利用方法。目前,人们越来越关注用户体验,web运用开拓员也该当看重这方面的技能发展。
参考答案 ajax是“Asynchronous JavaScript and XML”的简称,即异步的JavaScript和XML。Ajax便是能够在web浏览器中实现与桌面运用类似客户端技能。例如,利用ajax技能后,做事器端不会每次都返回一个完全的页面,而会只返回一部分文本,只刷新页面的一部分,不须要等待全体页面刷新;利用ajax可以异步提交要求,不须要必须等待做事器端相应后才进行其他操作。可以说,Ajax试图在web运用中实现桌面运用的功能和交互性,
并能够利用和桌面运用中类似的友好界面和俊秀空间。
7.Ajax中的XMLHttpRequest工具有哪些浸染?
解析 XMLHttpRequest工具是Ajax技能的核心工具,利用Ajax技能都是从XMLHttpRequest工具开始。
参考答案 XMLHttpRequest工具是Ajax技能的核心工具,利用Ajax技能都是从XMLHttpRequest工具开始。在ajax
运用程序中,XMLHttpRequest工具卖力将用户信息以异步办法发送到做事器端,并吸收做事器相应的信息和数据。
8.什么是DOM?有什么浸染?
解析:DOM是独立于脚本和措辞的观点,很多措辞都对DOM进行了实现,DOM能够对标记措辞进行构造化的表示。
参考答案:DOM是Document Object Model的简称,即文档工具模型,是用于HTML和XML文档的API。DOM供应了文档的构造化表示,把网页和脚本或编程措辞连接了起来,可以修正文档的内容和视觉表现。利用Ajax编程时,从做事器返回的内容须要更新到客户端页面中,就可以利用DOM工具操作浏览器内容,进行局部刷新。
9.JSF框架的紧张特点是什么?
解析:JSF框架已经是JavaEE规范的一部分,是非常有发展前景的框架,开拓职员可以关注。
参考答案:JSF是一种以组件为中央来开拓JavaWeb运用的框架。JSF供应了一组用户界面组件,这些组件是可重用的,开拓员可以利用这些组件方便地构建Web运用的用户界面;
JSF框架支持开拓自定义的用户界面组件,而且这些自定义用户界面组件同样可以重用。其余,利用JSF框架,可以方便地进行输入考验、国际化编程等。
课程推举:java零根本入门到精通