本帖最后由 小石姐姐 于 2018-5-23 14:37 编辑
WEB阶段11天到18天笔记
XMl总结
DBUtils的常用实现类
*ResultSetHandler
MapHandler和MapListHandler
MapHandler: 将一条记录封装到一个Map集合中,Map的key是列名,Map的value就是表中列的记录值
MapListHandler: 将多条记录封装到一个装有Map的List集合中
*BeanHandler和BeanListHandler
BeanHandler: 将一条记录封装到一个JavaBean中。
BeanListHandler: 将多条记录封装到一个装有JavaBean的List集合中。 * ColumnListHandler、ScalarHandler、KeyedHandler
*ColumnListHandler,ScalarHandler,KeyedHandler
ColumnListHandler: 将数据中的某列封装到List集合中。
ScalarHandler:将单个值封装
KeyedHandler(了解):将一条记录封装到一个Map集合中。将多条记录封装到一个装有Map集合的Map集合中。而且外面的Map的key是可以指定的。
XML的概述:
XML是一个可扩展的标记语言,类似于HTML,
他的设计宗旨是传输数据,并非显示数据
标签没有被定义需要自己定义标签
XML具有自我描述性,是M3C的自我推荐标准
他的作用是传输和储存数据
XML的语法比较严格
文档声名通常出现在第一行第一列的位置
* <?xml 属性名=”属性值” 属性名=”属性值” ...?>
< > & &apos "
< > & ‘ “
XML的CDATA区
<![CDATA[ 内容 ]]>
XML的解析的方式(*****):
* DOM解析:DOM:Document Object Model.
* SAX解析:Simple Api for XML.
XML的约束
约束使用来规范XML的写法
DTD和Schema
Tomcat
有一个WEB项目,通过Tomcat服务器被别人访问
安装就行
第12天Tomcat和Servlet入门
HTTP的协议的概述
用来归定浏览器与服务器之前遵守的规则
规范浏览器与服务器之间的数据传递
特点
基于请求和响应的特点
*先有请求后又相应
*请求和相应必须成对出现
*默认端口号是80
提交方式GET和POST的区别
Get的提交参数会显示在地址栏上,而POST不显示
Get往往是有大小限制的,post没有大小的限制
Get 没有请求体,post有请求体
Servlet
Servlet:
ServletRequest接收参数
String getparameter(String name) ---用于接受一个名称对应一个值的数据
* String[] getParameterValues(String name);---用于接收一个名称对应多个值的数据.
* Map getParameterMap(); ---用于接收表单中的所有的数据,Map的key是表单提交的参数名称,Map的value是提交参数的值.
* Enumeration getParameterNames() ---用于获取表单中提交的所有的参数的名称.
响应头:
* addHeader(String name,String value); --- 针对一个key对应多个value的响应头.
* addDateHeader(String name,long date);
* addIntHeader(String name,int value);
* setHeader(String name,String value); --- 针对一个key对应一个value的响应头.
* setDateHeader(String name,long date);
* setIntHeader(String name,int value);
ServletContext:重要
ServletContext的作用:
* 1.用来获得全局初始化参数.
* 2.用来获得文件的MIME的类型.
* 3.作为域对象存取数据.
ServletContext是一个域对象.
* 作用范围:整个web工程.
* 创建:服务器启动的时候,tomcat服务器为每个web项目创建一个单独ServletContext对象.
* 销毁:服务器关闭的时候,或者项目从服务器中移除的时候.
* 4.用来读取web项目下的文件.
Servlet概述
就是一个运行在WEB服务器上的小的Java程序,用来接收和响应从客户端发送过来的请求,通常使用HTTP协议.
Servlet就是SUN公司提供的一个动态网页开发技术.
Servlet的作用:
用来处理从客户端浏览器发送的请求,并且可以对请求作出响应
使用Servlet:
编写一个类实现Servlet接口.
将编写的这个类配置到服务器中.
默认第一次访问是创建Servlet
让Servlet在服务器启动的时候创建的方法
* <load-on-startup>2</load-on-startup> --- 传入正整数,整数越小,被创建的优先级就越高
url-pattern的配置
1. 完全路径匹配:以/开始
/ServlerDemo4,/aaa/servlerDemo5,
2. 目录匹配:以/开始需要*结束
/*,/aaa/*,/aaa/bbb/*
3. 扩展名匹配:不能以/开头 是以*开头
· *.do,*.action
SeravletContext
存储数据
*setAttribute
*getAttribute
*removeAttribute‘
面试点(一):
他的生命周期
request&response
使用ServletContext读取WEB项目下文件
getResourceAsStream(String path) --- 根据提供路径读取文件返回一个文件的输入流.
getRealpath (String path) --- 返回一个路径的磁盘绝对路径.
ServletContext功能
1.读取全局初始化参数
getInitParameter(String name)
getInitParameterNames()
2.获得文件MIME的类型
getMimeType
3.作为整个域对象存储数据
范围:整个web项目,而且是全局的对象
创建:服务器启动的时候,服务器为每个web项目创建一个单独的SrevletContext
销毁:服务器关闭时销毁SrevletContext
Response概述
Response代表响应的对象,从服务器想浏览器输出内容
二种:手动编写代码的方式完成文件的下载.
* 设置两个头和一个流:
* Content-Type :文件的MIME的类型.
* Content-Disposition :以下载的形式打开文件.
* InputStream :文件的输入流.
Requset的概述
代表用户的请求
功能1:获得客户相关的信息
获取请求方式
getMethod();
获取请求路径:
getRequestURI()
getRequestURL()
获取客户相关信息
getRemoteAddr()
获取工程名
getContextPath()
获取页面提交的参数
getParameter()
getparameterMap()
getParameterNames()
getParameterVales()
解决中文乱码问题
* request.setCharacterEncoding(“UTF-8”); --- 一定要在接收参数之前设置编码就OK.
面试点(二):
转发:
request.getRequestDispatcher("不带工程名的路径").forward(request,response)
重定向:
response.sendRedirect("带工程名称的路径")
cookie&session
Cookie
:就是将数据保存到客户端浏览器的会话技术.
* 从浏览器获得Cookie Cookie[] cookie=request.getCookies();
* 向浏览器回写Cookie cookie:response.addCookie(Cookie cookie);
* 创建Cookie Cookoe cookie = new Cookie(String name, String value);
获取名字: cookie.getName();
获得值:cookie.getValue();
设置路径:cookie.getPath(String path);
是指有效期:cookie.getMaxAge( int age) 单位:秒;
* Cookie的相关的API :
* setPath(String path); -- /day11 /day11/aaa
* setMaxAge(int time); -- 有效时长.
* setDomain(String domain);
* Cookie的分类:
* 会话级别Cookie:会话级别关闭浏览器的时候Cookie就销毁了.默认的
* 持久级别Cookie:设置有效时长的Cookie,关闭浏览器的时候不会销毁的.
Session
:就是将数据保存到服务器端的会话技术.基于Cookie回写SessionID的.
*如何获取:HttpSession session = request.getSession
* Session存取数据:
* setAttribute(String name,Object value);
* getAttribute(String name);
* Session作用域:
* session的作用范围:一次会话.(多次请求)
* session生命周期:
* 创建:第一次调用getSession的时候创建session。
* 销毁:
* 非正常关闭服务器.
* session过期
* 手动调用invalidate方法的时候
JSP
JSP的概述:
他是Java服务器端的页面
JSP的脚本:
<%! %> :翻译成Servlet中的成员内容. 定义变量,方法,类. -- 不建议.
<% %> :翻译成Servlet中service方法内部的内容. 定义类,变量
<%= %> :翻译成Servlet中service方法中out.print();
JSP的指令:
<%@ 指令名称 属性名称=”属性值” 属性名称=”属性值” ...%>
常用:
* contentType :设置浏览器打开这个JSP的时候采用的默认的字符集的编码.
* pageEncoding :设置文件保存到本地硬盘,以及生成Servlet后,Servlet保存到硬盘上的编码.
* import :在JSP中引入类对象.但是import可以出现多次.
* extends :设置JSP翻译成Servlet后继承的类,默认值:org.apache.jasper.runtime.HttpJspBase,这个值要想修改,这个类必须是HttpServlet的子类
* autoFlush :设置JSP的缓存自动刷出.true:自动刷出.
* buffer :设置JSP的缓冲区的大小,默认8kb.
* session :设置在JSP中是否可以直接使用session对象.默认值是true.
* isELIgnored :设置在JSP中是否忽略EL表达式.默认值是false不忽略.
* errorPage :设置错误友好页面的提示.
* isErrorPage :通过这个设置显示JSP的错误信息.
标签的作用:简化代码.
<jsp:forward /> :用于页面的转发.
* <jsp:forward page="/demo1-jsp/demo3-object/demo3.jsp"></jsp:forward>
<jsp:include /> :用于页面的包含.(动态包含)
*****静态包含和动态包含的区别?(<%@ include%>和<jsp:include>)
<jsp:param /> :用于带有路径的标签下,传递参数.
<jsp:useBean /> :用于在JSP中使用JavaBean.
<jsp:setProperty /> :用于在JSP中向JavaBean设置属性的.
<jsp:getProperty /> :用于在JSP中获得JavaBean的属性.
面试点(三):
九大内置对象:
request HttpServetRequest
response HttpServetResponse
session HttpSession
application ServletContext
page Object
out JspWriter
pageContext PageContext
config ServletConfig
exception Throwable
特殊的配置对像:
pageContext:
这个对象可以回去其他8中配置方法
getxxx()方法
可以像4个域中储存数据:
PageContext.setAttribute(key,value, PageContext.PAGE_SCOPE);
4个域是PAGE , REQUEST , SESSION ,APPLICATION
EL表达式:
EL是为了简化JSP的代码,减少<% %>
语法{EL表达式}后面一定不能有空格;
功能:
获取JSP四个域的数据;
执行运算;
操作WEB 开发常用的对象;
调用Java中的方法:这个方法不常用;
EL的储存跟获取:用什么类型存就用什么类型获取
储存:域名.setAttribute("key", "aValue");一般不常用 不把数据储存在域里面;
获取JSP方法:<%= 域名.getAttribute(”key”) %>没找到数据返回null;
用EL方法获取:${ 域名.key }没有数据返回是,推荐用这种方法,不会造成空指针异常
EL操作WEB开发中常用的11中方法;
接收请求的参数
<%= request.getParameter("id") %>
<%= request.getParameter("name") %>
<%= Arrays.toString(request.getParameterValues("hobby")) %>
<hr/>
${ param.id }
${ param.name }
${ paramValues.hobby[0] }
${ paramValues.hobby[1] }
获取请求头
<%= request.getHeader("User-Agent") %>
<hr/>
${ header["User-Agent"] }
获取全局初始化参数
${ initParam.username }
获取Cookie中的值
${ cookie.history.value }
获取PageContext中的对象
IP地址:${ pageContext.request.remoteAddr }
工程路径:${ pageContext.request.contextPath }
|
|