Day08 JSP

一   注释

1.显式注释

客户端可以看到的注释
            继承HTML风格的注释    &lt;!-- html注释 --&gt;    <!-- 这是html的注释 -->

2.隐式注释

客户端无法看到的注释
            (1)、JSP自己的注释    &lt;%-- jsp注释 --%&gt; <%-- 这是jsp的注释 --%>
            (2)、继承Java风格注释      // 单行注释    /*多行注释*/

二   JSP指令标签

page指令
        language:支持的语言,目前只有java
        contentType:响应类型及编码格式
        pageEncoding:字符编码
        import:导包,只有该属性可以同时设置多次
        errorPage:当页面报错时要跳转的页面,一般与isErrorPage属性一起使用,且跳转的页面的isErrorPage属性设置为true
        isErrorPage:是否是处理错误的页面,默认是false。一般与errorPage属性一起使用
        
        注:页面的编码以charset的值为准;若charset未设置,则以pageEncoding为准;若两者都未设置,则使用默认编码ISO-8859-1

三   include静态包含(重点)

格式:<%@include file="文件路径" %>  相对路径
            file属性支持表达式去取值
        
特点:
            只会生成一个源码文件,相当于直接将内容拷贝进来,所以不能有同名变量。
            运行效率高一点点。耦合性较高,不够灵活。

<div style="height: 800px;width:800px">
    <div id="left" style="width: 200px;height:800px;background-color: pink;float: left;">
         <%@include file="left.jsp" %>
    </div>
    <div id="right" style="width: 600px;height:800px;background-color: gray;float: left;">
         <%@include file="right.jsp" %>
    </div>
</div>

四   include动态包含(重点)

语法:<jsp:include page="要包含的文件路径"></jsp:include>
            page属性支持表达式去取值
        
特点:
            生成多个源码文件,相当于方法的调用,可以有同名变量。
            耦合度低,比较灵活,效率高。
            
注:
            1、<jsp:include>双标签之间不能有任何内容(除非有参数)  
                Expecting "jsp:param" standard action with "name" and "value" attributes
            2、动态包含可以传递参数
                <jsp:param name="参数名" value="参数值"/>
                获取参数使用:request.getParameter(name)
                value属性支持表达式,name属性不支持
                     The name attribute of the jsp:param standard action does not accept any expressions
<div style="height: 800px;width:800px">
    <div id="left" style="width: 200px;height:800px;background-color: blue;float: left;">
         <jsp:include page="left.jsp"></jsp:include>
         
         <jsp:include page="left.jsp">
             <jsp:param value="<%=val %>" name="uname"/>
         </jsp:include>
         
    </div>
    <div id="right" style="width: 600px;height:800px;background-color: green;float: left;">
         <jsp:include page="right.jsp"></jsp:include>
    </div>
</div>

五   九大内置对象

    // 四大域对象
    pageContext.setAttribute("uname1", "zhanggsan");
    //request
    // session
    // application
    
    // 两个输出对象
    // out
    // response
    
    // 配置对象
    // config
    
    // 当前页面对象
    //page
    
    // 异常对象  主要当前页面设置了isErrorPage="true"时才能使用
    // exception

六   EL表达式

语法:${key }  key代表的是存在域对象中的键
        
注意:el表达式一般操作的是域对象,无法操作变量
        
取值范围
            从小范围到大范围取,取到为止,若未取到,则一直向大返回查找;若四个范围都未获取到,返回空字符串。
        
获取指定范围的值:
            pageScope、requestScope、sessionScope、applicationScope
            
        pageContext, request, session, application;范围依次是,本页面,一次请求, 一次会话,整个应用程序。
        而 EL 默认的查找方式为 从小到大查找,找到即可。当域对象全 找完了还未找到则返回空字符串””。
        
        
EL操作对象
            获取对象中的属性:${对象.属性名}
            注:属性必须提供get和set方法

 

    // 设置域对象的值
    pageContext.setAttribute("uname", "zhangsan");
    request.setAttribute("uname", "lisi");
    session.setAttribute("uname", "wangwu");
    application.setAttribute("uname", "zhaoliu");
    
    String str = "admin";
    

    // 将对象存到域对象中
    User user = new User();
    user.setUserId(1);
    user.setUserName("Lisa");
    user.setUserPwd("123123");
    request.setAttribute("user", user);
    
    

    // 将集合存到域对象中
    User user2 = new User();
    user2.setUserId(2);
    user2.setUserName("Lily");
    user2.setUserPwd("123456");
    
    List<String> list = new ArrayList<>();
    list.add("aaa");
    list.add("bbb");
    list.add("ccc");
    
    List<User> userList = new ArrayList<>();
    userList.add(user);
    userList.add(user2);
    
    
    List<String> list2 = new ArrayList<>();
    
    List<String> list3 = null;
    
    request.setAttribute("mylist", list);
    request.setAttribute("userList", userList);
    request.setAttribute("list2", list2);
    request.setAttribute("list3", list3);
    
    
    
    Map map = new HashMap();
    map.put("aaa", "111");
    map.put("bbb", 2222);
    map.put("ccc-a", 333);
    request.setAttribute("map", map);
    
    
    
    request.setAttribute("num", 10);
    request.setAttribute("num2", 2);
    request.setAttribute("str1", "aa");
    request.setAttribute("str2", "bb");
    
    pageContext.setAttribute("a", "aa", PageContext.REQUEST_SCOPE);
    
    pageContext.getAttribute("a", PageContext.REQUEST_SCOPE);

 

<h2>EL的基本使用</h2>
 uname:${uname } <br>
 uname1: ${uname1 }<br>
 requestScope:${requestScope.uname } <br>
 str:${str }<br>
 
 
 
 <br><br>

 <h2>EL 对象取值</h2>
 user对象:${user }<br>
    获取user对象中的属性:${user.userName }<br>
 
 
 

 <h2>EL 集合取值</h2>
    获取集合:${mylist } ---- ${userList }<br>
   获取指定下标的值: ${mylist[0] } ---- ${userList[0].userPwd }<br>
  获取集合的长度:${userList.size() }
   

  <h2>判断为空empty</h2>
   判断字符串是否为空:${empty uname } --- ${empty uname1 } --- ${!empty uname }<br>
   判断对象是否为空:${empty user }<br>
   判断集合是否为空:${empty userList }  --- ${empty list2 } --- ${empty list3 }<br>
   

 <h2>EL Map取值</h2>
   获取Map的值:${map }<br>
  获取指定key的value:${map.aaa } --- ${map["aaa"] }<br>
 
 

 <h2>EL 运算</h2>
 ${1+1 } -- ${num+1 } -- ${num + num2 } <br>
 ${num / num2 } ---
<%--  ${num div num2 } --%>
 <br>
 

 <h2>EL 比较</h2>
 ${num == 1 }  -- ${num >= 10 } <br>
 ${str1 == str2 } -- ${str1 eq str2 }<br>
 ${num + 10 > 10 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ava实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),可运行高分资源 Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值