对于页面访问数据的统计,可以使用内置对象的相应方法进行计数工作,这个对象要在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 + "\n");
%>
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 + "\n");
%>
</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>

JSTL 学习的更多相关文章

  1. day11_jsp/EL/JSTL学习笔记

    一.jsp概述 JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP实际上就是Servlet. JSP这门技术的最大 ...

  2. Servlet和JSP之JSTL学习

    JSTL JSTL就是JSP标准标签库(JavaServer Pages Standard Tag Library, JSTL)是一个定制标签库的集合,用来解决像遍历Map或集合.条件测试.XML处理 ...

  3. JSTL学习

    基本标签: out标签:<c:out value="${表达式}" default="默认值"></c:out> 作用:结合EL表达式将 ...

  4. JavaWeb——EL及JSTL学习总结

    什么是EL表达式 为什么需要EL EL的主要作用 EL的语法 EL的开发步骤 EL实例练习 EL中的运算符 EL表达式显示内容的特点 EL的特点 EL隐式对象 EL隐式对象介绍 隐式对象实例练习 什么 ...

  5. JSTL学习笔记(核心标签)

    一.JSTL标签分类: 核心标签 格式化标签 SQL标签 XML标签 JSTL函数 二.核心标签       引用方式:<%@ taglib prefix="c" uri=& ...

  6. JavaWeb 后端 <六> 之 EL & JSTL 学习笔记

    一.EL表达式(特别重要)

  7. JavaEE EL & JSTL 学习笔记

    1. EL表达式(特别重要)

  8. JSTL学习笔记

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6684442.html  一:JSTL用途 JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用 ...

  9. EL与JSTL学习(二)——JSTL技术

    1.JSTL概述 JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能. jstl出现的目的同el一样也是要代替jsp ...

随机推荐

  1. Tomcat------启动出错

    描述:在cmd中,执行startup.bar时,报错:Using CLASSPATH: "E:\Tomcat\bin\bootstrap.jar;E:\Tomcat\bin\tomcat-j ...

  2. cordova开发ios炸鸡

    cordova/lib/copy-www-build-step.sh: Permission denied 解决办法: cd platforms/ios/cordova/lib sudo chmod ...

  3. 解压安装的tomcat, 使用chkconfig命令让tomcat 随机启动,tomcat 变为系统服务

    使用解压安装的tomcat包,命令行输入 service tomcat start 会报 tomcat: unrecognized service 错误提示,意思是说系统没有找到该服务. 好了,我们现 ...

  4. ios开发之--UITableView中的visibleCells的用法

    先上图: 具体代码如下: #import "ViewController.h" @interface ViewController ()<UITableViewDelegat ...

  5. 基于Python的接口自动化测试框架

    项目背景 公司内部的软件采用B/S架构,目的是进行实验室的数据存储.分析.管理. 大部分是数据的增删改查,但是由于还在开发阶段,所以UI的变化非常快,难以针对UI进行自动化测试,那样会消耗大量的精力与 ...

  6. 【转】使程序在Linux下后台运行 (关掉终端继续让程序运行的方法)

    一.为什么要使程序在后台执行 我们计算的程序都是周期很长的,通常要几个小时甚至一个星期.我们用的环境是用putty远程连接到日本Linux服务器.所以使程序在后台跑有以下三个好处: 1:我们这边是否关 ...

  7. 【RF库Collections测试】List Should Not Contain Duplicates

    Name:List Should Not Contain DuplicatesSource:Collections <test library>Arguments:[ list_ | ms ...

  8. mac 下搭建Elasticsearch 5.4.3分布式集群

    一.集群角色 多机集群中的节点可以分为master nodes和data nodes,在配置文件中使用Zen发现(Zen discovery)机制来管理不同节点.Zen发现是ES自带的默认发现机制,使 ...

  9. 【大数据系列】apache hive 官方文档翻译

    GettingStarted 开始 Created by Confluence Administrator, last modified by Lefty Leverenz on Jun 15, 20 ...

  10. Linux 下如何安装 .bin 文件

    拿到 .bin 文件,在文件所在目录下执行如下命令即可安装, ./your-file-name.bin 如果提示 “没有那个文件或目录” ,给它加上执行权限即可,执行如下命令, chmod +x ./ ...