Java web复习要点

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标记的.
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初始化参数的区别是,把标记中的标记换成标记(如index.jsp)。
    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
            true
        

    

15.常用的标准动作标记有?
    
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"%>)和)标准动作的区别?
    include指令只去的被包含页面文件的内容,并在转换之前放在包含页面里;而标准动作是一个运行时调用。具体的说如果使用include指令,这与你把被包含页面直接复制到包含页面一样。而include标准动作会在运行时插入被包含页面的响应,即容器根据页面include标准动作中的page属性创建一个RequestDispacher,并应用include()方法。所分派/包含的JSP真的同样的请求和响应在同一个线程中执行。总之,include指令在转换时发生;标准动作在运行时发生。通常这两种元素包含扩展名为.jspf(jsp fregment)对页面.另外标准动作还可以有体来定制包含的内容,使用,在被包含的JSP页面使用EL来取值形如${param.subTitle}。
22.Filter的调用顺序会按照其在DD(web.xml)声明的先后顺序被容器调用。
    
    

你可能感兴趣的:(Java,Web)