对于页面访问数据的统计,可以使用内置对象的相应方法进行计数工作,这个对象要在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. SpringBoot------文件上传

    1.pom.xml引入依赖配置 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http ...

  2. ios开发之--CGRectGetXxx方法图解 和代码NSLog输出值

    - (void)test { CGRect rect = CGRectMake(, , , ); // 最小Y坐标,即矩形的顶部top y坐标: minY = rect.y = 20.000000 N ...

  3. android studio 使用 SVN

    通过android studio来进行版本控制,先前已经安装了TortoiseSVN-1.9.2,但是在打开android studio的时候会出现 Can't use Subversion comm ...

  4. 【遥感影像】Python GDAL 像素与坐标对应

    转:https://blog.csdn.net/theonegis/article/details/50805520 https://blog.csdn.net/wsp_1138886114/arti ...

  5. 使用 urllib 进行身份验证

    如下图,有些网站需要使用用户名密码才可以登录,我们可以使用 HTTPBasicAuthHandler() 来实现 from urllib.request import HTTPPasswordMgrW ...

  6. 邮件服务器日志:/var/log/maillog

    /var/log/maillog会记录包含系统上运行的邮件服务器的日志信息,比如记录 postfix 或 sendmail 运行时的日志信息 [root@localhost ~]# tail /var ...

  7. CMake区分MSVC版本

    MSVC++ 4.x _MSC_VER == 1000 MSVC++ 5.0 _MSC_VER == 1100 MSVC++ 6.0 _MSC_VER == 1200 MSVC++ 7.0 _MSC_ ...

  8. [Command] sync - 同步内存与硬盘数据

    sync - 同步内存与硬盘之间的数据. sync [--help] [--version] sync 命令将内存中缓存的数据写入磁盘.这包括但不限于修改过的 superblock, inode 和延 ...

  9. [C/E] 等差数列求和

    题目:要求给定一个整数 N,求从 0 到 N 之间所有整数相加之和. 解1:使用 for 循环依次递加. #include <stdio.h> int main(void){ int x; ...

  10. [PyCharm] 设置自动启动时自动打开项目

    设置启动PyCharm时自动打开(或不打开)上次进行的项目: 选择 “Settings - General - Reopen last project on startup”,勾选该选项则启动时自动打 ...