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)声明的先后顺序被容器调用。
每个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对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- GUI - Web前端开发框架
- 介绍一款信息管理系统的开源框架---jeecg
- Extjs4.0 最新最全视频教程
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序