java:Review(J2ee)

1.oracle:
    1.1 增:insert into 
        删:delete from 
        改:update tablename set
        查:select * from 
    1.2 聚合函数
        max,min,avg,ceil,floor,round
    1.3 order by:必须要写在sql语句的最后(where之后)
        group by:如果使用group by,在select后就必须要有该字段,而且group by不能和where连用,只能和having连用
    1.4 多表联查
        left join:以左表为基准,关联右表 select * from table1 t1 left join table2 t2 on t1.id = t2.t1_id;
        right join:以右表为基准,关联左右 select * from tabl:e1 t1 right join table2 t2 on t1.id = t2.t1_id;
        *inner join:只有两表关联都有值的情况下,才能查询出数据 select * from tabl:e1 t1 (inner) join table2 t2 on t1.id = t2.t1_id;
        select * from table1 t1 full join table2 t2
        int[] a = {1,2,3};
        int[] b = {4,5,6};
        笛卡尔积:列出a和b的所有排列顺序14,15,16,24,25,26,34,35,36...


    1.5 视图
        create or replace view 视图名 (select * from table1);
        在创建视图时如果已经有这个视图了,oracle就会报错
        加上or replace,在创建的时候如果没有就直接创建,如果有就替换(覆盖)
    1.6 索引
        B树索引:当列被建立的时候就默认自带B树索引
        位图索引

2.HTML
    2.1 table表格
        <table>
            <thead>
                <tr>
                    <th></th>
                </tr>
            </thead>

            <tbody>
                <tr>
                    <td></td>
                </tr>
            </tbody>
        </table>
    2.2 ul(无序的),ol(有序的)列表
        <ul>
            <li></li>
        </ul>
        <ol>
            <li></li>
        </ol>
    2.3 form表单
        method="get/post"
            get:以地址栏的形式传递参数(在地址栏中显示参数内容)
            post:把所需要传递的参数封装地址中一起传递(不显示参数内容)
        action=""
            当点击提交的时候,跳转的地址

        input
            type="text":默认为text
                  password:密码
                  radio:单选:以name的值分组,只有name相同的时候,才能实现单选
                  checkbox:多选
                  file:文件上传:如果是文件上传,form表单必须要有一个属性encType="multipart/form-data",而且请求方式一定是post
                  textarea:文本域,可以随意拉动,而且也能默认设置行数和列数(cols,rows)
        select:下拉列表
            <select>
                <option value="传递到后台内容">在页面显示的内容</option>
            </select>
            使用selected = "selected";默认选中某一个option
        input
            type="button":当设置type为button的时候,就会成为一个按钮,点击按钮form表单并不会跳转
            为了和js连用,绑定某些事件
            type="submit":当点击type="submit"的时候,form表单会跳转到指定地址
        frameset:
            在html5已经废弃
                是html的框架:
                    <frameset rows="100, *">
                        <frame src="top.jsp" name="top"></frame>
                        <frameset cols="100, *">
                            <frame src="left.jsp" name="left"></frame>
                            <frame src="right.jsp" name="right"></frame>
                        </frameset>
                    </frameset>
                如果想点击左侧的内容让右侧发生改变
                <a href="" target="frame的name值">点击</a>
3.css
    3.1 css的几种写法
        3.1.1<a style=""></a>:行内样式

        3.1.2在html页面的head标签中
            <style type="text/css">
                写css代码


            </style>:内部样式
        3.1.3在html页面的head标签中
            <link type="text/css" href="theme.css" rel="stylesheet"></link>
    3.2 css的选择器
        3.2.1 id选择器:<a id=""></a>
        3.2.2 类选择器:<a class=""></a>
        3.2.3 标签选择器:<a></a>
        id选择器:#id的值
        类选择器:.class的值
        标签选择器:a
    3.3 需要掌握的css的样式
        color:red,blue,yellow,black,#e0e0e0...(255,255,255)...
        border
        background
        center
        margin
        padding

4.js
    4.1 通过id选中某个标签
        document.getElementById("id");
    4.2 通过class选中某个标签
        document.getElementsByClassName("class");
    4.3 通过标签直接选择
        document.gteElementsByTagName("tagName");
    4.4 通过name属性来选择标签
        document.getElementsByName("name");
    4.5 事件
        onclick单击
        ondbClick双击
        onfocus:聚焦
        onblur:失去焦点
        onkeyup:键盘弹起
        onkeydown:键盘按下
        onmouseover:鼠标移过(悬浮)
        onmouseup:鼠标松开
        onmousedown:鼠标按下
        onchange:当改变的时候触发
        onsubmit:写在form表单中,onsubmit="return check(this);"
                 还可以绑定到type="submit"的提交按钮
    4.6 声明方式
        4.6.1在html的head标签中
        <script type="text/javascript">
            function check() {

            }
        </script>
        4.6.2在html的head标签中
        <script type="text/javascript" src="xxx.js"></script>
    4.7 操作css
        document.getElementById("").style.color="red";

    4.8 正则表达式
        var reg = /^$/;声明一个正则表达式
        if(reg.test(username)) { 验证用户名是否遵循正则

        }

5.jquery
    5.1 导入js的文件(jquery-3.2.1.min.js)
        jqeury代码一定要写在导入文件下面
    5.2 jquery声明方式
        $(function(){

        });
        $(document).ready(function(){

        });
        当页面加载完成后就会直接触发jQuery代码
    5.3 事件
        和js唯一的区别:js带on,jQuery不带on,eg: js:onclick jquery:click
        $("a").click(function(){

        });
        $("a").on("click", functionb(){
            使用on函数可以替换随意的事件
        });
    5.4 操作css
        $("a").css();

    5.5 prop,attr
        prop:表单自带的属性,使用prop获取或者修改
        attr:自定义的属性,使用attr获取或者修改
        <a></a>
        $("a").prop("href","http://www.bjsxt.com");
        <a name="bjsxt"></a>
        var name = $("a").attr("name");
    5.6 表单验证
        $("form").submit(function({
            进行表单验证
        }));

    5.7 jQuery的特效
        hide()
        show()
        toggle()
        slideUp()
        slideDown()
        slideToggle()
        ...
    5.8 ajax
        $.get("需要跳转的地址","需要携带的参数",function(data){
            // 服务器响应回来的数据(json格式(字符串))
        });
        服务器向客户端响应ajax数据的时候:
            response.getWriter().print(""/int/Object);
        $.post(...)post请求方式
        如果客户端向服务器端响应的为json格式的对象
        $.getJSON(...)
        $.postJSON(...)-->被废弃
        如果使用json对象进行传递值:
            导入gson.jar
            response.getWriter().print(new Gson().toJson(""/int/Object));
        $.ajax({
            async:true/false, 是否异步,默认为true
            method : get/post
            data : 需要传递的数据
            success: function(data){
                服务端向客户端返回的数据
            }
            url : 发送的地址
        });

6.jsp
    jsp也是一个servlet,因为间接的继承了HttpServlet
    6.1 jsp的作用域(从小到大)
            pageContext:只作用于当前页面
            reuqest:一次请求,和请求转发的所有servlet
            session:一次会话,当浏览器关闭或者服务器关闭就结束
            application:作用全局的项目,当tomcat启动的时候就会被创建,服务器关闭的时候被销毁(所有用户都共享同一个application对象)
    6.2 内置对象(内键对象)
        不需要创建,直接可以使用的对象
        response
        page
        pageConfig
        out
        exception
        输出:out,response
        打酱油:exception,pageConfig,page
        作用域:pageContext,request,session,application
    6.3 jstl
        <%@ taglib uri="" prefix="c" /%>
        <c:forEach>
        <c:if>
        <c:choose>
            <c:when test="">
            <c:otherwise>
        </c:choose>
        <c:remove scope="" />
    6.4 EL表达式
        EL表达式是用于jsp页面展示值
        一般和jstl连用
        <c:forEach items="${list}" var="object" varStatus="vars">
            ${object.id}
            ${vars.count}--第几个被打印
            ${vars.index}--索引
            ${vars.first}--是否为第一个被打印
            ${vars.last}--是否为最后一个被打印
        </c:forEach>
    6.5 指令
        <%@ page import pageEncoding language isErrorPage="true" errorPage="指定一个错误页面,只能保护运行时异常,不能保护检查时异常" session="true"
        <jsp:include page="">动态导入
        <%@ include file="" %>静态导入
        静态导入:
            会把两个页面合成一个页面,tomcat会把jsp编译成一个class文件
        动态导入:
            tomcat会分别编译两个jsp页面-->编译成两个class文件

7.servlet
    7.1 什么是servlet
        servlet就是一个class,这个class是为了处理客户端的请求而生
        如果要成为一个servlet就必须要继承HttpServlet
        重写service方法(HttpServletRequest, HttpServletResponse)
        在web.xml进行配置
            <servlet>
                <servlet-name>给servlet取一个名字</servlet-name>
                <servlet-class>编写的servlet的全限定名</servlet-class>
            </servlet>
            <servlet-mapping>
                <servlet-name>给servlet取一个名字</servlet-name>
                <url-pattern>/*</url-pattern>
                <url-pattern>*.aa</url-pattern>
                <url-pattern>/aa/</url-pattern>
                <url-pattern>xxx.xxx</url-pattern>
            </servlet-mapping>
            servlet-mapping中name必须要servlet中的name完全相同

8.filter
    8.1 当客户端发送的请求到服务器时,过滤器就要先过滤一遍
    8.2 声明一个过滤器
        实现Filter接口(javax.servlet.Filter)
        重写三个方法
            init初始化
            destroy销毁
            doFilter(ServletRequest, ServletResponse, ServletChain)
            ServletChain.doFilter(request, response);作用:放行
    8.3 filter配置顺序:(登录过滤,上传过滤(.txt,.zip,.jpg,.jepg,.png..),编码集的过滤(UTF-8))
        web.xml中配置的先后顺序来执行
            同一个路径配置了两个过滤器,正着进,倒着出
        在web.xml中配置filter
            <filter>
                <filter-name>给过滤器起一个名字</filter-name>
                <filter-class>编写的class的全限定名</filter-class>
            </filter>
            <filter-mapping>
                <filter-name>给过滤器起一个名字</filter-name>
                <url-pattern></url-pattern>和servlet中url-pattern命名规则一直
                <servlet-name>需要提前过滤的servlet的name值</servlet-name>
            </filter-mapping>
            filter-mapping中name必须要filter中的name完全相同

9.listener
    9.1 什么是监听器?
        监视器,一般情况下监视整个项目中很重要的内容或者对象
        监听器一般只监听作用域
            pageContext不被监听,因为没有必要

            request
                HttpServletRequstListener(监听生命周期)
                    init初始化
                    destroy销毁
                HttpServletRequstAttributeListener(监听request的值)
                    add当添加的时候调用
                    remove当移除的时候调用
                    replace当替换的时候调用
            session

            application

10.session:一般情况下保存是用户的信息(当用户登录成功以后)
    10.1 session是一次会话
        当客户端第一次访问服务器端的时候,session会在服务器端被创建,由cookie传递到客户端(JSessionID)
        会保存在浏览器上,只要不关闭浏览器或者不关闭服务器,JSessionID一直会存在,当客户端第二次向服务器端发送请求的时候,携带着sessionID,在服务器端进行寻找,如果找到了就说明来过,如果没有找过服务器端会重新创建一个sessionID发送给客户端
        session.setAttribute()
        session.getAttribute()
        session.removeAttribute()

11.cookie:(免登陆功能,记住用户名和密码功能,购物车功能)
    11.1 首先cookie会在服务器被创建response.addCookie();<---Cookie cookie = new Cookie("",Object);
        不设置cookie的失效时间,cookie会保存在浏览器内存中,当浏览器关闭的时候cookie就会消失
        cookie.setMaxAge(60*60*24*30);单位是秒
        一旦设置的cookie最大存活时间,cookie就会被保存在客户端的硬盘中
        cookie.path("localhost:8080/zzsxt/admin.sxt?type=login");
        一旦设置了cookie的地址,就只有访问这个路径的时候才能拿到cookie
        request.getCookies:返回的是一个cookie数组
        遍历cookie for(Cookie cookie : cookies) for(int i = 0; i < cookies.length; i++)

12.pagination
    oracle:
    select t2.* from (select t1.*, rownum as rn1 from (select * from table1) t1 where rownum >= 1) t2 where t1.rn1 <= 5;
    mysql:
    select * from table1 limit 0,5;
    0:从第一条数据开始(数据的下标),5:每一页显示5条

13.MVC
    13.1 什么是MVC:
        mvc是一种模式,分层开发
        好处:如果某一个需要变更或者更新,其他的代码不受任何影响
    13.2 MVC:
        M:model
            entity,dao,service
            dao查询出的数据会封装到entity中,所以可以把entity看成dao的一部分
        V:view
            jsp
        C:controller
            servlet(action)(controller)

    13.3 MVC的实现过程
        客户端发送一次请求(jsp)-->服务器端(servlet)-->服务器端接收到请求后开始指挥-->service(处理业务逻辑的一层)-->dao(处理数据)-->database(从数据库中进行处理(sql))(无论找到与否都会返回)-->dao(dao把拿到的数据封装到entity中)-->service(拿到dao传输的数据,挑挑拣拣(空值判定,验证是否通过...))-->controller(servlet)-->最终servlet把结果响应给客户端(jsp)-->客户看到了页面
原文地址:https://www.cnblogs.com/kuangzhisen/p/7308726.html