编写java无脚本的JSP页面

(一)JSP表达式语言EL

           EL表达式:${person.name}  ;

•          与输入有关的隐含对象有两个,即param和paramValues,它们是EL中比较特别的隐含对象。例如,要取得用户的请求参数时,可以利用下列方法:

–        request.getParameter(String name)

–        request.getParameterValues(String name)

•          在EL中则可以使用param和paramValues两者来取得数据:

–        ${param.name}

–        ${paramValues.name

•          cookie

–        用来取得使用者的cookie值,例如在cookie中设定了username属性值,可以使用${cookie.username.value}来取得属性值。

•          header和headerValues

–        读取请求的头数据,使用header或headerValues内置对象,例如${header[“User-Agent”]},headerValues则用来取得所有的头信息,等价于调用request.getHeaders()方法。

•          initParam

–        initParam用来读取设置在web.xml中的参数值。例如${initParam.repeat},等价于:(String)application.getInitParameter(“repeat”);  或
servletContext.getInitParameter(“repeat”);

•          pageContext

–        pageContext用于取得其他有关用户要求或页面的详细信息

${pageContext.request.queryString} 取得请求的参数字符串

${pageContext.request.requestURL} 取得请求的URL,不包括参数字符串

${pageContext.request.contextPath}         服务的web application 的名称

${pageContext.request.method}           取得HTTP 的方法(GET、POST)

${pageContext.request.protocol}         取得使用的协议(HTTP/1.1、HTTP/1.0)

${pageContext.request.remoteUser}         取得用户名称

${pageContext.request.remoteAddr }         取得用户的IP 地址

${pageContext.session.new}             判断session 是否为新的

${pageContext.session.id}               取得session 的ID

${pageContext.servletContext.serverInfo}   取得主机端的服务信息


(二)jsp自定义标记库

   例:

            

1 创建自定义标签类

 

public class UserInfoTag extends TagSupport {

    private UserInfo user

@Override

    public int doStartTag() throws JspException {

        try {

            JspWriter out = this.pageContext.getOut();

            if(user == null) {

                out.println("No UserInfo Found...");

                return SKIP_BODY;

            }

            out.println("<table width='500px' border='1' align='center'>");

            out.println("<tr>");

            out.println("<td width='20%'>Username:</td>");

            out.println("<td>" + user.getUserName() + "</td>");

            out.println("</tr>");

            out.println("<tr>");

            out.println("<td>Age:</td>");

            out.println("<td>" + user.getAge() + "</td>");

            out.println("</tr>");

            out.println("<tr>");

            out.println("<td>Email:</td>");

            out.println("<td>" + user.getEmail() + "</td>");

            out.println("</tr>");

            out.println("</table>");

        } catch(Exception e) {

            throw new JspException(e.getMessage());

        }

        return SKIP_BODY;

    }

   

    @Override

    public int doEndTag() throws JspException {

        return EVAL_PAGE;

    }

(三)标准


功能范围作用URL前缀
核心(core)一般用途处理的标记
http://java.sun.com/jstl/core
c
xml解析、选择、转换XML数据的标记
http://java.sun.com/jstl/xml
x
数据库(sql)访问关系型数据库的标记
http://java.sun.com/jstl/sql
sql
国际化(I18N)为国际化应用格式化数据的标记
http://java.sun.com/jstl/fmt
fmt
函数(functions)处理字符串和集合的标记
http://java.sun.com/jstl/functions
fn

条件标签包括以下几种:

<c:if>;

<c:choose>;

<c:when>;

<c:otherwise>;


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

<%@ page contentType="text/html; charset=gb2312" language="java" %>

<html>

<head>

<title>JSTL:c:if的使用</title>

</head>

<body bgcolor="#FFFFFF">

<c:set var="count" value="100"/>

<c:if test="${count>78}">

count>78

</c:if>

</body>

</html>


<c:choose>,<c:otherwise>,<c:when>举例:c_choose.jsp

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

<%@ page contentType="text/html; charset=gb2312" language="java" %>

<c:set var="count" value="100"/>

<html>

<head>

<title>JSTL:c:choose的使用</title>

</head>

<body bgcolor="#FFFFFF">

<c:choose>

    <c:when test="${count <=0}">

      <font color="blue">

    </c:when>

    <c:when test="${count<=60&&count>0}">

      <font color="red">

    </c:when>

    <c:otherwise>

      <font color="green">

    </c:otherwise>      

</c:choose>

count的值是:<c:out value="${count}"/>

</font>

</body>

</html>

<%@ page contentType="text/html; charset=GBK" %> 
<%@ page import="java.util.*" %> 

<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %> 
<html> 
  <head> 
    <title>JSTL测试1--c:forEach循环</title> 
  </head> 

  <body> 



















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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值