您的位置:首页 > 编程语言 > Java开发

Java web复习要点

2016-06-27 10:46 281 查看
1.ServletConfig与ServletContext的区别?

    每个Servlet都有一个ServletConfig对象,用于向Servlet传递Servlet初始化参数,通过其可以访问ServletContext。每个Web应用只有一个ServletContext,用于访问Web应用参数。

2.GET是幂等的POST是非幂等的。

3.form表单的method属性的默认值是GET

4.请求重定向(redirect)和请求分派(forward)的区别?

    redirect浏览器会重新发送新的请求(浏览器一共发送了两个请求)response.sendRedirect("urlString");forward浏览器感觉不到(只发送一个请求)RequestDispatcher view = request.getRequestDispatcher("urlString");view.forward(request,response)。

5.Servlet中有3种属性?

    上下文属性(ServletContext)(线程不安全的)、会话属性(HttpSession)(线程不安全的)和请求属性(ServletRequest)(线程安全的)。线程不安全时使用时,要对使用该类型对象的属性的所有方法进行加锁(添加、修改、删除)。

6.Servlet中的8个监听者?

    ServletContextListener,ServletContextAttributeListener,HttpSessionListener,HttpSessionAttributeListener,HttpSessionBindingListener,HttpSessionActivationListener,ServletRequestListener,ServletRequestAttributeListener.

7.当浏览器禁止使用cookie的时候,必须保证对所有链接进行URL重写,response.encodeURL("urlString");重定向的时候也想使用一个会话的时候使用response.encodeRedirectURL("urlString");在JSP中使用JSTL标记的<c:URL>.

8.会话绑定监听者(HttpSessionBindingListener)或者会话激活监听者(HttpSessionAcitivationListener)不用在DD中配置,只有在相应的属性类中实现相应的监听接口的相应方法。

9.JSP中的9个隐式对象?

    在Servlet中有的5个对象:(HttpServletRequest)request、(HttpServletResponse)response、(ServletConfig)config、(HttpSession)session、(ServletContext)application;和4JSP特有的对象:(JspWriter,其实也是response.getPrintWriter()得到的一个子类,带有缓冲功能)out、(JspException,只有错误页面才能使用该对象)exception、(Object)page、(PageContext,页面作用域的属性存储在该对象中,同时也封装了其它隐式对象)pageContext。

    因此JSP中有4种属性分别是pageContext、request、session、application。

10.通常你不需要(也不关心)页面作用域(pageContext),除非在你开发定制标记。pageContext中有2组获取/设置属性的方法:pageContext.getAttribute(String)(获取pageContext中的属性);pageContext.getAttribute(String, int)(获取对象中的属性,其中int值为PAGESCOPE、REQUESTSCOPE、SESSIONSCOPE、APPLICATIONSCOPE)。pageContext还有查找属性的方法findAttribute(String)(从小范围查询起)。

11.可以配置和获取Servlet的初始化参数,同样也可以配置和获取JSP的初始化参数

    1)、配置JSP初始化参数与配置Servlet初始化参数的区别是,把<servlet>标记中的<servlet-class>标记换成<jsp-file>标记(如<jsp-file>index.jsp</jsp-file>)。

    2)、在JSP声明(<%!  %>)中覆盖jspInit()方法(从中获取初始化参数)。

12.JSP中3中指令简介?

    1)、page指令形如:<%@ page import="foo.*" session="false" %>。定义页面的特定的属性,如字符编码、页面响应的内容类型、以及这个页面是否需要隐式的会话对象。

    2)、taglib指令形如:<%@ taglib tagdir="/WEB-INF/tags/cool" prefix="cool" %>。定义JSP可以使用的标记库

13.在JSP实际开发中不允许使用scriptlet、JSP声明和表达式,而是用EL表达式代替。

14.在JSP开发过程中,使用如下配置禁止在jsp页面中使用脚本元素(scriptlet、JSP声明、表达式)

    <jsp-config>

        <jsp-property-group>

            <url-pattern>*.jsp</url-pattern>

            <scripting-invaild>true</scripting-invaild>

        </jsp-property-group>

    </jsp-config>

15.常用的标准动作标记有?

    <jsp:useBean>、<jsp:getProperty>、<jsp:setProperty>、<jsp:include>

16.EL表达式中可以是“.”和“[]”,他俩的区别是?

    “.”可以操作Map和JavaBean;"[]"可以操作Map、JavaBean、List和数组。而且“[]”中没有引号的值会被容器计算还有“[]”可以嵌套。"[]"比“.”强大一些。

17.EL隐式对象有哪些?

    1)、作用域属性的Map:pageScope、requestScope、sessionScope、applicationScope.

    2)、请求参数的Map:param、paramValues.

    3)、请求首部的Map:header、headerValues.

    4)、请求cookie的Map:cookie.

    5)、上下文初始化参数的Map:initParam.

    6)、jsp中pageContext对象的引用,不是Map:pageContext.

17.重点:EL中的隐式对象与JSP隐式对象的区别?

    除了pageContext(同JSP中的隐式对象是一样的)外,其它隐式对象都是Map对象并不是那个对象本身。举例:在JSP隐式对象中,request隐式对象是HttpServletRequest类型的对象;而EL表达式的requestSocpe对象是Map类型的对象(其中只存储了在request对象中放置的属性的键值对,如在request.setAttribute("person",person),则在该Map中就有一个键名为“person”的Person对象).

18.在EL中${firstThing.secondThing}中firstThing可以为?

    firstThing可以为EL隐式对象和四个(页面、请求、会话、应用)作用域的属性。

19.既然EL会在4个作用域内查找为啥还需要4个特定作用域的隐式对象呢?

    防止命名冲突

20.TLD(Tag Library Descriptor)的作用是什么?

    对于一个EL函数,TLD提供了定义函数的Java类与调用函数JSP之间的一个映射。

21.重点:include指令(<%@ include file="Header.jsp"%>)和<jsp:include/>(<jsp:include page="Header.jsp" />)标准动作的区别?

    include指令只去的被包含页面文件的内容,并在转换之前放在包含页面里;而<jsp:include>标准动作是一个运行时调用。具体的说如果使用include指令,这与你把被包含页面直接复制到包含页面一样。而include标准动作会在运行时插入被包含页面的响应,即容器根据页面include标准动作中的page属性创建一个RequestDispacher,并应用include()方法。所分派/包含的JSP真的同样的请求和响应在同一个线程中执行。总之,include指令在转换时发生;<jsp:include>标准动作在运行时发生。通常这两种元素包含扩展名为.jspf(jsp
fregment)对页面.另外<jsp:include>标准动作还可以有体来定制包含的内容,使用<jsp:param name="subTitle" value="we ****">,在被包含的JSP页面使用EL来取值形如${param.subTitle}。

22.Filter的调用顺序会按照其在DD(web.xml)声明的先后顺序被容器调用。

    

    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java web