javaweb--jsp原理解析

1.jsp:

  java Server pages:java服务端页面,也和servlet一样,用于动态web技术

  最大特点:

    写jsp就像在写html

    区别:

      html只是给客户提供静态的数据

      jsp页面可以嵌套Java代码,为用户提供动态数据

2.jsp原理:

  浏览器向服务器发送请求,不管访问什么资源,其实就是在访问servlet

  jsp最终也会转换成一个java类

  jsp本质上就是一个servlet

3.jsp内置对象

 

4.图解 

 

5.语法、内置对象、作用域

  <body>
  <%--
  jsp表达式
  用来将程序输出到客户端
  <%=变量或者表达式%>
  --%>
  <%=new Date()%>
  <br>
  <hr>
  <%--jsp脚本片段--%>
<%
  for (int i = 0; i <5 ; i++) {
    out.println(""+i+""+"你好!");
  }

%>
  <%--跳转到404错误页面--%>
  <%--<%@page errorPage="WEB-INF/error/404.jsp" %>--%>
  <%--<% int a=2;--%>
    <%--System.out.println(2/0);--%>
  <%--%>--%>

  <%--存入键值对--%>
  <%
  pageContext.setAttribute("name1", "a");//保存的数据只在一个页面中有效
  request.setAttribute("name2", "b");//保存的数据只在一次请求中有效,请求转发会携带这个数据
  session.setAttribute("name3", "c");//保存的数据只在一次会话中有效,从打开浏览器到关闭浏览器结束
  application.setAttribute("name4", "d");//打开的数据只在服务器中有效,从打开服务器到关闭服务器结束
  %>
  <%--取值--%>
  <%
    //pageContext.getAttribute("name1");
    String name1=(String)pageContext.findAttribute("name1");
    String name2=(String)pageContext.findAttribute("name2");
    String name3=(String)pageContext.findAttribute("name3");
    String name4=(String)pageContext.findAttribute("name4");
  %>
  <%--EL表达式输出  ${}--%>
  <h1>输出结果:</h1>
  <h1>${name1}</h1>
  <h1>${name2}</h1>
  <h1>${name3}</h1>
  <h1>${name4}</h1>
  </body>

 

6.JSTL核心标签

引入依赖

 <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>

在jsp头部引入标签库

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

核心标签:

 

 

EL表达式:

  获取数据

  执行运算

  获取web开发的常用对象

<form action="jstl2.jsp" method="get">
    <%--
    EL表达式获取表单的数据方式
    ${param.参数名}
    --%>
    姓名:<input type="text" name="username" value="${param.username}"><br>
    <input type="submit" value="提交">
  </form>
  <%--判断提交的用户名是否是admin,是则登陆成功--%>
  <c:if test="${param.username=='admin'}" var="isAdmin">
    <c:out value="管理员欢迎你"/>
  </c:if>
  <%--返回值是boolean类型--%>
  <c:out value="${isAdmin}"/>
  </body>

 

posted @ 2020-11-03 10:51  lemmon_water  阅读(167)  评论(0)    收藏  举报