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 + "\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 学习的更多相关文章
- day11_jsp/EL/JSTL学习笔记
一.jsp概述 JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP实际上就是Servlet. JSP这门技术的最大 ...
- Servlet和JSP之JSTL学习
JSTL JSTL就是JSP标准标签库(JavaServer Pages Standard Tag Library, JSTL)是一个定制标签库的集合,用来解决像遍历Map或集合.条件测试.XML处理 ...
- JSTL学习
基本标签: out标签:<c:out value="${表达式}" default="默认值"></c:out> 作用:结合EL表达式将 ...
- JavaWeb——EL及JSTL学习总结
什么是EL表达式 为什么需要EL EL的主要作用 EL的语法 EL的开发步骤 EL实例练习 EL中的运算符 EL表达式显示内容的特点 EL的特点 EL隐式对象 EL隐式对象介绍 隐式对象实例练习 什么 ...
- JSTL学习笔记(核心标签)
一.JSTL标签分类: 核心标签 格式化标签 SQL标签 XML标签 JSTL函数 二.核心标签 引用方式:<%@ taglib prefix="c" uri=& ...
- JavaWeb 后端 <六> 之 EL & JSTL 学习笔记
一.EL表达式(特别重要)
- JavaEE EL & JSTL 学习笔记
1. EL表达式(特别重要)
- JSTL学习笔记
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6684442.html 一:JSTL用途 JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用 ...
- EL与JSTL学习(二)——JSTL技术
1.JSTL概述 JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能. jstl出现的目的同el一样也是要代替jsp ...
随机推荐
- Dubbo -- 系统学习 笔记 -- 成熟度
Dubbo -- 系统学习 笔记 -- 目录 成熟度 功能成熟度 策略成熟度 啦啦啦
- win10禁止更新的方法
Windows10强制更新苦恼了很多人,下面提供三种禁止Windows10更新的方法. 禁止Windows update服务 启动任务管理器->选择服务->打开服务. 找到Windows ...
- OpenGL 知识二
OpenGL综述 September 14, 2014 学习OpenGL是学习计算机图形学的一个工具,因为计算机上图形的显示要依靠底层的软件和硬件,学习图形学除了学习基本的概念,线,曲面,图形生成,变 ...
- 【安全开发】Android安全编码规范
申明:本文非笔者原创,原文转载自:https://github.com/SecurityPaper/SecurityPaper-web/blob/master/_posts/2.SDL%E8%A7%8 ...
- Ansible 使用 Playbook 安装 Nginx
思路:先在一台机器上编译安装好 Nginx,打包,然后通过 Ansible 下发 [root@localhost ~]$ cd /etc/ansible/ [root@localhost ansibl ...
- mkubimage-mlc2: error while loading shared libraries: liblzo2.so.2: cannot open shared object file: No such file or directory
mkubimage-mlc2: error while loading shared libraries: liblzo2.so.2: cannot open shared object file: ...
- U3D优化
容易忽略的美术资源的优化: 优化的美术制作真是一种感觉和经验的积累,能看出制作水平的不是做的效果多么犀利,而是得看制作的效果与对机器的要求等的性价比. 关于合并: 100个三角形的MESH,在渲染时 ...
- MVC的初步认识理论
说起来写博客可以说一个月没来啦,我们狠狠的放假一个月,想一想都奇怪.而是想一下以后的假期还会这样吗?或许这是作为学生的我们的最后一个长的假期啦,以后就要面对工作再也没有寒假暑假之分啦,在这一个月的时间 ...
- linux禁止IPv6
1. 禁止加载IPv6模块 # echo "install ipv6 /bin/true" > /etc/modprobe.d/disable-ipv6.conf 每当系统需 ...
- * 和-> 优先级
(Apple *)pf->peel(); 则报错说 ct.cpp: In function ‘int main()’:ct.cpp:48: 错误:void 值未如预期地被忽略 ...