zoukankan      html  css  js  c++  java
  • JSP

    JSP

    Jsp实质就是servlet,jsp在第一次被访问时会被Web容器翻译成servlet,再执行,

    servlet内也可写HTML标签,

    Jsp内写java代码方法:

    <%java代码%> ----- 内部的java代码会翻译到service方法中,所以该标签内无法写方法

    <%=java变量或表达式> ----- 会被翻译到service方法内部out.print(),只能写值

    <%!java代码%> ---- 会被翻译到类中,可写成员变量和成员方法

    <%-- jsp注释 --%>

    Jsp三大指令

    1.page指令:

    格式:<%@page 属性名1=”属性值1” ……%>

    常用属性:

    import:导入java的包 ,AIt+/  自动导包

    errorPage=”路径”:设置当前页面出错后跳转到哪个页面

    isErrorPage=”true”:当前页面为处理错误的页面,设置后出错会跳到该页面,控制台不会报错

    可在web.xml中设置:

    <error-page>

        <error-code>404</error-code>

        <location>/eror.jsp</location>  //出错后跳转的页面

    </error-page>

    <error-page>

        <error-code>500</error-code>

        <location>/eror.jsp</location>  //出错后跳转的页面

    </error-page>

    2.Include指令:

    静态包含,可将一个页面拼接到另一个页面中,

    格式:<%@ include file="被包含的文件地址"%>

    动态包含:

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

    Jps隐藏对象(9

    jsp被翻译成servlet之后,service方法中有9个对象定义并初始化完毕,在jsp可以直接使用这9个对象

    out  用于页面输出

    request  请求

    response  响应

    config  服务器配置,servlet  init方法中,可直接得到初始化值

    session  域,用来存储用户信息

    application  域

    page  指令

    pageContext  域,JPS的页面容器

    exception 

    pageContext对象:

    page对象与pageContext对象不是一回事

    pageContext是一个域,作用范围:当前jps中

    setAttribute(String name,Object obj)

    getAttribute(String name)

    removeAttrbute(String name)

    pageContext可以向指定的其他域中存取数据

    pageContext.setAttribute("name", "zhangsan",PageContext.REQUEST_SCOPE);//request域

     

        pageContext.setAttribute("name", "lisi",PageContext.SESSION_SCOPE);//session域

     

        pageContext.setAttribute("name", "wangwu",PageContext.APPLICATION_SCOPE);//application域

    pageContext取数据:

    pageContext.getAttribute("name",PageContext.REQUEST(域名)_SCOPE)//取

    <%= pageContext.findAttribute("name")%> <!-- 根据域范围从小往大找 -->

    EL表达式

    EL(Express Lanuage)表达式可以嵌入在jsp页面内部,减少jsp脚本的编写,EL 出现的目的是要替代jsp页面中脚本的编写。

    EL从四个域中取数据,范围才小到大:

    ${name}

    对象取值:

    ${key.属性名}

    集合取值

    ${List[0].id }

    获取项目名:

    ${pageContext.request.contextPath}

    判断是否为空,为空是true

    ${empty user}

    EL获得四大域中的数据,格式${EL表达式}

    EL获得pageContext域中的值:${pageScope.key};

    EL获得request域中的值:${requestScope.key};

    EL获得session域中的值:${sessionScope.key};

    EL获得application域中的值:${applicationScope.key};

    JSTL技术

    JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能。jstl出现的目的同el一样也是要代替jsp页面中的脚本代码。JSTL标准标准标签库有5个子库,但随着发展,目前常使用的是他的核心库

    标签库    标签库的URI 前缀

    Core        http://java.sun.com/jsp/jstl/core c

    JSTL导入

    在JSTL文件夹lib目录下的两个JAR文件,分别为jstl.jar和standard.jar,导入

    使用jsp的taglib指令导入核心标签库:

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

    JSTL常用标签:

    <c:if  test=” ”>标签

    普通for:

    <c:forEach begin="0" end="10" var="i">

             ${i }

    </c:forEach>

    增强for,      items=” 内写要遍历的域中的集合或map”:

    <c:forEach items="${List }" var="user">

             ${user.id }...${user.username }

             <br>

    </c:forEach>

    for内取key

    ${变量名.key }

    ${变量名.value.username }

  • 相关阅读:
    已安装 SQL Server 2005 Express 工具。若要继续,请删除 SQL Server 2005 Express 工具
    超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。
    C#微信公众号开发 -- (七)自定义菜单事件之VIEW及网页(OAuth2.0)授权
    C#微信公众号开发 -- (六)自定义菜单事件之CLICK
    C#微信公众号开发 -- (五)自定义菜单创建
    C#微信公众号开发 -- (四)获取API调用所需的全局唯一票据access_token
    C#微信公众号开发 -- (三)用户关注之后自动回复
    C#微信公众号开发 -- (二)验证成为开发者
    linux下删除大量文件提示参数过长解决办法
    Linux 远程连接sftp与ftp
  • 原文地址:https://www.cnblogs.com/hhthtt/p/10708639.html
Copyright © 2011-2022 走看看