对于页面访问数据的统计,可以使用内置对象的相应方法进行计数工作,这个对象要在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. InnoDB锁问题 & DB事务隔离级别

    <参考:http://www.cnblogs.com/jack204/archive/2012/06/09/2542940.html>InnoDB行锁实现方式InnoDB行锁是通过给索引上 ...

  2. SVN的Hooks功能--强制添加注释

    所谓hooks,可以类似 理解Linux内核Netfilter框架的hook点和hook函数的概念.当用户在维护代码的过程中,其执行的相关动作正好触发了相关hook点,就 会去执行对应hook点的脚本 ...

  3. ios开发之--把秒转换为天时分秒

    把秒转换成时分秒: - (NSString *)timeFormatted:(int)totalSeconds { ; ) % ; ; return [NSString stringWithForma ...

  4. zabbix加入TCP连接数及状态的监控

    一 监控原理: [root@ nginx]# /bin/netstat -an|awk '/^tcp/{++S[$NF]}END{for(a in S) print a,S[a]}' TIME_WAI ...

  5. 关于Kafka幂等producer的讨论

    众所周知,Kafka 0.11.0.0版本正式支持精确一次处理语义(exactly once semantics,下称EOS).Kafka的EOS主要体现在3个方面: 幂等producer:保证发送单 ...

  6. (iOS)使用auto layout进行复杂布局时,UILabel的相关trick

    本文转载至 http://blog.csdn.net/madongchunqiu/article/details/47960745  本文首发于CSDN:http://blog.csdn.net/ma ...

  7. 二叉查找树(BST)的性质

    二叉查找树的性质: 1.左子树上所有结点的值均小于或等于它的根结点的值. 2.右子树上所有结点的值均大于或等于它的根结点的值. 3.左.右子树也分别为二叉排序树. 下图中这棵树,就是一颗典型的二叉查找 ...

  8. Java网络编程之查找Internet地址

    一.概述 连接到Internet上计算机都有一个称为Internet地址或IP地址的唯一的数来标识.由于IP很难记住,人们设计了域名系统(DNS),DNS可以将人们可以记忆的主机名与计算机可以记忆的I ...

  9. 学了Python可以做什么工作

    学了Python可以做什么工作 用 Python 写爬虫 据我所知很多初学 Python 的人都是使用它编写爬虫程序.小到抓取一个小黄图网站,大到一个互联网公司的商业应用.通过 Python 入门爬虫 ...

  10. Qt封装百度人脸识别+图像识别

    AI技术的发展在最近几年如火如荼,工资待遇也是水涨船高,应用的前景也是非常广阔,去年火起来的人脸识别,今年全国遍地开花,之前封装了下face++的人脸识别等接口,今年看了下百度的AI,还免费了,效果也 ...