文章目录
第一章 javaweb入门
1、简述动态网站和静态网站的区别,及常用的动态网站技术
- 静态页面就是设计者把页面上所有东西都设定好、做死了,然后放上去,不管是谁在任何时候看到的页面内容都是一样的,一成不变(除非手动修改页面内容)。
- 动态页面的内容一般都是依靠服务器端的程序来生成的,不同人、不同时候访问页面,显示的内容都可能不同。网页设计者在写好服务器端的页面程序后,不需要手工控制,页面内容会按照页面程序的安排自动更改变换。
- 常用的动态网站技术有:CGI、ASP、ASP.NET、PHP、JSP等
第二章 servlet基础
1、重定向与请求转发的区别
转发只能将请求转发给同一个Web应用中的组件;而重定向不仅可以重定向到当前应用程序中的其他资源,还可以重定向到同一个站点上的其他应用程序中的资源,或者重定向到其他站点的资源;
重定向的访问过程结束后,浏览器地址栏中显示的URL会发生改变,由初始的URL地址变成重定向的目标URL ;而请求转发过程结束后,浏览器地址栏保持初始的URL地址不变;
重定向对浏览器的请求直接作出响应,响应的结果就是告诉浏览器去重新发出对另外一个URL的访问请求;请求转发在服务器端内部将请求转发给另外一个资源,浏览器只知道发出了请求并得到了响应结果,并不知道在服务器程序内部发生了转发行为;
请求转发调用者与被调用者之间共享相同的request对象和response对象,它们属于同一个访问请求和响应过程;而重定向调用者与被调用者使用各自的request对象和response对象,它们属于两个独立的访问请求和响应过程。
第三章 servlet核心接口
1、获得ServletContext对象的两种方式
- 通过ServletConfig接口的getServletContext()方法获得ServletContext 对象;
- 通过GenericServlet抽象类的getServletContext()方法获得ServletContext对象 。
第四章 会话跟踪
1、Cookie的执行原理
- 服务器创建cookie对象,把会话数据存储到cookie对象中。
- 服务器发送cookie信息到浏览器
- 浏览器从响应头中得到服务器发送的Cookie然后保存到浏览器本地。
2、Cookie的生命周期
Cookie有一定的存活时间 ,不会在客户端一直保存。
默认情况下, Cookie保存在浏览器内存中,在浏览器关闭时失效,这种Cookie也称为临时Cookie (或会话Cookie )。
若要使Cookie较长时间的保存在磁盘上,可以通过Cookie对象的setMaxAge()方法设置其存活时间,保存在磁盘上的Cookie也称为持久Cookie。
3、Session的执行原理
服务器创建一个session之后,会在响应头里面将sessionId返回给浏览器。浏览器从响应头中获取sessionId,然后保存在浏览器本地。
4、Session生命周期
- 服务器会把长时间没有活动的Session从服务器内存中清除,此时Session便失效。Tomcat中Session的默认失效时间为20分钟。
- 调用Session的invalidate方法。
第五章 JSP语法
1、JSP指令的分类
- 脚本元素
- 指令元素
- 动作元素
2、指令元素中的include指令和动作元素中的include指令之间的区别
- 指令元素中include指令的作用是在页面翻译期间引入另一个文件,被包含的文件可以是JSP、HTML或文本文件。
- 动作元素中< jsp:include >用于在页面运行时引入一个静态或动态的页面,也称为动态包含。
3、JSP声明变量与普通脚本变量的区别
- 声明变量将做为JSP翻译生成的Servlet的属性,所有对该JSP的请求将共享此变量;
- 普通脚本变量将做为JSP翻译生成的Servlet的jspService()方法中的局部变量,每个对该JSP的请求将被分配给一个同名的此变量。
第六章 内置对象
1、九大内置对象有哪些,每一个内置对象的作用
对象名称 | 功能 |
---|---|
request | 请求对象,提供客户端HTTP请求数据的访问 |
response | 响应对象,用来向客户端输出响应 |
out | 输出对象,提供对输出流的访问 |
session | 会话对象,用来保存服务器与每个客户端会话过程中的信息 |
application | 应用程序对象,用来保存整个应用环境的信息 |
pageContext | 页面上下文对象,用于存储当前JSP页面的相关信息 |
config | 页面配置对象,JSP页面的配置信息对象 |
page | 当前JSP页面对象,即this |
exception | 异常对象,用于处理JSP页面中的错误 |
2、JSP的四种作用域以及可访问性
作用域名称 | 可访问性 |
---|---|
页面域 | 存储在页面域的对象只对于它所在页面是可访问的 |
请求域 | 存储在请求域的对象只有在此次请求过程中才可以被访问。 |
会话域 | 存储在会话域的对象在整个会话期间(可能包含多次请求)都可以被访问 |
应用域 | 存储在应用域的对象在整个应用程序运行期间可以被所有JSP和Servlet共享访问。 |
第七章 JSP与JavaBean
第八章 EL表达式
第九章 JSTL
1、核心标签库:条件<c:if>(通过<c:if>实现判断)
- 语法:<c:if test=”condition”[var=”varName”]
[scope=”{page|request|session|application}”]>
//condition为true时执行的代码
</c:if>
test用于指定条件表达式,返回boolean类型值;
var用于指定将test属性的执行结果保存到某个作用域的属性名称;
scope用于指定将test属性的执行结果保存到哪个范围的作用域中。 - 【例】单分支判断
<c:if test=” n o t e m p t y s e s s i o n S c o p e . u s e r N a m e ” > 欢 迎 您 : {not empty sessionScope.userName}”> 欢迎您: notemptysessionScope.userName”>欢迎您:{sessionScope.userName} </c:if>
2、核心标签库:迭代<c:forEach>(通过迭代实现遍历)
- 【例】迭代数组对象
<% String arr[]=new String[5]; arr[0]=”Hello”; arr[1]=”,”;
arr[2]=”everyone”; arr[3]=”!”; Request.setAttribute(“arr”,arr); %>
<c:forEach items=”${arr}” var=”item”> ${item} </c:forEach>
- 【例】迭代集合对象
<% List list = new Arraylist(): list.add(new
Book(“JavaWeb开发与应用”)): list.add(new Book(“JavaSE开发与应用”));
session.setAttribute(“bookList”, list); %> <c:forEach items="
${sessionScope.bookList}" var=“book” varStatus= “vst”>序号:${vst.index+1},书名:${book.bookName}
- 【例】迭代Map对象
<% Map <String,Book> map=new HashMap <String,Book>(); map.put("
JavaWeb", new Book(" JavaWeb开发与应用")); map.put(" JavaSE", new
Book(“JavaSE开发与应用”)); request.setAttribute(“bookMap”, map); %>
<c:forEach items=" ${requestScope.bookMap}" var= “mapItem”></c:forEach>
${mapItem.key }: ${mapltem.value.bookName }
- 【例】迭代指定次数
<c:forEach begin=“1” end= " 100" step= “1” var= “num”> <c:set var=
“sum” value= " ${sum+num)"> </c:set> </c:forEach> $(sum}
-
迭代<c:forToken>
【例】<c:set var= “sourceStr” value= “a|b|c|d|e” /> <c:forTokens var=
</c:if> </c:forTokens>
“str” items= “ s o u r c e S t r " d e l i m s = " I " v a r S t a t u s = " s t a t u s " > < c : o u t v a l u e = " {sourceStr}" delims= "I" varStatus= "status" > <c:out value=" sourceStr"delims="I"varStatus="status"><c:outvalue="(status.count}”/>.<c:out value="$(str)"/>
<c:if test= " s t a t u s . l a s t " > < p > 总 共 被 分 为 < c : o u t v a l u e = " {status.last}"> <p> 总共被分为<c:out value=" status.last"><p>总共被分为<c:outvalue="(status.count)"/> 段运行结果:1.a 2.b
3.c 4.d 5.e 总共被分为5段
3、监听会话的时候需要使用哪两个接口
HttpSessionListener和HttpSessionAttributeListener
4、创建一个监听器所需要的步骤
- 步骤一:定义监听器实现类,实现监听器接口的所有方法;
- 步骤二:通过Annotation或在web.xml文件中声明Listener。
第十章 Filter与Listener
1、过滤器的作用
Web开发人员通过Filter技术,可以在用户访问某个web资源之前,对访问的请求和响应进行拦截,从而实现一些特殊功能。
2、通过过滤器实现统一编码的步骤和写法
@Override Public void doFilter(ServletRequest
servletRequest,ServletResponse servletResponse, FilterChain
filterchain) throws I0Exception, ServletException { //①设置字符集为UTF-8
servletRequest.setCharacterEncoding(“utf-8”); //②设置MIME类型为text/html
servletResponse. setContentType(“text/html; charset=utf-8”);}
3、会话请求应用三大类监听器分别对应的监听器接口
- 与会话相关的监听器要实现的监听器接口:HttpSessionListener、HttpSessionAttributeListener
- 与请求有关的监听器需要实现的监听器接口:ServletRequestListener、ServletRequestAttributeListener
- 与Servlet上下文相关的监听器需要实现的监听器接口:ServletContextListener、ServletContextAttributeListener
第十一章 MVC
1、MVC三个词的含义,以及与javaweb(jsp、servlet、javabean)对应的技术关系
含义 | 关系 | |
---|---|---|
M | model(模型) | javabean(保存查询结果) |
V | view(视图) | jsp(显示查询结果) |
C | controller(控制器) | servlet(查询数据库) |
第十二章 Ajax技术
1、同步与异步之间的区别
同步就相当于是 当客户端发送请求给服务端,在等待服务端响应的请求时,客户端不做其他的事情。当服务端做完了才返回到客户端。这样的话客户端需要一直等待。用户使用起来会有不友好。
异步就是,当客户端发送给服务端请求时,在等待服务端响应的时候,客户端可以做其他的事情,这样节约了时间,提高了效率。
选择题
- 下列几项中,不属于基于B/S结构的Web应用的组成部分的是(客户端软件)。【属于的是客户端浏览器、web服务器、数据库服务器】
- JSP 规范唯一支持的语言是(java)
- JSP 文件在第一次运行的时候被JSP引擎编译为(servlet)文件
- 设置JSP页面编码,需通过哪个指令实现(page)
- 在MVC设计模式中,JavaBean的作用是(Model)
- 下列选项中,不属于jsp内置对象的是(cookie)【属于的是request、session、out】
填空题
- 目前流行的应用软件架构模式除了C/S结构还有_B/S_结构。
- B/S结构中的B是指_浏览器_,S是指服务器。
- 一套基于B/S结构的Web应用,通常由客户端浏览器、Web服务器、数据库服务器几部分组成。
- 客户端浏览器通过_HTTP_协议与Web服务器相互通信。
- 调用Session对象的_invalidate()_方法可以使会话立即失效.
- Servlet的生命周期包括加载和实例化、初始化_和_处理请求、_终止服务_4个阶段。
- 在JSP的3种指令中,用于定义与页面相关属性的指令是_page_指令;用于在JSP页面中包含另一文件的指令是include_指令;用于指定JSP页面所使用的标签库的指令是_taglib_指令
- 在Java EE中,使用过滤器时,需要在web.xml通过__元素将过滤器映射到Web资源
判断
- 一次重定向的过程中,客户端和服务器会经过2次请求和2次响应。(√)
- Session数据存储在服务器上。(√)
- JSP内置对象不用声明就可以在JSP页面的脚本和表达式中直接使用(√)
- JSTL核心标签库的<c:choose>标签必须与<c:when>和<c:otherwise> 标签一起使用。(√)
- 通过ServletContext接口的方法可以存取应用域属性。(√)