Jsp

Jsp

Sun公司研发的动态生成html页面的一种技术

Jsp 是java与html的结合体

可以在任意系统上运行

担任显示层角色

JSP本质就是Servlet

语法

  1. 注释(客户端看不到)
<%-- xxx --%>
2.声明
<%! java代码 %>    #定义方法和成员变量
3.脚本
<% java代码 %>    #定义局部变量和执行语句
4.表达式
<%=2%>  # 用于输出变量
5.指令
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
isErrorPage="" 
errorPage =''
import=""
errorPage="error.jsp"  # 文件名
6.动作
usebean设置实体类 <jsp:useBean id="o1" scope="session" class="com.x" ></jsp:useBean>
# scope为域对象范围(四大域对象)


getproperty   
setproperty
forward 转发     
include  包括  <jsp:include page="xxxx.jsp"></jsp:include>
<jsp: xxx>  xxx是userbean include


<%out.write(xxxx)%>


image-20200328181737115

image-20200328181907345

image-20200328181922202

九大内置对象和四大作用域

九大内置对象

  • out.write('xxxx')

  • pageContext 获得其他八大对象

  • request 请求参数

  • response

    跳转页面 响应页面数据

  • Session

    会话技术 域对象

  • application(servletContext)

    上下文对象 : 取绝对路径 全局参数 域对象

  • exception 异常

  • page : 代指当前jsp页面,相当于javathis的引用

  • config : servletConfig 获取servlet配置的参数

四大作用域

  • servletContext

    整个过程(整个项目下jsp和servlet都可以获取)

  • session

    一次会话(多页面)

  • request

    一次请求(多页面==》 转发)

  • pageContext

    当前jsp页面

EL表达式 JSTL

Expression Language

EL会自动搜索4个作用域 ${username}

Jsp Standard Tag Library Jsp标准标签库,提供额外标签 。

其目是 要使用类似于html标签的格式 来完成对页面的流程控制 (还是为了减少java代码)

基本语法

${1+1}
${requestScope.username}
${sessionScope.username}
${10 - 3}
${true && true}
${sessionScope.username == tom}
${!empty sessionScope.age}
${param.password}       #?password=1231  ==> 1231
<%--EL会自动搜索4个作用域 --%>
${username}
  • for 循环
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:forEach items="${requestScope.list}" var="name">
     <tr>
          <td>${name}</td>
     </tr>
</c:forEach>




<%--循环遍历(常用)--%>
<c:forEach items="1,2" var="temp" varStatus="vt">
    <spa>遍历的值${temp}</spa>
    <span>循环索引${vt.index}</span>
    <span>循环次数${vt.count}</span>
    <span>当前的值${vt.current}</span>
    <span>是否是第一个${vt.first}</span>
    <br/>
</c:forEach>
  • if
<c:if test="fasle">
    <h1>判断通过了</h1>
</c:if>


<c:if test="${empty myname}">
    <h1>myname是空的</h1>
</c:if>
<c:if test="${!empty myname}">
    <h1>myname不是空的</h1>
</c:if>




<%--选择结构--%>
<c:choose>
    <c:when test="true">
        when1
    </c:when>
    <c:otherwise>
        其他的
    </c:otherwise>
</c:choose>


  • 分页逻辑
<%--判断用户是否传递了page参数--%>
    <c:if test="${param.page == null}">
        <c:set var="page" value="1" scope="request"/>
    </c:if>


    <c:if test="${param.page != null}">
        <c:set var="page" value="${param.page}" scope="request"/>
    </c:if>




    当前是:${page}
<%--根据与当前页面 判断是否要显示按钮--%>
    <c:if test="${page > 1}">
        <a href="pagetest.jsp?page=${page-1}">上一页</a>
    </c:if>


    <c:if test="${page < 5}">
        <a href="pagetest.jsp?page=${page+1}">下一页</a>
    </c:if>


posted @ 2020-04-21 14:20  tangshuo!  阅读(159)  评论(0编辑  收藏  举报