java管理系统基础源代码

 一、jsp概述 1、JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。JSP实际上就是Servlet。 JSP其实就是在HTML页面中嵌入Java代码。 代码 html:静态内容 servlet:服务器端的小应用程序。适合编写java逻辑代码,如果编写网页内容--苦逼。 jsp:适合编写输出动态内容




一、jsp概述

1、JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。JSP实际上就是Servlet。

JSP其实就是在HTML页面中嵌入Java代码。

代码

html:静态内容

servlet:服务器端的小应用程序。适合编写java逻辑代码,如果编写网页内容--苦逼。

jsp:适合编写输出动态内容,但不适合编写java逻辑。

2、JSP与Servlet的关系是什么?

是JSP的前身,本质上是一样的。

页面在运行时由Web容器先转换成Servlet类, 然后编译,再运行编译好的.class文件,最终转换成HTML代码发送给客户端浏览器。Servlet:控制器。重点编写java代码逻辑 (获取表单数据、处理业务逻辑、分发转向)

JSP:代码显示模板。重点在于显示数据

二、jsp原理(*)


三、jsp语法

、JSP模版元素

网页的静态内容。如:html标签和文本。

2、JSP的脚本

2.1、小脚本 <% java代码 %>

2.1、表达式 <%= 2+3 %> 等价于out.print(2+3);

    

、JSP注释

JSP注释:<%-- 被注释的内容 --%> 特点:安全,省流量

网页注释:<!-- 网页注释 -->    特点:不安全,费流量

、3指令

5、6动作

6、9内置对象

四、Jsp的三个指令

JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。

在JSP 2.0规范中共定义了三个指令:

page指令

Include指令

taglib指令

语法:

<%@ 指令名称 属性1=“属性值1” 属性2=“属性值2”。。。%>

或者:

<%@ 指令名称 属性1=“属性值1”%>

<%@ 指令名称 属性2=“属性值2”%>

如:<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%@ page language="java" %>

<%@ page import="java.util.*" %>

1、page:

作用:用于定义JSP页面的各种属性

属性:

1.1、 import 和java代码中的import是一样的

<%@ page import="java.util.Date,java.util.List"%>

或者:

<%@ page import="java.util.Date"%>

<%@ page import="java.util.List"%>

JSP会自动导入以下的包:

import java.lang.*;

import javax.servlet.*;

import javax.servlet.http.*;

import javax.servlet.jsp.*;

1.2、 session: 是否会自动创建session对象。默认值是true;

1.3、 buffer: JSP中有javax.servlet.jsp.JspWriter输出字符流。设置。输出数据的缓存大小,默认是8kb.

1.4 errorPage: 如果页面中有错误,则跳转到指定的资源。

errorPage="/uri" 如果写“/”则代表当前应用的目录下,绝对路径。

如果不写“/”则代表相对路径。

、 isErrorPage: 是否创建throwable对象。默认是false;

1.6、 contextType: 等同于response.setContextType("text/html;charset=utf-8");

1.7、 pageEncoding: 告诉JSP引擎要翻译的文件使用的编码。

1.8、 isELIgnored: 是否支持EL表达式。 默认是false

<%@ page pageEncoding="gbk" %>

、include:

静态包含:把其它资源包含到当前页面中。

<%@ include file="/include/header.jsp" %>

动态包含:

<jsp:include page="/include/header.jsp"></jsp:include>

两者的区别:翻译的时间段不同

前者:在翻译时就把两个文件合并

后者:不会合并文件,当代码执行到include时,才包含另一个文件的内容。

原则:能用静的就不用动的。

、taglib

作用:在JSP页面中导入JSTL标签库。替换jsp中的java代码片段。

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

五、jsp的6个动作

使用标签的形式来表示一段java代码。

如:

1)<jsp:include > 动态包含

2)<jsp:forward> 请求转发

3)<jsp:param> 设置请求参数

4)<jsp:useBean> 创建一个对象

5)<jsp:setProperty> 给指定的对象属性赋值

6)<jsp:getProperty> 取出指定对象的属性值

六、JSP的9个内置对象

指在JSP的<%=%> 和<% %>中可以直接使用的对象

在JSP中为了简化用户的开发,提供了九个内置对象,这些内置对象将由容器为用户进行实例化,而用户直接使用即可,而不用像在java中那样,必须通过关键字new进行实例化对象之后才可以使用。

对象名

类型

说明

request

javax.servlet.http.HttpServletRequest

response

javax.servlet.http.HttpServletResponse

session

javax.servlet.http.HttpSession

由session="true"开关

application

javax.servlet.ServletContext

exception

java.lang.Throwable

由isErrorPage="false"开关

page

java.lang.Object当前对象this

当前servlet实例

config

javax.servlet.ServletConfig

java管理系统基础源代码

out

javax.servlet.jsp.JspWriter

字符输出流,相当于 printWriter对象

pageContext

javax.servlet.jsp.PageContext

/div>

p>     

/p>

p>pageContext(重要)

/p>

p>1、本身也是一个域对象:它可以操作其它三个域对象(request session application)的数据

/p>

p>void setAttribute(String name,Object o);

/p>

p>Object getAttribute(String name);

/p>

p>void removeAttribute(String name);

/p>

p>操作其它域对象的方法

/p>

p>void setAttribute(String name,Object o,int Scope);

/p>

p>Object getAttribute(String name,int Scope);

/p>

p>void removeAttribute(String name,int Scope);

/p>

p>scpoe的值:

/p>

p>PageContext.PAGE_SCOPE

/p>

p>PageContext.REQUEST_SCOPE

/p>

p>PageContext.SESSION_SCOPE

/p>

p>PageContext.APPLICATION_SCOPE

/p>

p>

/p>

p>findAttribute(String name); 自动从page request session application依次查找,找到了就取值,结束查找。

/p>

p>

/p>

p>

/p>

p>2、它可以创建其它的8个隐式对象

/p>

p>在普通类中可以通过PageContext获取其他JSP隐式对象。自定义标签时就使用。

/p>

p>

/p>

p>3、提供了的简易方法

/p>

p>pageContext.forward("2.jsp");

/p>

p>     pageContext.include("2.jsp");

/p>

p>七、四大域对象

/p>

p>存放的数据在当前页面有效。开发时使用较少。

/p>

p>ServletRequest: request 存放的数据在一次请求(转发)内有效。使用非常多。

/p>

p>HttpSession: session 存放的数据在一次会话中有效。使用的比较多。如:存放用户的登录信息,购物车功能。

/p>

p>ServletContext: application 存放的数据在整个应用范围内都有效。因为范围太大,应尽量少用。

/p>

p>八、EL表达式语言

/p>

p>1、

EL概述与基本语法

/p>

p>

   

表达式语言(Expression Language)是JSP2.0中新增的功能。使用表达式语言(EL)可以在JSP页面进行方便地输出内容。EL语法为:${表达式}

/p>

p>EL表达式:expression language 表达式语言

/p>

p>要简化jsp中java代码开发。

/p>

p>它不是一种开发语言,是jsp中

获取数据

的一种规范

/p>

p>

/p>

p>2、

EL具体功能

/p>

p>1) 获取数据

/p>

p>EL表达式只能获取存在4个作用域中的数据

/p>

p>${u} 原理: pageContext.findAttribute("u");

/p>

p>url?name=tom ${param.name}

/p>

p>EL获取对于null这样的数据,在页面中表现为空字符串

/p>

p>${u.name} == u.getName()方法

/p>

p>点(.) 运算符相当于调了getter方法,点后页面跟的是属性名。

/p>

p>   

/p>

p>属性导航

/p>

p>    

/p>

p>运算符:点能做的,它也能做; 它能做的,点不一定能做

/p>

p>${student.name}== ${student['name']} == ${student["name"]}

/p>

p>    

/p>

p>2) 运算

/p>

p>算数运算符

/p>

p>      + - * /(div) %(mod)

/p>

p>参数相加

/p>

p>

/p>

p>关系运算符

/p>

p>       < (lt) > (gt) == (eq) !=(ne) >=(ge) <=(le)

/p>

p>

/p>

p>逻辑运算符

/p>

p>         &&(and)   ||(or) !(not)

/p>

p>运算符

/p>

p>表达式} 判断是否为null或空字符串””

/p>

p>

/p>

p>5. 三目运算符

/p>

p>返回true或false的表达式 ? "为true时输出的内容":"为false时输出的内容"}

/p>

p>

/p>

p>6. 括号运算符

/p>

p>用来改变运算顺序的

/p>

p>

/p>

p>3) 使用EL访问不同的属性范围

/p>

p>${pageScope.属性名}

/p>

p>属性名}

/p>

p>属性名}

/p>

p>属性名}

/p>

p>注意:

/p>

p>如果使用 "${属性名}" 的方式访问属性范围,

/p>

p>则属性范围的访问顺序是pageContext、request、session、application。

/p>

p>

/p>

p>4) 使用EL访问JSP内置对象

/p>

p>使用EL的pageContext内置对象访问JSP的内置对象。

/p>

p>对应的jsp内置对象}

/p>

p>例如:

/p>

p>获取上下文路径:

/p>

p>特殊:

/p>

p>   ${pageContext.servletContext.contextPath}

/p>

p>

/p>

p>访问session的ID:

/p>

p>   ${pageContext.session.id}

/p>

p>5) EL访问参数(访问客户端发送的参数、全局参数、 一组参数)

/p>

p>用途一:

/p>

p>使用EL的param内置对象访问客户端发送的参数

/p>

p>参数名}

/p>

p>

/p>

p>用途二:

/p>

p>使用EL的initParam内置对象访问上下文参数(全局参数)

/p>

p>在web.xml中配置上下文参数:

/p>

p>     <context-param>

/p>

p>        <param-name>admin</param-name>

/p>

p>        <param-value>Obama</param-value>

/p>

p>     </context-param>

/p>

p>用途三:

/p>

p>使用EL的paramValues访问一组参数

/p>

p>${paramValues.参数名[0]}   获取提交来的第一个参数值

/p>

p>${paramValues.参数名[n]}   获取提交来的第(n+1)个参数值

/p>

p>6) 访问cookie

/p>

p>举个例子:

/p>

p>通过EL的cookie内置对象访问JSESSIONID名称的 cookie的语法:

/p>

p>       ${cookie["JSESSIONID"].name}

/p>

p>       ${cookie["JSESSIONID"].value}

/p>

p>7)  访问header

/p>

p>使用EL的header内置对象访问请求header信息

/p>

p>比如:

/p>

p>   ${header["cookie"]}

/p>

p>3、

EL的11个隐式对象

/p>

div class="data-table" data-width="" style="outline: none; border-collapse: collapse; width: 100%;">

/colgroup>

tbody>

EL隐式对象引用名称

类型

JSP内置对象名称

说明

pageContext

javax.servlet.jsp.PageContext

pageContext

一样的

pageScope

java.util.Map<String,Object>

没有对应的

pageContext范围中存放的数据,页面范围

requestScope

java.util.Map<String,Object>

没有对应的

请求范围数据

sessionScope

java.util.Map<String,Object>

没有对应的

会话范围数据

applicationScope

java.util.Map<String,Object>

没有对应的

应用范围数据

param

java.util.Map<String,String>

没有对应的

一个请求参数

paramValues

java.util.Map<String,String[]>

没有对应的

重名请求参数

header

java.util.Map<String,String>

没有对应的

一个请求消息头

headerValues

java.util.Map<String,String[]>

没有对应的

重名请求消息头

initParam

java.util.Map<String,String>

没有对应的

web.xml中全局参数

cookie

java.util.Map<String,Cookie>

没有对应的

key:cookie对象的name值

/tbody>

br>

br>

br>

br>

br>

br>

br>

br>

strong>JSTL概述与作用:

/strong>

strong>

/strong>JSTL(JavaServerPages Standard Tag Library)JSP标准标签库

strong>引入JSTL的步骤:

/strong>

strong>

/strong>第一步:将jstl-xx.jar导入/WEB-INF/lib文件夹下。

strong>使用JSTL

/strong>

strong>  

/strong>JSP页面使用taglib指令引入xxx.tld文件

strong>常用标签

/strong>

strong>

/strong>1.输出标签

strong>   

/strong>设置对象的属性值

strong>

/strong>

br>

em>JSP其实就是在HTML页面中嵌入Java代码。

/em>

em>代码

/em>

br>

colgroup>

col>

col>

col>

tr style="height: 30px;">

对象名

类型

说明

/tr>

tr style="height: 30px;">

request

javax.servlet.http.HttpServletRequest

/tr>

tr style="height: 30px;">

response

javax.servlet.http.HttpServletResponse

/tr>

tr style="height: 30px;">

session

javax.servlet.http.HttpSession

由session="true"开关

/tr>

tr style="height: 30px;">

application

javax.servlet.ServletContext

/tr>

tr style="height: 30px;">

exception

java.lang.Throwable

由isErrorPage="false"开关

/tr>

tr style="height: 30px;">

page

java.lang.Object当前对象this

当前servlet实例

/tr>

tr style="height: 30px;">

config

javax.servlet.ServletConfig

/tr>

tr style="height: 30px;">

out

javax.servlet.jsp.JspWriter

字符输出流,相当于 printWriter对象

/tr>

tr style="height: 30px;">

pageContext

javax.servlet.jsp.PageContext

/tr>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

EL隐式对象引用名称

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

类型

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

JSP内置对象名称

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

说明

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

pageContext

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

javax.servlet.jsp.PageContext

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

pageContext

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

一样的

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

pageScope

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

java.util.Map<String,Object>

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

没有对应的

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

pageContext范围中存放的数据,页面范围

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

requestScope

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

java.util.Map<String,Object>

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

没有对应的

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

请求范围数据

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

sessionScope

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

java.util.Map<String,Object>

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

没有对应的

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

会话范围数据

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

applicationScope

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

java.util.Map<String,Object>

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

没有对应的

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

应用范围数据

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

param

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

java.util.Map<String,String>

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

没有对应的

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

一个请求参数

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

paramValues

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

java.util.Map<String,String[]>

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

没有对应的

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

重名请求参数

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

header

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

java.util.Map<String,String>

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

没有对应的

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

一个请求消息头

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

headerValues

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

java.util.Map<String,String[]>

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

没有对应的

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

重名请求消息头

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

initParam

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

java.util.Map<String,String>

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

没有对应的

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

web.xml中全局参数

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

cookie

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

java.util.Map<String,Cookie>

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

没有对应的

/td>

td style="min-width: auto; overflow-wrap: break-word; margin: 4px 8px; border: 1px solid rgb(217, 217, 217); padding: 4px 8px; cursor: default; vertical-align: top;">

key:cookie对象的name值

/td>









九、JSTL

1、JSTL概述与作用:

JSTL(JavaServerPages Standard Tag Library)JSP标准标签库

使用JSTL实现JSP页面中逻辑处理。如判断、循环等。

2、引入JSTL的步骤:

第一步:将jstl-xx.jar导入/WEB-INF/lib文件夹下。

   

第二步:将jstl-xx.jar解压后的META-INF文件夹下的xxx.tld文件拷贝到/WEB-INF/的某目录下

第三步:在JSP页面使用taglib指令引入xxx.tld文件。

   

3、使用JSTL

  JSP页面使用taglib指令引入xxx.tld文件

指向xxx.tld文件的路径"     prefix="JSTL标签前缀"%>

注意:uri中指向xxx.tld文件的路径有两种写法:

第一种:直接指向xxx.tld文件的路径

第二种:在web.xml中配置taglib的uri

          <jsp-config>

                   <taglib>

                         <taglib-uri>http://www.xxx.com</taglib-uri>

                         <taglib-location>/WEB-INF/c.tld</taglib-location>

                   </taglib>

          </jsp-config>

4、常用标签

1.输出标签

输出的内容,支持EL" default=" 默认值,支持EL"/>

2.设置标签

设置属性范围的属性值

属性名" value="属性值,支持EL" scope="属性范围"/>

   设置对象的属性值

“${perObj}” property=“对象的属性名” value=“支持EL"/>

3.捕获异常标签

保存异常信息的属性名">

有可能发生异常的代码

    </c:catch>

4.判断标签

判断表达式,支持EL">

判断结果为true,执行此处

     </c:if>

5.forEach标签(遍历list集合或Map集合)

当前正在遍历的对象,作为属性用(msg)" items="要遍历的集合,支持EL">

            ${msg}

      </c:forEach>

6.choose标签

      <c:choose>

          <c:when test="${param.score>=90}">

优秀</h3>

          </c:when>

          <c:when test="${param.score>=80}">

良好</h3>

          </c:when>

          <c:otherwise>

不及格,要加油!</h3>

          </c:otherwise>

      </c:choose>

小讯
上一篇 2024-12-23 15:32
下一篇 2024-12-23 15:32

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/70.html