zoukankan      html  css  js  c++  java
  • JSTL 学习

    对于页面访问数据的统计,可以使用内置对象的相应方法进行计数工作,这个对象要在jsp对象的整个生命周期中
    setAttribute()和getAttribute()
    application.setAttribute(key, value)
    application.getAttribute(key)
    application实现了用户之间的数据共享,用于存放全局变量。服务器的开启和关闭决定了application的生命周期,它是ServletContext实例。
    pageContext对象提供了对jsp页面内所有的对象及命名空间的访问,可以访问本页的session,也可以访问本页的application对象的某一属性值,页面中所有功能的集大成者。
    把这个代码放在每一个jsp页面中,每次访问就会触及
    <%
    Integer hitsCount =
    (Integer)application.getAttribute("hitCounter");
    if( hitsCount ==null || hitsCount == 0 ){
    /* 第一次访问 */
    out.println("欢迎访问!");
    hitsCount = 1;
    }else{
    /* 返回访问值 */
    out.println("欢迎再次访问!");
    hitsCount += 1;
    }
    application.setAttribute("hitCounter", hitsCount);
    %>
    <p>页面访问量为: <%= hitsCount%></p>

    JSP页面自动刷新:使用response对象的setIntHeader()方法
    方法签名:public void setIntHeader(String header, int headerValue),这个方法通知浏览器在给定的时间后刷新,刷新的单位为s。
    <h2>自动刷新实</h2>
    <%
    // 设置每隔5秒刷新一次
    response.setIntHeader("Refresh", 5);
    // 获取当前时间
    Calendar calendar = new GregorianCalendar();
    String am_pm;
    int hour = calendar.get(Calendar.HOUR);
    int minute = calendar.get(Calendar.MINUTE);
    int second = calendar.get(Calendar.SECOND);
    if(calendar.get(Calendar.AM_PM) == 0)
    am_pm = "AM";
    else
    am_pm = "PM";
    String CT = hour+":"+ minute +":"+ second +" "+ am_pm;
    out.println("当前时间为: " + CT + " ");
    %>
    response.setIntHeader("Refresh", 5);

    JSP发送一封邮件
    <%@ page import="java.io.*,java.util.*,javax.mail.*"%>
    <%@ page import="javax.mail.internet.*,javax.activation.*"%>
    <%@ page import="javax.servlet.http.*,javax.servlet.*" %>
    <%
    String result;
    // 收件人的电子邮件
    String to = "abcd@gmail.com";

    // 发件人的电子邮件
    String from = "mcmohd@gmail.com";

    // 假设你是从本地主机发送电子邮件
    String host = "localhost";

    // 获取系统属性对象
    Properties properties = System.getProperties();

    // 设置邮件服务器
    properties.setProperty("mail.smtp.host", host);

    // 获取默认的Session对象。
    Session mailSession = Session.getDefaultInstance(properties);

    try{
    // 创建一个默认的MimeMessage对象。
    MimeMessage message = new MimeMessage(mailSession);
    // 设置 From: 头部的header字段
    message.setFrom(new InternetAddress(from));
    // 设置 To: 头部的header字段
    message.addRecipient(Message.RecipientType.TO,
    new InternetAddress(to));
    // 设置 Subject: header字段
    message.setSubject("This is the Subject Line!");
    // 现在设置的实际消息
    message.setText("This is actual message");
    // 发送消息
    Transport.send(message);
    result = "Sent message successfully....";
    }catch (MessagingException mex) {
    mex.printStackTrace();
    result = "Error: unable to send message....";
    }
    %>
    <html>
    <head>
    <title>Send Email using JSP</title>
    </head>
    <body>
    <center>
    <h1>Send Email using JSP</h1>
    </center>
    <p align="center">
    <%
    out.println("Result: " + result + " ");
    %>
    </p>
    </body>
    </html>

    MIME:Multipurpose Internet Mail Extends,多用途网络邮件扩展协议,描述消息内容类型的因特网标准
    JSP标准标签库:JSTL,封装了jsp通用核心功能
    核心标签
    结构化标签
    SQL标签
    XML标签
    JSTL函数

    核心标签:最常用的JSTL标签
    <c:out>:在jsp中显示数据,就像<%=>一样
    <c:set>:保存据值
    <c:remove>:删除数据

    ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    <c:catch>:捕捉数据异常
    <c:if>:判断语句
    <c:choose>:本身只当作<c:when>和<c:otherwise>的父标签
    <c:when>:子标签,判断条件是否成立
    <c:otherwise>:<when>判断不成立的对立标签
    <c:import>:检索一个绝对或者相对URL,暴露给网页
    <c:forEach>:基础的迭代标签,可以迭代任意集合类型
    <c:forTokens>:根据指定的分隔符分隔内容并迭代输出
    <c:param>:用来给定的包含重定向的网页传递参数
    <c:redirect>:网页重定向到一个URL
    <c:url>:新建一个URL
    格式化标签用来格式化输出文本、日期、时间、数字
    <fmt:formatNumber>:用指定的格式格式化数字
    <fmt:parseNumber>:解析数字
    <fmt:formatDate>:格式化日期
    <fmt:parseDate>:解析日期
    <fmt:bundle>:绑定资源
    <fmt:setLocal>:指定地区
    <fmt:setZone>:指定时区
    <fmt:message>:显示配置资源文件信息
    <fmt:requestEncoding>:显示请求编码格式
    JSTL SQL标签库提供了与关系型数据库(Oracle,MySQL,SQL Server等等)进行交互的标签
    <sql:setDataSource>:指定数据库的数据源
    <sql:query>:运行数据的查询语句
    <sql:update>:运行数据的更新语句
    <sql:param>:将sql语句中的参数设定为指定值
    <sql:dataParam>:将sql语句中的日期参数设定为指定java.util.Date数值
    <sql:transaction>:将所有的语句以事务的形式运行
    JSTL XML标签库用于创建和修改xml标签
    <x:out>:和<%=...%>类似,不过是用于操作XPath
    <x:parse>:用于解析xml
    <x:set>:设置XPath表达式,XPath是xml路径语言,用来确定XML文档中某部分路径的语言
    <x:if>:判断XPaht表达式,如果为真则执行本体中的内容,否则跳过本体中的内容
    <x:forEach>:迭代xml文档中的节点
    <x:choose>:<x:when>和<x:otherwise>的父标签
    <x:when>:<x:choose>的子标签,条件判断语句
    <x:otherwise>:<x:choose>的子标签,条件判断为false执行该语句
    <x:transform>:将XSL转换应用到文档中
    <x:param>:同<x:transform>一同使用用于修改XSL样式表

    JSTL函数 包含大量的标准函数,大部分都是通用的字符串处理函数
    fn:contains():测试输入的字符串是否包含指定的子串
    fn:containsIgnoreCase():测试输入的字符串是否包含指定的子串,忽略大小写
    fn:endsWith():测试输入的字符串以指定后缀结尾
    fn:indexOf():指定字符串在输入字符串中的位置信息
    fn:length():返回字符串的长度
    fn:join():将数组中的元素连接成字符串输出
    fn:replace():将输入字符串中指定的位置的字符替换为指定的字符串并输出
    fn:split():将输入的字符串按照指定的分隔符进行分隔组成一个数组并输出
    fn:startsWith():测试输入的字符串是否按照指定的前缀开始
    fn:substring():返回字符串的子集
    fn:substringAfter():返回在指定字符串之后的子集
    fn:substringBefore():返回指定字符串之前的子集
    fn:toLowerCase():将字符串中的内容转为小写
    fn:toUpperCase():将字符串中的内容转为大写
    fn:trim():去出空白符
    编写的注意事项:
    1.数据类型要有长度,长度写在括号里面
    2.每写完一列都要加一个逗号,最后一列不加逗号
    3.每写完一个SQL语句都要跟上一个分号
    4.如果有外键关系,先创建主表
    VARCHAR比CHAR空间利用率高,但是CHAR要比VARCHAR效率要高,两者是一个矛盾体
    foreign key + 给表中的哪一列设置外键 references +引用哪一个表的列
    auto_increment:自动增长型,每次增加一个记录,值会自动加1
    CREATE TABLE 'website'{
    'id' INT(10) NOT NULL AUTO_INCREMENT,
    'name' CHAR(20) NOT NULL DEFAULT COMMENT 'this is a example',
    'url' VARCHAR(255) NOT NULL DEFAULT COMMENT 'this is a url ex',
    'alex' INT(20) NOT NULL DEFAULT COMMENT 'the range of the alex'
    'country' CHAR(20) NOT NULL DEFAULT COMMENT 'the country of the name',
    PRIMARY KEY('id'),
    FOREIGN KEY('name') REFERENCES class('name')
    }
    INSERT INTO 'website' VALUES('1','Tom', 'www.baidu.com','20','German'),('2','Brown','www.souhu.com','12','France');

    create table class(
    code varchar(20) primary key,
    name varchar(20)
    );
    create table student(
    code varchar(20) primary key,
    name varchar(20),
    age int,
    sex char(10),
    class varchar(20),
    foreign key(class) references class(code)
    );
    create table kecheng(
    code varchar(20) primary key,
    name varchar(20)
    );
    create table teacher(
    code varchar(20) primary key,
    name varchar(2)
    );
    create table chengji(
    ids varchar(20) auto_increment primary key,
    scode varchar(20),
    kcode varchar(20),
    grade float,
    foreign key(scode) references student(code),
    foreign key(kcode) references kecheng(code)
    )
    create table tkecheng(
    ids varchar(20) auto_increment primary key,
    tcode varchar(20),
    tkecheng varchar(20),
    foreign key(tcode) references teacher(code),
    foreign key(tkecheng) referencse kecheng(code),
    )


    ------------------------------------------------------------------------------------------------------------------------------------

    JSTL数据库操作代码
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ page import="java.io.*,java.util.*,java.sql.*"%>
    <%@ page import="javax.servlet.http.*,javax.servlet.*" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>

    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Title</title>
    </head>
    <body>
    <sql:setDataSource name="snapshit" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://www.baidu.com/" user="abc" password="12345"></sql:setDataSource>
    <!--数据查询-->
    <sql:query dataSource="${snapshit}" var="result">
    select * from website
    </sql:query>
    <!--数据插入-->
    <sql:update dataSource="${snapshit}" var="result">
    insert into website(id, name, url, rank, country) values ('1','tt','www.nadj.com','23','USA')
    </sql:update>
    <!--删除id为11的数据-->
    <sql:update dataSource="${snapshit}" var="delete_item">
    delete from website where id=?
    <sql:param value="${11}"/>
    </sql:update>
    <!--修改一条记录-->
    <sql:update dataSource="${snapshit}" var="add_item">
    update website set name="abc" where id=?
    <sql:param value="${11}"/>
    </sql:update>

    <table border="1">
    <tr>
    <th>a</th>
    <th>b</th>
    <th>b</th>
    </tr>
    <c:forEach var="row" items="${result}">
    <tr>
    <td><c:out value="${row.id}"/></td>
    <td><c:out value="${row.name}"</td>
    <td><c:out value="${row.url}"</td>
    </tr>
    </c:forEach>
    </table>
    </body>
    </html>
  • 相关阅读:
    英语4月测试题
    Hadoop---集群的时间同步
    Hadoop---日志服务器
    Hadoop---桥接集群的搭建
    HDFS
    虚拟机类加载机制
    Hadoop---集群的搭建(仅主机模式)
    YARN
    垃圾收集算法和垃圾收集器
    Hadoop---HDFS读写流程
  • 原文地址:https://www.cnblogs.com/demo-deng/p/8043831.html
Copyright © 2011-2022 走看看