一、JavaBean的概念(*****)
            1、JavaBean就是一个遵循特殊写法的普通类
            2、特殊写法
                    a、必须有默认的构造方法
                    b、所有字段定位私有的   
                    c、提供公有的getter或setter方法,属性
                    d、一般实现java.io.Serializable (session的持久化需要)             
            3、一定要符合Java的命名规范。           
            4、应用场景:(***)
                    在企业级开发中,JavaBean是用来传递数据的。

二、JavaWeb的开发模型(*****)
            开发原则:JSP页面中不能出现一行Java脚本<%%>和Java表达式<%=%>
                                      Java脚本:替代方案,自定义标签。
                                      Java表达式:替代方案,EL表达式。   Struts2框架:OGNL表达式。
                                      
            模型一:了解:JSP+JavaBean  : 易造成业务逻辑混乱,只适合业务逻辑简单的小程序;          
            模型二:开发实际应用: MVC+三层架构(Servlet+JSP+JavaBean)                         
                           程序中
                                      M:厨师  JavaBean:模型
                                      V:上的菜  JSP:显示页面
                                      C: 服务台 Servlet:控制器             
                           
                           

三、JSP中操作JavaBean的动作元素(***)
              jsp:useBean
                      作用:用于在指定域范围内查找指定名称的JavaBean对象,找到了就直接使用;
                                 没有找到,创建一个,并放到指定的域范围内。
                      属性:
                                 id:必须的。JavaBean的名称
                                 class:JavaBean的完整类名
                                 scope:域范围。默认是page范围。可选值:page request session application                        
                      注意:如果该标签有主体内容,只在创建新对象时才会执行。
                                 当scope为page或request时,每次都执行主体内容  ;  
                                 为session或appli时,只第一次执行主体内容
                                 
                     例: 
                     ----------------------------------------------------------------------------------------
                     <jsp:useBean id="p" class="cn.itcast.domain.Person" scope="page">凤姐</jsp:useBean>                            
                     <%=p.getName() %>
                     原理:
                      cn.itcast.domain.Person p = null;
                      synchronized{
                              p = (cn.itcast.domain.Person)pageContext.getAttribute("p",PageContext.PAGE_SCOPE);
                              if(p == null){
                                      p = new cn.itcast.domain.Person();
                                      pageContext.setAttribute("p",p,PageContext.PAGE_SCOPE);
                              }
                      }
                     ----------------------------------------------------------------------------------------
                                                                
              jsp:setProperty(必须先使用useBean)
                      作用:调用JavaBean的setter方法。还能自动类型转换,仅限基本类型
                      属性:
                                property:必须的。属性名称。比如setName,名称是name。可以使用通配符*。
                                                   使用前提是请求参数的名称与属性的名称完全一致。
                                name:必须的。哪个对象的,即jsp:useBean中的id的取值。
                                value:属性的取值。支持直接量;支持表达式(<%=表达式%>)。
                                param:请求参数名
                        
                      例:
                      ----------------------------------------------------------------------------------------
                       <!-- 利用value属性设置JavaBean的各种属性 -->
                       <% String s = "fuck"; %> 
                      <jsp:useBean  class="cn.itcast.domain.Person" scope="page" ></jsp:useBean>
                      <jsp:setProperty property="name" name="p" value="<%=s %>" />
                      <jsp:setProperty property="gender" name="p" value="male" />
                       <%=p.getName() %> <br/>
                       <%=p.getGender() %> <br/>
                      ----------------------------------------------------------------------------------------
                      <!-- 利用请求参数名设置JavaBean的各种属性 -->
                      <!-- http://localhost:8080/day10/1.jsp?name=asb&gender=male -->
                      <jsp:setProperty property="name" name="p" param="name"/>
                      <jsp:setProperty property="gender" name="p" param="gender"/>
                      <%=p.getName() %> <br/>
                      <%=p.getGender() %> <br/>
                      原理:
                                String name = request.getParameter("name");
                                p.setName(name);  
                      ----------------------------------------------------------------------------------------
                      <!-- 请求参数的名称和属性的名称一致时,可以使用通配符* -->
                      <!-- http://localhost:8080/day10/1.jsp?name=asb&gender=male -->
                       <jsp:setProperty property="*" name="p"/>
                       <%=p.getName() %> <br/>
                       <%=p.getGender() %> <br/>                                
                      ----------------------------------------------------------------------------------------
                        
              jsp:getProperty
                      作用:调用JavaBean的getter方法。
                      属性:
                                 property:必须的。属性的名称。比如getName,名称是name。
                                 name:必须的。哪个对象的, 即jsp:useBean中的id的取值。
                      例: 
                      ----------------------------------------------------------------------------------------
                      <!-- http://localhost:8080/day10/1.jsp?name=asb&gender=male -->
                      <jsp:setProperty property="*" name="p"/>
                      <jsp:getProperty property="gender" name="p"/>
                      ----------------------------------------------------------------------------------------
                                
四、EL表达式(*****)
              它只是JSP中的表达式,不是一种开发语言,为了替代JSP中的java表达式。
              基本语法:${EL表达式}
        4.1获取数据
                    EL表达式只能获取四大域中的数据(*****)。
                    EL表达式获取的对象如果是null,页面不会显示数据。因此,EL表达式中永远不会出现空指针异常
                    p.name:调用域中名称为p对象的getName方法,点运算符是用于获取属性的取值的。
                                  原理: 调用pageContext.findAttribute("p")方法
                                              依次从page request session(注意缓存) application域范围内找名称p对应的对象
                                                             
                    例:
                    ----------------------------------------------------------------------------------------------------------
                    <!-- 获取域中JavaBean的普通属性的方式 -->
                    <jsp:useBean id="p" class="cn.itcast.domain.Person" ></jsp:useBean>
                    法1:  <%=p.getName() %><br/>
                    法2: <jsp:getProperty property="name" name="p"/><br/>
                    法3:  ${p.name}      (选该方式)                                                           
                               ${p['name']}
                    ----------------------------------------------------------------------------------------------------------
                    <!-- 获取域中JavaBean的类属性的方式 -->
                    public class Person implements Serializable {
                            private Address address = new Address();
                            public Address getAddress() {    return address;   }
                            public void setAddress(Address address) {   this.address = address;   }
                    }
                    public class Address {
                            private String city = "上海";
                            public String getCity() {    return city;    }
                            public void setCity(String city) {   this.city = city;   }
                     }
                     
                     <jsp:useBean id="p" class="cn.itcast.domain.Person" ></jsp:useBean>
                     ${p.address.city}
                     注:  要考虑清楚.后为什么元素   p.address == new Address();  p.address.city == 上海;
                    ----------------------------------------------------------------------------------------------------------
                    <!-- 获取数组中指定的元素 -->
                    String[] str = {"a","b","c"};
                    // 注意:要将数组弄到域对象中才能被EL表达式操作 
                    pageContext.setAttribute("str",str);
                    ${str[1]}
                    ----------------------------------------------------------------------------------------------------------
                    <!-- 获取List集合中指定的元素 -->
                    List list = new ArrayList();
                    list.add("aa");
                    list.add("bb");
                    list.add("cc");
                    pageContext.setAttribute("list",list);
                    ${list[2]}
                    ----------------------------------------------------------------------------------------------------------
                    <!-- 获取Map集合中指定的元素 -->
                    Map map1 = new LinkedHashMap();
                    map1.put("a","aaa");
                    map1.put("b","bbb");
                    map1.put("c","ccc");
                    pageContext.setAttribute("mm1",map1);
                    ${mm1.b}
                    ----------------------------------------------------------------------------------------------------------
                    Map map2 = new LinkedHashMap();
                    // 注:  若键为数字,必须换为字符串 因为JSP没有自动装/拆箱
                    map2.put("1","aaa");
                    map2.put("2","bbb");
                    map2.put("3","ccc");
                    pageContext.setAttribute("mm2",map2);
                    ${mm2["3"]}
                    ----------------------------------------------------------------------------------------------------------
                    Map map3 = new LinkedHashMap();
                    map3.put("a", new Person("谢霆锋","男", true));
                    map3.put("b",new Person("张卫健","男", true));
                    map3.put("c",new Person("刘德华","男", false));
                    pageContext.setAttribute("mm3",map3);
                    ${mm3["a"].name }<br/>
                    ${mm3.c.name}
                    ----------------------------------------------------------------------------------------------------------                     
                        
          
        4.2数学逻辑运算:
                    运算符:
                                  empty运算符:如果判断的对象是null或者空字符串,都返回true。
                                                           对于集合,即使集合对象本身不是null,没有任何元素,也返回true。                                       
                                  .运算符 和  []运算符:          
                                          .运算符能做的,[]也能做。[]能做的,.不一定能做。
                                                  如${p.name}===${p['name']}==${p["name"]}           
                                           []运算符优秀在可以取不符合Java命名规范的东东。   
                                                  如: ${headerValues["accept-encoding"][0]} 
                     注:  EL表达式不支持字符串连接操作。
                    
                    
                                      
                    例:
                    ----------------------------------------------------------------------------------------------------------
                    ${s}<br/>                       // 什么都没有
                    ${empty ""}<br/>         // true
                    ${empty s}<br/>           // true
                    ----------------------------------------------------------------------------------------------------------
                    List list = new ArrayList();
                    // list.add("aaa");
                    pageContext.setAttribute("list",list);
                    ${empty list}                 // true   若加入元素后,为false
                    ----------------------------------------------------------------------------------------------------------
                    //session.setAttribute("user","谢霆锋");
                    ${empty user?"请登录":"欢迎您:"}${user}      
                    ----------------------------------------------------------------------------------------------------------
                    // 0 女  1 男
                    pageContext.setAttribute("gender","1");
                    ${gender=="0"?"女":"男"}
                    ----------------------------------------------------------------------------------------------------------
          
        4.3获取JSP的内置对象(11大EL内置对象):
                    难点,不要与JSP的内置对象和范围名称搞混
                    11大EL隐式对象中,其中pageContext是表示自身对象外,其余都是表示的Map结构
                    
                    
                   
                    
                    例:
                    ------------------------------------------------------------------------------------------------------------------------------
                    PageContext内置对象
                    ${pageContext}<br/>
                    <!-- 在EL中得到HttpServletRequest对象 -->
                    ${pageContext.request }<br/>
                    <!-- 在EL中获取当前应用的名称 -->
                    ${pageContext.request.contextPath}<br/>
                    <!-- 获取HttpServletResponse采用的编码 -->
                    ${pageContext.response.characterEncoding}<br/>
                    ------------------------------------------------------------------------------------------------------------------------------
                    PageScope内置对象 
                    <%
                    pageContext.setAttribute("a","aa");
                    pageContext.setAttribute("p1",new Person("刘谦","男",false));
                    ${pageScope.a}<br/>
                    %>
                    ${pageScope.p1.name}<br/>
                    ------------------------------------------------------------------------------------------------------------------------------
                    RequestScope内置对象
                    <%
                    pageContext.setAttribute("p2",new Person("刘非","女",false),PageContext.REQUEST_SCOPE);  
                     %>
                    ${requestScope.p2.gender}
                    ------------------------------------------------------------------------------------------------------------------------------
                    sessionScope内置对象
                    <% 
                    pageContext.setAttribute("user","abc");                  
                    Person person = new Person("刘亦菲","女",true);
                    session.setAttribute("user",person);
                    %>
                    ${empty sessionScope.user?"请登录":"欢迎您:"}${sessionScope.user.name}   // 注: 要指定user的查找范围
                    ------------------------------------------------------------------------------------------------------------------------------
                    applicationScope内置对象如上
                    ------------------------------------------------------------------------------------------------------------------------------
                    param内置对象   注:  参数重名,则值显示第一个参数和值;
                    // 获取get方式提交的参数值
                          <!-- 访问:  http://localhost:8080/day10/4.jsp?username=aaa&username=bbb&password=123 -->
                          ${param}<br/>                                                                       // {username=aaa  password=123}
                          ${param.username}<br/>                                                  //  aaa
                          ${param.username} == ${param.password}<br/>       //  aaa=123
                   
                   // 获取post方式提交的参数值
                           <form  action="2.jsp" method="post">
                                  <textarea rows="6" cols="8" name="tt">/<textarea><br/><br/>
                                   <input type="submit" value="提交">
                           </form>
                           ${param.tt}
                    ------------------------------------------------------------------------------------------------------------------------------
                    paramValues内置对象
                    <!-- 访问:  http://localhost:8080/day10/4.jsp?username=aaa&username=bbb&password=123 -->
                    ${paramValues}<br/>                                            // {username=Java.lang.String@ab56bc,password=Java.lang.String@ab56bc}
                    ${paramValues.username[0]}<br/>                    //  aaa
                    ${paramValues.username[1]}<br/>                    //  bbb
                    ${paramValues.password[0]}<br/>                    //   123 
                    ------------------------------------------------------------------------------------------------------------------------------
                    header内置对象
                    ${header["accept-encoding"]}                              // 注: 必须用【】运算符
                    ------------------------------------------------------------------------------------------------------------------------------
                    headerValues内置对象
                    ${headerValues["accept-encoding"][0]} 
                    ------------------------------------------------------------------------------------------------------------------------------
                    cookie内置对象
                    <!-- 取JSESSIONID这个cookie的名称 -->
                    ${cookie["JSESSIONID"].name}<br/>
                    <!-- 取JSESSIONID这个cookie的值 -->
                    ${cookie.JSESSIONID.value}<br/>                         
                    // 注: cookie.JSESSIONID为cookie对象本身,为一个map, cookie.JSESSIONID.value为map的值
                    ------------------------------------------------------------------------------------------------------------------------------
                    initParam内置对象
                    <context-param>
                            <param-name>encoding</param-name>
                            <param-value>UTF-8</param-value>
                    </context-param>
                    ${initParam.encoding}
                    ------------------------------------------------------------------------------------------------------------------------------
        
        4.4调用普通类的静态方法(自定义EL函数)  (有问题???)
                    编写步骤(自定义EL函数的编写步骤即自定义标签的编写步骤):
                      a、编写一个普通的java类,提供一个静态方法
                                    public class FunctionDemo {
                                        public static String toUpperCase(String str){
                                                return str.toUpperCase();
                                        }
                                    }
                      b、在JavaWeb应用的WEB-INF目录下建立一个扩展名是tld(taglib definition)的XML文件(参考Tomcat中的示例)。内容如下:
                                    <?xml version="1.0" encoding="UTF-8"?>
                                    <taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                                      xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
                                      version="2.0">
                                      <tlib-version>1.0</tlib-version>
                                      <short-name>myfn</short-name>
                                      <uri>http://www.itcast.cn/myfn</uri>
                                      <function><!-- 定义函数 -->
                                              <name>toUppercase</name>
                                              <function-class>cn.itcast.el.FunctionDemo</function-class>
                                              <function-signature>java.lang.String toUpperCase( java.lang.String )</function-signature>
                                      </function>
                                    </taglib>
                      c、(可选步骤)前提是把tld文件放到了WEB-INF目录下。
                            告知应用,tld文件和tld中的uri的对应。修改web.xml,增加以下内容:
                                    <jsp-config>
                                            <taglib>
                                                    <taglib-uri>http://www.itcast.cn/myfn</taglib-uri>
                                                    <taglib-location>/WEB-INF/myfn.tld</taglib-location>
                                            </taglib>
                                      </jsp-config>
                      d、在JSP中使用
                                    用taglib指令,引入自定义的EL函数库
                                    <%@ taglib uri="http://www.itcast.cn/myfn" prefix="myfn"%>
                                    <%
                                    pageContext.setAttribute("p","abcdefg");
                                    %>  
                                    ${myfn:toUppercase(p)}                         // 为何不管用???
                
五、SUN提供的标准EL函数库
                    JSTL标准标签:(Jsp Standard Tag Libary)
                           Core:   核心
                           Fmt:  国际化
                           SQL:  数据库操作
                           XML: xml操作
                           fn:     EL函数库
                      
                   需要导入JSTL的jar包:standard.jar和jstl.jar                    
                   参考 第18章 JSTL Functions标签库
                   注: 没有提示,需要使用某个函数时要参考文档;若没有,则自定义函数
                   
                   例:
                   <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
                    ${fn:contains("asdf","asd") }
                    
                   <%    
                        // html标签的转义   直接输出纯文本
                        pageContext.setAttribute("h","<h1>haha</h1>");
                   %>
                   ${fn:escapeXml(h) }<br/><br/>

六、JSTL中的核心标签库(替换掉JSP中的Java脚本)
              需要导入JSTL的jar包:standard.jar和jstl.jar       
              需要引入:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
              
              c:if
                      作用:判断是否为true,如果为true,那么标签的主体内容就会显示。
                      属性:
                                test:必须的。要求必须是boolean的。支持表达式(EL或Java表达式)
                                var:保存test运算结果的变量
                                scope: 保存的域范围。默认是page
                                
                      例:
                              -----------------------------------------------------------------------------
                              <%
                              session.setAttribute("user","谢霆锋");
                              %>
                              <c:if test="${sessionScope.user == null}">
                                        对不起!请登录
                              </c:if>
                              <c:if test="${sessionScope.user != null}">
                                        欢迎您:${sessionScope.user }
                              </c:if>
                              -----------------------------------------------------------------------------
                        
              c:forEach
                      遍历:数组、List、Set、Map
                      属性:
                        items:要遍历的目标对象。支持表达式
                        var:    变量名。指向当前遍历的集合中的一个元素
                        begin:开始的索引(含),从0开始
                        end:   结束的索引(含)
                        step:  步长。默认是1
                        varStatus:取一个名字,引用了一个对象。
                        varStatus对象有以下方法:
                              int getIndex():当前记录的索引号。从0开始
                              int getCount():当前记录的顺序。从1开始
                              boolean isFirst():是否是第一条记录
                              boolean isLast():是否是最后一条记录
                              
                        例:
                        -----------------------------------------------------------------------------
                        遍历数组
                        <%
                        String str[] = {"a","b","c"};
                        pageContext.setAttribute("str",str);
                        %>
                        <c:forEach items="${str}" var="s">
                                ${s}<br/>                           
                        </c:forEach>                                                                            
                        -----------------------------------------------------------------------------
                        遍历list集合
                        List list = new ArrayList();
                        list.add("aa");
                        list.add("bb");
                        pageContext.setAttribute("list",list);
                        %>
                        <c:forEach items="${list}" var="e">
                                ${e}<br/>
                        </c:forEach>
                        -----------------------------------------------------------------------------
                        遍历set集合
                        <%
                        Set set = new HashSet();
                        set.add("aaa");
                        set.add("bbb");
                        set.add("ccc");
                        pageContext.setAttribute("set",set);
                        %>
                        <c:forEach items="${set}" var="e">
                                ${e}<br/>
                        </c:forEach>
                        -----------------------------------------------------------------------------
                        遍历map集合
                        <%
                        Map map = new LinkedHashMap();
                        map.put("a","aaaa");
                        map.put("b","bbbb");
                        map.put("1","1111");
                        pageContext.setAttribute("map",map);
                        %>
                        <c:forEach items="${map}" var="me">
                                ${me.key} = ${me.value }<br/>
                        </c:forEach>
                        -----------------------------------------------------------------------------
                        <c:forEach begin="1" end="5" var="s">
                          ${s}<br/>            // 1,2,3,4,5
                        </c:forEach>
                        <%
                        String s1[] = {"a","b","c","d","e","f"};
                        pageContext.setAttribute("s1",s1);
                        %>
                        <c:forEach items="${s1}" var="s" begin="1" end="4" >
                                ${s}<br/>       // b,c,d,e
                        </c:forEach>
                        <c:forEach items="${s1}" step="2" >
                                ${s}<br/>       // a,c,e
                        </c:forEach>
                        <c:forEach items="${s1}" var="s" begin="1" end="4" step="2">
                                ${s}<br/>       // b,d,e
                        </c:forEach>
                        -----------------------------------------------------------------------------
                        应用:
                        <%
                        List<Person> ps = new ArrayList<Person>();
                        ps.add(new Person("谢霆锋","1",true));
                        ps.add(new Person("张卫健","1",true));
                        ps.add(new Person("刘德华","1",true));
                        ps.add(new Person("高圆圆","0",false));
                        ps.add(new Person("baby","0",false));
                        pageContext.setAttribute("ps",ps);
                        %>
                        <table border="1" width="60%">
                                <tr>
                                        <th>索引</th>
                                        <th>顺序</th>
                                        <th>第一个</th>
                                        <th>最后一个</th>
                                        <th>姓名</th>
                                        <th>性别</th>
                                        <th>婚姻</th>
                                </tr>
                                <c:forEach items="${ps}" var="p" varStatus="vs">
                                        <tr bgcolor="${vs.index%2==0?'#CFCFCF':'#4D88A6' }">
                                                <td>${vs.index}</td>
                                                <td>${vs.count}</td>
                                                <td>${vs.first}</td>
                                                <td>${vs.last}</td>
                                                <td>${p.name}</td>
                                                <td>${p.gender=="1"?"男":"女"}</td>
                                                <td>${p.married?"已婚":"未婚"}</td>
                                        </tr>
                                </c:forEach>
                        </table>
                        -----------------------------------------------------------------------------

JSP:JavaBean+EL函数+JSTL标签相关推荐

  1. El表达式+jstl标签

    目录 前言 EL获取数据(从四大域中获取属性) 1.如果没有使用EL的内置对象,则查找数据顺序是依次按照由小到大范围从四大域中查找指定名称的属性值 2.EL中的内置对象 1.域属性相关(4个) 2.其 ...

  2. javaweb(09) EL表达式JSTL标签库(jsp相关,了解)

    javaweb(09) EL表达式&JSTL标签库(jsp相关,了解) EL表达式 简介和基本使用 EL 表达式的全称是:Expression Language.是表达式语言. EL 表达式的 ...

  3. MySQL、JDBC、HTML、CSS、JavaScript、jQuery、tomcat、Http、Servlet、JSP、EL、JSTL、Maven、Cookie、Session(框架第一部分)

    第一章 MySQL 一 .数据库 1.什么是数据库? 所谓的数据库就是指存储和管理数据的仓库 2.数据库有哪些分类? 3.什么是关系型数据库? 底层以二维表的形式保存数据的库就是关系型数据库 stu- ...

  4. WEB阶段5:JSP、EL、JSTL、MVC软件结构

    JSP.EL.JSTL.MVC软件结构 回顾 Cookie对象 与Cookie操作相关的方法 Cookie类的方法 作用 Cookie(String name,String value) 构造方法,通 ...

  5. EL 表达式 JSTL 标签库

    EL 表达式 & JSTL 标签库 1.什么是EL表达式?EL表达式的作用? EL 表达式的全称是:Expression Language.是表达式语言. EL 表达式的什么作用:EL 表达式 ...

  6. JSP页面中使用JSTL标签出现无法解析问题解决办法

    JSP页面中使用JSTL标签出现无法解析问题解决办法 参考文章: (1)JSP页面中使用JSTL标签出现无法解析问题解决办法 (2)https://www.cnblogs.com/xdp-gacl/p ...

  7. el表达式,JSTL标签库

    1.el表达式    表达式语言(Expression Language,简称EL) EL主要作用:       获取数据:       EL表达式主要用于替换JSP页面中的脚本表达式,检索reque ...

  8. Java进阶学习第十二天——JSP JavaBean EL

    文档版本 开发工具 测试平台 工程名字 日期 作者 备注 V1.0 2016.05.04 lutianfei none session(拓展) session的追踪(了解) session的创建和销毁 ...

  9. Web.17.EL表达式JSTL标签的使用

    本节主要是上节课的加精 目录 本节主要是上节课的加精 一.购物车主页面java代码的分离 二.使用分页面板展示购物车所有商品的主页面 一.购物车主页面java代码的分离 注意: 当一个jsp文件同时存 ...

  10. EL表达式 JSTL标签库

    EL表达式 什么是EL表达式? 作用? 全称是Expression Langue 是表达式语言 EL表达式的作用主要是替代jsp页面中的表达式脚本在jsp页面中方进行输出,因为EL表达式在输出数据的时 ...

最新文章

  1. Windows 7等多系统的备份与恢复
  2. java编程实践开发项目,帮你突破瓶颈
  3. VS调用matlab
  4. artTemplate基本用法
  5. c语言赫夫曼树的编码与译码,哈夫曼树与编码译码实现
  6. Java多线程的使用
  7. 26 SD配置-主数据-信用管理-指定信用控制区域及信用部分
  8. 运行python的两种方式磁盘式_python计算机基础-Day1
  9. python实现抢劵_双十一福利丨机械键盘、蓝牙音箱送送送!Python/UI/Unity多场微课解剖双十一套路!...
  10. opencv的Mat中step
  11. matlab:蚁群算法原理的实现
  12. python合并多个excel工作簿_将多个excel文件合并到一个excel的多个sheet
  13. 论文的中期报告怎么写?
  14. 小程序开发之组件video(视频)
  15. 农业种植大数据平台构建
  16. progress中的数据库访问
  17. 阿里p8年薪85W到底是什么样的存在?
  18. pycharm连接服务器方法
  19. openpyxl 单元格合并
  20. IPv4与IPv6区别

热门文章

  1. linux实用技巧:ubuntu18.04安装配置ibus中文输入法
  2. 实验室设备管理系统SQL代码
  3. 文字检测识别系统SDK
  4. 会议录播软件测试自学,如何录制Zoom视频会议?
  5. 概率论与数理统计基础概念整理
  6. const注意点(对象赋值)
  7. 介绍几款在线脑图和流程图制作工具
  8. 《HarmonyOS开发 - 小凌派-RK2206开发笔记》第2章 源码编译与固件下载
  9. 李力刚《谈判博弈》读书笔记
  10. Excel表格中两列数据对比,找出异同的数据