Javaweb备忘录3

来源:互联网 发布:淘宝北京小白羊 编辑:程序博客网 时间:2024/04/29 03:53

day14-jdbc案例(简单的curd&分页)

分页:    将数据按照页码划分,提高用户的体验度.分类:    逻辑分页:一次性将内容加载到内存(list),获取自己想要的数据 sublist截取.缺点:维护起来麻烦    物理分页:(经常使用) 每次只去查询当前页需要的数据 缺点:和数据库交互多mysql: limit    格式:        select ..... limit m,n;            [m+1,m+n]    规律:        查看第n也数据: limit (n-1)*pageSize,pageSize每页中需要的数据:    5个    当前页内容 list 通过limit查询    当前页 currPage 前台传递过来    每页显示的条数 pagesize 固定    总条数 totalCount count(*)查询    总页数 Math.ceil(totalCount*1.0/pageSize)封装成一个pagebean////////////////////在前台展示:    1.当前页数据 遍历 pb.list    2.展示首页 上一页... 然后给他们添加超链接    3.判断是否是第一页 若是:不展示 首页和上一页    4.判断是否是最后一页 若是:不展示 尾页和下一页    5.将所有的页码展示        forEach begin="1" end="${pb.totaoPage}"    6.判断是否是当前页        若是:则不加超链接        若不是:加超链接

day15-AJAX&Jquery

原生ajax:    1.获取核心对象 XMLHttpRequest    2.编写回调函数        xmlhttp.onreadystatechange=function(){            if(xmlhttp.readyState==4 && xmlhttp.status==200){                alert(xmlhttp.responseText);            }        }    3.open操作 设置访问的方式和路径        xmlhttp.open("get","url");    4.send操作        xmlhttp.send("post的参数")         若有参数需要设置一个头            xmlhttp.setRequestHeader("content-type","form表单enctype属性")////////////////////////jquery中ajax    掌握的:        $.get(url,params,fn,type);            type:"json"        $.post(url,params,fn,type);    理解:        $.ajax(选项);            选项:                url:                type:                data:                success:fn                error:                dataType:"json"json:轻量级的数据格式    格式1:        {"key":value,"key1":value}    格式2:        [e1,e2]jsonlib:    1.导入jar包    2.使用api        JSONArray.formObject(数组或者list);        JSONObject.formObject(bean或者map);//////////////////////////////////////////获取jquery对象:    $("选择器") jQuery("选择器");jquery对象>>dom对象    方式1:        jquery对象.get(index);    方式2:        jquery对象[index]dom对象>>jquery对象    $(dom对象)页面载入    $(function(){})派发事件    jquery对象.事件(function(){...});选择器:    #id值  .class值  标签名  [属性]  [属性='值']    a b:后代    a>b:孩子  a+b:大弟弟  a~b:所有弟弟    :first :last :odd :even :eq|gt|lt(index)    :hidden    :checked  :selected属性和css:    prop|attr    css文本 标签体    val()    html() text()文档处理    内部插入        append prepend     外部插入        after before    删除        remove效果:    隐藏|显示        show() hide()    淡入淡出        fadeIn() fadeOut()    滑入滑出        slideDown() slideUp()遍历    jquery对象.each(function(){    });

day16-Listener&Filter

listener(了解)    监听器,监听javaweb中三个域对象    监听对象的创建和销毁        ServletContextListener            在项目启动的时候加载配置文件        ServletRequestListener        HttpSessionListener    监听对象的属性的变化        ServletContextAttributeListener        ServletRequestAttributeListener        HttpSessionAttributeListener    监听javabean在session中状态        注意:让javabean自动感知在session中的状态,不需要在配置文件配置        HttpSessionActivationListener(钝化和活化)        HttpSessionBindingListener(绑定和解绑)    编写:        1.编写监听器        2.编写配置文件            <listener>                <listener-class>            </listener>    ///////////////////////////////////filter(★)    过滤器,过滤请求和响应    filter编写步骤:        1.编写一个类             必须实现Filter接口            必须重写方法        2.编写配置文件            注册filter            绑定路径    filter生命周期方法:        doFilter(request,response,chain)            使用步骤:             1.强转             2.编写自己的业务             3.放行    url-pattern的配置:        完全匹配        目录匹配        后缀名匹配    多个filter都匹配到的时候,执行时机是根据在xml中的filter-mapping顺序决定    filter-mapping中的两个子标签        servlet-name:过滤指定的servlet        dispatcher:过滤那种方式过来的请求            REQUEST:只过滤从浏览器发送过来的请求 (默认) 一旦显式的写出来disparcher 默认的就不起作用了            FORWARD::只过滤请求转发过来的请求////////////////////////////////////////////////////////////////////注解:了解注解,可以使用注解servlet3.0:体验下注解,完成文件上传类加载器(了解)动态代理(★):加强方法

day17-基础加强

注解:    注释:给程序员看的    注解:给jvm看的    java中三个注解:        @Override:声明该方法是从父类上继承过来的        @SuppressWarnings:抑制警告         @Deprecated:声明该方法不赞成使用    自定义注解:        注解属性            类型:                基本类型                string                class                annotation                enum                以上类型的一维数组            若有属性,使用的时候必须有值        元注解            @Retention:声明注解保留到那个阶段                SOURCE:                CLASS:                RUNTIME:            @Target:声明注解作用在那个部分                TYPE:                METHOD:                FILED:    注解的格式:        @interface 注解名{        }    ///////////////////////////////////    ///////////////////////////////////servlet3.0    注解开发        @WebServlet(urlPatterns="/demo1")        @WebListener        @WebFilter(urlPatterns="/demo2")    文件上传        浏览器端的要求:            表单的提交方式必须是post            表单必须有文件上传组件            表单的enctype属性值为 multipart/form-data        服务器获取的时候            servlet3.0要求                添加一个@MultipartConfig                获取普通的组件                      request.getParameter(name属性的值)                获取文件上传组件                    Part part=request.getPart("name属性的值")                    //获取文件的名称                    Stirng sss=part.getHeader("content-disposition")                    //然后截取才能获取文件名称                    sss.substring(sss.indexof("filename=")+10,sss.length-1);                    //获取文件流                    part.getInputStream();                    //删除临时文件                    part.delete()        上传时候需要注意的问题:            文件重名 随机名称            文件安全 重要的文件放在 web-inf meta-inf  服务器磁盘            目录分离                时间                用户                文件个数                随机目录//////////////////////////////////////////动态代理(★)    jdk中proxy        前提:实现接口        Proxy.newProxyInstance(被代理对象.getClass().getClassLoader(),        被代理对象.getClass().getInterfaces(),new InvocationHandler(){            invoke(代理对象,当前执行的方法,需要的参数){            }        });
0 0