黑马程序员技术交流社区

标题: 【石家庄校区】JavaWeb学习笔记 [打印本页]

作者: perry2017    时间: 2018-2-4 15:32
标题: 【石家庄校区】JavaWeb学习笔记
本帖最后由 小石姐姐 于 2018-2-8 15:33 编辑

JavaWeb学习笔记

1      Servlet入门
1.1     HTTP协议
*HTTP协议请求部分:
    * 请求行 :请求方式 请求路径 协议版本
    * 请求头 :一个key对应一个value ,也有一个key对应多个value
        * Referer,User-Agent,If-Modified-Since
    * 请求体 :POST方式的参数.
*HTTP协议响应部分:
    * 响应行 :协议版本 状态码 状态码描述
        * 状态码:200 302 304 404 500
    * 响应头 :一个key对应一个value ,也有一个key对应多个value
        * Location,Refresh,Last-Modified,禁用本地缓存,Content-Dispostion
    * 响应体 :显示到页面的内容.
1.2     Servlet:服务器端程序
*编写Servlet:
    * 编写一个类,实现Servlet接口.继承GenericServlet,HttpServlet.
    * 配置Servlet.在web.xml中配置Servlet
*Servlet的执行原理:
* Servlet的生命周期:
    * 第一次访问Servlet的时候,服务器创建一个Servlet的对象.init方法就会执行.任何一次请求服务器都会创建一个新的线程执行service方法.service的方法内部根据请求方式调用doXXX方法.当服务器关闭的时候,servlet就会被销毁.destroy方法就会执行.
* Servlet的接口实现关系:
* Servlet的登录的案例:
    * 页面提交Servlet
        * 获得请求参数:request.getParameter();
        * 封装请求参数:
        * 调用业务层类:
        * 根据处理结果作出响应:
* 页面定时刷新:
* ServletConfig对象:(了解)
* ServletContext对象:(重要)-被多个用户共享.
    * 记录网站被登录的次数.
    * 在服务器启动的时候ServletContext就会被创建.一个WEB项目创建一个ServletContext对象.
在服务器关闭的时候销毁.域对象-存的数据有作用范围.
    * 功能:
        * 1.获得文件的MIME的类型.
        * 2.获得全局初始化参数.
        * 3.存取数据-作为域对象来使用.
            *setAttribute(String name,String value);
            *getAttribute(String name);
            *removeAttribute(String name);
        * 4.读取WEB项目的文件:
            *getResourceAsStream(String path);
            *getRealPath(String path);
2      Response与Request
2.1     Response
*通过response设置状态码:setStatus(int status);
*通过response设置响应头:setHeader(String name,Stringvalue);,setIntHeader(String name,int value),setDateHeader(String name,longdate);
*通过response设置响应体:getOutputStream(),getWriter();
*response的其他的API:
     * sendRedirect(String path);
*response输出中文的乱码问题:
     * 字节流输出中文:
         * 设置浏览器的字符集编码.   response.setHeader(“Content-Type”,”text/html;charset=UTF-8”);
         * 设置输出内容的字节数组的字符集编码.            “”.getBytes(“UTF-8”);
     * 字符流输出中文:
         * 设置浏览器字符集编码.             response.setHeader(“Content-Type”,”text/html;charset=UTF-8”);
         * 设置response的缓冲区的编码.        response.setCharacterEncoding(“UTF-8”);
*response完成了文件下载功能:
2.2     Request
*使用request获得客户机的信息.getRemoteAddr(),getMethod(),getRequestURI(),getRequestURL()
* 获得请求参数:getParameter(),getParameterValues(),getParameterMap()
* 作为域对象存取数据:setAttribute(),getAttribute(),removeAttribute();
* 接收参数的中文乱码的处理:
    * GET       :new String(“”.getBytes(“ISO-8859-1”),”UTF-8”)
    * POST    :request.setCharacterEncoding(“UTF-8”);
* request何时创建和销毁的?
    * 创建:从客户端向服务器发送请求.那么服务器创建一个request对象.
    * 销毁:服务器为这次请求作出了响应之后,服务器就会销毁request对象.
    * 作用范围:一次请求.
* 转发和重定向区别?
    * 转发是一次请求一次响应,重定向两次请求和两次响应.
    * 转发地址栏不变,重定向会变化.
    * 转发的路径不需要加工程名,重定向需要加工程名.
    * 转发只能在本网站内部,重定向可以定向到任何网站.
3      Cookie与session
3.1     Cookie
Cookie           :就是将数据保存到客户端浏览器的会话技术.
*从浏览器获得Cookie        :request.getCookies();
*向浏览器回写Cookie        :response.addCookie(Cookiecookie);
*Cookie的相关的API         :
     * setPath(String path);        -- /day11   /day11/aaa
     * setMaxAge(int time);              -- 有效时长.
     * setDomain(String domain);
*Cookie的分类:
     * 会话级别Cookie:会话级别关闭浏览器的时候Cookie就销毁了.默认的
     * 持久级别Cookie:设置有效时长的Cookie,关闭浏览器的时候不会销毁的.
3.2     session
Session          :就是将数据保存到服务器端的会话技术.基于Cookie回写SessionID的.
*Session存取数据:
    * setAttribute(String name,Object value);
    * getAttribute(String name);
*Session作用域:
    * session的作用范围:一次会话.(多次请求)
    * session生命周期:
        * 创建:第一次调用getSession的时候创建session。
        * 销毁:
             * 非正常关闭服务器.
             * session过期
             * 手动调用invalidate方法的时候
4      JSP
*JSP的概述:
    * JSP:Java Server Pages.
    * JSP的运行原理:翻译成Servlet,编译成Class进行执行.
*JSP的脚本元素:
    * <%!  %>
    * <%   %>
    * <%=  %>
*JSP的注释:
*JSP的三个指令:
    * page,include,taglib   <%@ 指令名称 属性=”属性值”%>
*JSP的内置对象:
    * pageContext,request,session,application,page,response,out,config,exception
*JSP的四个作用范围
    * PageScope                        :当前页面
    * RequestScope                   :一次请求范围.
    * SessionScope                    :一次会话
    * ApplicationScope              :整个应用范围.
*JSP的动作标签:
    *<jsp:forward>,<jsp:include>,<jsp:param>,<jsp:useBean>,<jsp:setProperty>,<jsp:getProperty>
4.1     EL
*EL的概述
    * EL:Expression Language
    * EL的作用:
        * 获取数据${  }
        * 执行运算
        * 操作web开发中常用的对象${param }
        * 调用Java中方法:
4.2     JSTL
*JSTL的概述:
    * JSTL:JSP 标准标签库.
    * JSTL标签库:core,fmt,sql,xml,fn
    * JSTL的核心标签库:
        * if,forEach
    * JSTL的函数库:
        * ${fn:}







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