jstl标签集合及应用实例总结

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> 

应用语法3JavaBean“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> 

应用语法4JavaBean“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"> &nbsp;

           <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 }&nbsp;${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">&nbsp;&nbsp;码:

     <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="登录" />&nbsp;

<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>

    &nbsp;&nbsp;数:<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;

       %>

    &nbsp;&nbsp;是:<inputtype="text"name="s"value="<%=result%>"><br>

    </c:catch>

    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<inputtype="submit"name="submit"value="提交">

    &nbsp;&nbsp;<inputtype="reset"name="reset"value="重置">

   </form>

  </body>

15、利用<c:forEach>标签遍历数组

<%

        String[]subject={"英语","政治","物理","化学","数学","语文"};

        request.setAttribute("kc",subject);       

    %>

<fontstyle="font-size:24px;">利用&lt;c:forEach&gt;标签遍历subject数组的结果如下:</font><br>

<c:forEachitems="${requestScope.kc}"var="keyword"varStatus="id"begin="1">

    subject数组中的第${id.index }个元素是:&nbsp;${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);// 输出异常信息

                      }

            }

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值