1、 测试<c:out>标签
******************** 测试escapeXml属性 **********************<br>
escapeXml属性值为false时:<c:outvalue="<hr>"escapeXml="false"/>
escapeXml属性值为true时:<c:outvalue="<hr>"/><br>
******************** 测试两种语法 ***************************<br>
第一种语法格式:<c:outvalue="${user}"default="user的值为空"/><br>
第二种语法格式:<c:outvalue="${user}"> user的值为空 </c:out>
2、 测试<c:set>标签
<%@ taglib prefix="c"uri="http://java.sun.com/jsp/jstl/core" %>
应用语法1定义一个session范围内的变量user,值为mrsoft<br>
<c:setvar="user"value="mrsoft"scope="session"/>
输出变量user的值为:${sessionScope.user} <br>
应用语法2定义一个request范围内的变量money,值为12.5*6的结果<br>
<c:setvar="money"scope="request"> ${12.5*6}</c:set>
输出变量money的值为:${requestScope.money}<br>
应用语法3为JavaBean“LinkmanForm”设置各属性并应用<c:out>;标签输出各属性<br>
<jsp:useBeanclass="com.zz.LinkmanForm"id="linkman"/>
<c:setvalue="1"target="${linkman}"property="id"/>
<c:setvalue="zz"target="${linkman}"property="name"/>
id属性值为:<c:outvalue="${linkman.id}"/> <br>
name属性值为:<c:outvalue="${linkman.name}"/><br>
应用语法4为JavaBean“LinkmanForm”设置各属性并应用<c:out>标签输出各属性<br>
<c:settarget="${linkman}"property="tel"> 84978981 </c:set>
tel属性值为:<c:outvalue="${linkman.tel}"/>
其中com.zz.LinkmanForm;是一意bean,分别有id name tel 三个属性。
3、 测试<c:remove>标签
<c:set var="softName" value="明日科技编程词典" scope="page"/>
移除前输出变量softName的值:<c:out value="${pageScope.softName}" default="softName的值为空"/><br>
<c:remove var="softName" scope="page"/>
移除后输出变量softName的值:<c:out value="${pageScope.softName}" default="softName的值为空"/>
4、 测试<c:catch>标签
<c:catch var="exception">
<%
int number=Integer.parseInt(request.getParameter("number"));
out.println("合计金额为:"+521*number);
%>
</c:catch><c:outvalue="${exception}"/>
5、 测试<c:if>标签
<%request.setCharacterEncoding("utf-8");%>à不要忘记,不然${param.comment}将得到乱码!!!
未来的世界是:方向比努力重要,能力比知识重要,健康比成绩重要,生活比文凭重要,情商比智商重要!
<hr>
${param.comment}
<center>
<c:if test="${empty param.comment}">
<form name="form1"method="post" action="">
评论:<textarea name="comment" cols="30"rows="4"></textarea><br><br>
<input type="submit" name="Submit" value="发表评论">
</form>
</c:if>
</center>
6、 测试<c:choose>标签
<c:choose>
<c:whentest="${empty sessionScope.user}">
<center>
<formname="form1" method="post" action="deal.jsp">
用户名:<input name="user" type="text"id="user">
<input type="submit"name="Submit" value="登录">
</form>
</center>
</c:when>
<c:otherwise>
欢迎您!${sessionScope.user} [<a href="logout.jsp">退出</a>] </c:otherwise>
</c:choose>
deal.jspàà
<%request.setCharacterEncoding("GBK");%>
<c:set var="user" scope="session"value="${param.user}"/>
<%response.sendRedirect("index.jsp");%>
logout.jspàà
<% session.invalidate();
response.sendRedirect("index.jsp");%>
7、 应用<c:choose>实现分时问候
<c:choose>
<c:when test="${now.hours>=0 && now.hours<5}">凌晨好!</c:when>
<c:when test="${now.hours>=5 && now.hours<8}">早上好!</c:when>
<c:when test="${now.hours>=8 && now.hours<11}">上午好!</c:when>
<c:when test="${now.hours>=11 && now.hours<13}">中午好!</c:when>
<c:when test="${now.hours>=13 && now.hours<17}">下午好!</c:when>
<c:otherwise>晚上好!</c:otherwise>
</c:choose>
现在时间是:${now.hours}时${now.minutes}分
8、 应用<c:forEach>标签遍历List集合
<%List list=newArrayList();
list.add("明日科技");
list.add("编程词典");
list.add("www.bccd.com");
request.setAttribute("list",list);
%>
利用<c:forEach>标签遍历List集合的结果如下:<br>
<c:forEachitems="${requestScope.list}"var="keyword"varStatus="id"begin="0"end="1">
${id.index } ${keyword}<br>
</c:forEach>
9、应用<c: forTokens>标签分割字符串并显示
<c:setvar="sourceStr"value="编程词典软件涵盖技术、函数、控件、实例、项目、方案、界面等所有开发内容,以及所有实例程序、实用工具等内容,是程序开发人员高效编程必备的软件。"/>
原字符串:<c:outvalue="${sourceStr}"/>
<br>********************分割后的字符串**************************<br>
<c:forTokensitems="${sourceStr}"delims=",、。"var="item">${item}<br>
</c:forTokens>
10、应用<c:import>标签导入文件
<c:importurl="navigation.jsp" charEncoding="GBK"/>
11、应用<c:import>标签在网页中显示百度网页
<c:catchvar="error">
<c:importurl="http://www.baidu.com"charEncoding="utf-8"/>
</c:catch>
<c:iftest="${!emptyerror}">
该网址不存在,请确认是否登录到Internet!
</c:if>
<c:urlvalue="http://localhost:8080/userServlet"var="url"scope="session">
<c:paramname="action"value="query"/>
</c:url>
<a href="${url}">查询全部用户信息</a>
12、测试<c:url>标签
Index.jspàà
<body>
<c:urlvalue="deal.jsp"var="url"scope="session">
<c:paramname="user"value="mr"/>
</c:url>
<ahref="${url}">提交</a>
</body>
deal.jspàà
<body>
传递的参数:${param.user}
</body>
13、测试登陆模块
1)、一个比较好的login.jsp登陆页面à
<div style="width:100%; text-align:center">
<div id="login">
<div id="loginForm">
<c:choose>
<c:when test="${emptysessionScope.user}">
<form action="deal.jsp"method="post" name="form1">
<table width="240" border="0"cellspacing="0" cellpadding="0">
<tr>
<td height="27">用户名:
<input name="user"type="text" class="txt_grey" id="user"/></td>
</tr>
<tr>
<td height="27">密 码:
<input name="pwd" type="password"class="txt_grey" id="pwd" /></td>
</tr>
<tr>
<td height="30"align="center">
<input name="Submit"type="submit" class="btn_grey" value="登录" />
<input name="Submit2"type="reset" class="btn_grey" value="重置" /></td>
</tr>
</table>
</form>
</c:when>
<c:otherwise>
<table width="240" height="100%"border="0" cellspacing="0" cellpadding="0">
<tr>
<tdvalign="middle">欢迎您!${sessionScope.user}[<a href="logout.jsp">退出</a>]</td>
</tr>
</table>
</c:otherwise>
</c:choose>
</div>
</div>
</div>
2)、下面是一个应用实例:
Index.jspà
<body>
<divstyle="width:800px;text-align: center; padding: 10px;">
<divstyle="width:500px;">
<c:choose>
<c:when test="${admin !=null}">
<c:import url="admin.jsp"charEncoding="utf-8"></c:import>
</c:when>
<c:otherwise>
<c:import url="login.jsp"charEncoding="utf-8"></c:import>
</c:otherwise>
</c:choose>
</div>
</div>
</body>
Admin.jspàà
<body>
<br>
<fontstyle="color:red; font-size: 15px;">您好,${admin}<br>欢迎来到管理员页面!
</font>
<br>
<ahref="ExitServlet">退出</a>
</body>
Loginout.jspàà
<%
session.invalidate();
%>
<c:redirecturl="index.jsp"/>
所涉及的业务处理,也就是servlet有—>ààLoginServlet
publicvoiddoGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException {
doPost(request,response);
}
publicvoiddoPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException {
Stringusername = request.getParameter("username");
Stringpassword = request.getParameter("password");
if("mrsoft".equals(username)&&"mrsoft".equals(password)){
request.getSession().setAttribute("admin",username);
}
request.getRequestDispatcher("index.jsp").forward(request,response);
}
所涉及的业务处理,也就是servlet有—>ààExitServlet
publicvoiddoGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException {
doPost(request,response);
}
publicvoid doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException {
request.getSession().invalidate();
request.getRequestDispatcher("index.jsp").forward(request,response);
}
在xml文件中需要对servlet进行简单配置ààà
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.lyq.servlet.LoginServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>ExitServlet</servlet-name>
<servlet-class>com.lyq.servlet.ExitServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ExitServlet</servlet-name>
<url-pattern>/ExitServlet</url-pattern>
</servlet-mapping>
14、应用JSTL屏蔽页面中出现的错误
<body>
<fontstyle="font-size:24px;">应用JSTL屏蔽页面中出现的错误,比如除数为0.</font><br>
<formaction="???"name="form"method="get">
被除数:<inputtype="text"name="bcs"value="${param.bcs}"><br>
除 数:<inputtype="text"name="cs"value="${param.cs}"><br>
<c:catchvar="exception">
<%
int bcs=Integer.parseInt(request.getParameter("bcs"));
int cs=Integer.parseInt(request.getParameter("cs"));
int result=bcs / cs;
%>
商 是:<inputtype="text"name="s"value="<%=result%>"><br>
</c:catch>
<inputtype="submit"name="submit"value="提交">
<inputtype="reset"name="reset"value="重置">
</form>
</body>
15、利用<c:forEach>标签遍历数组
<%
String[]subject={"英语","政治","物理","化学","数学","语文"};
request.setAttribute("kc",subject);
%>
<fontstyle="font-size:24px;">利用<c:forEach>标签遍历subject数组的结果如下:</font><br>
<c:forEachitems="${requestScope.kc}"var="keyword"varStatus="id"begin="1">
subject数组中的第${id.index }个元素是: ${keyword}<br>
</c:forEach>
在举一个实例-àà
应用JSTL显示数据库中的商品信息
<body>
<c:redirecturl="UserInfoServlet"/>
</body>
à
publicvoiddoGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException {
Listlist = newArrayList(); // 创建List集合
try {
ConnDBconn=newConnDB(); // 创建数据库连接对象
Stringsql = "SELECT * FROM tb_user";
ResultSetrs=conn.executeQuery(sql); // 查询全部用户信息
while (rs.next() && rs.getRow()>0){ // 通过循环遍历用户信息
Useruser = newUser(); // 用户实例对象
//设置实例对象的属性
user.setId(rs.getString(1));
user.setName(rs.getString(2));
user.setSex(rs.getString(3));
user.setAge(rs.getString(4));
list.add(user); // 将用户信息保存到List集合中
}
}catch(SQLException e) {
e.printStackTrace();
}
request.setAttribute("userList",list); // 将用户信息保存HttpServletRequest中
request.getRequestDispatcher("showUserInfo.jsp")
.forward(request,response); // 重定向到showUserInfo.jsp页面
}
publicvoiddoPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException {
doGet(request,response); // 调用doGet方法
}
à显示页面在
<c:forEachvar="user"items="${requestScope.userList}">
<tr>
<tdheight="27"align="center"bgcolor="#FFFFFF">
<c:outvalue="${user.id}"/>
</td>
<tdalign="center"bgcolor="#FFFFFF">
<c:outvalue="${user.name}"/>
</td>
<tdalign="center"bgcolor="#FFFFFF">
<c:outvalue="${user.sex}"/>
</td>
<tdalign="center"bgcolor="#FFFFFF">
<c:outvalue="${user.age}"/>
</td>
</tr>
</c:forEach>
附带一个ConnDB
package com.zz.tools;
import java.io.InputStream; //导入java.io.InputStream类
import java.sql.*; //导入java.sql包中的所有类
import java.util.Properties; //导入java.util.Properties类
/**
*
* @author administrator
*/
public class ConnDB {
publicConnection conn = null; // 声明Connection对象的实例
publicStatement stmt = null; // 声明Statement对象的实例
publicResultSet rs = null; // 声明ResultSet对象的实例
privatestatic String propFileName = "connDB.properties"; // 指定资源文件保存的位置
privatestatic Properties prop = new Properties(); // 创建并实例化Properties对象的实例
privatestatic String dbClassName = "com.mysql.jdbc.Driver";//定义保存数据库驱动的变量
private static String dbUrl ="jdbc:mysql://127.0.0.1:3306/db_Database07?user=root&password=admin&useUnicode=true";
publicConnDB() { //定义构造方法
try{ //捕捉异常
//将Properties文件读取到InputStream对象中
InputStreamin = getClass().getResourceAsStream(propFileName);
prop.load(in);// 通过输入流对象加载Properties文件
dbClassName= prop.getProperty("DB_CLASS_NAME"); // 获取数据库驱动
dbUrl= prop.getProperty("DB_URL", dbUrl); //获取URL
}catch (Exception e) {
e.printStackTrace();// 输出异常信息
}
}
publicstatic Connection getConnection() {
Connectionconn = null;
try{ //连接数据库时可能发生异常因此需要捕捉该异常
Class.forName(dbClassName).newInstance(); //装载数据库驱动
//建立与数据库URL中定义的数据库的连接
conn= DriverManager.getConnection(dbUrl);
}catch (Exception ee) {
ee.printStackTrace(); //输出异常信息
}
if(conn == null) {
System.err.println("警告:DbConnectionManager.getConnection()获得数据库链接失败.\r\n\r\n链接类型:"+dbClassName+ "\r\n链接位置:"+ dbUrl); //在控制台上输出提示信息
}
returnconn; //返回数据库连接对象
}
/*
* 功能:执行查询语句
*/
publicResultSet executeQuery(String sql) {
try{ // 捕捉异常
conn= getConnection(); // 调用getConnection()方法构造Connection对象的一个实例conn
stmt= conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs= stmt.executeQuery(sql); //执行SQL语句,并返回一个ResultSet对象rs
}catch (SQLException ex) {
System.err.println(ex.getMessage());// 输出异常信息
}
returnrs; // 返回结果集对象
}
/*
* 功能:关闭数据库的连接
*/
publicvoid close() {
try{ // 捕捉异常
if(rs != null) { // 当ResultSet对象的实例rs不为空时
rs.close();// 关闭ResultSet对象
}
if(stmt != null) { // 当Statement对象的实例stmt不为空时
stmt.close();// 关闭Statement对象
}
if(conn != null) { // 当Connection对象的实例conn不为空时
conn.close();// 关闭Connection对象
}
}catch (Exception e) {
e.printStackTrace(System.err);// 输出异常信息
}
}
}