黑马程序员技术交流社区

标题: [石家庄校区]WEB阶段11天到18天笔记 [打印本页]

作者: 曹可津    时间: 2018-5-21 15:20
标题: [石家庄校区]WEB阶段11天到18天笔记
本帖最后由 小石姐姐 于 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 }






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2