JavaWeb:JSP(上)

JSP:是运行在服务器的页面 servlet 是运行在服务器的java代码 (有关系)(页面的展示) (html+Java代码)
静态的网页:前后端交互比较麻烦
动态的页面 :是可以写html标签 :但是比较麻烦,html 与java代码混合,所有说不使用servle写网页

因为是运行在服务器的页面,所有需要进行编译,编译后的代码在哪里? 在你安装的idea的配置目录里

jsp属于一个特殊的servlet,index_jsp extends org.apache.jasper.runtime.HttpJspBase,HttpJspBase是HttpServle的一个子类
out.write("\n");out.write(" \n"); jsp 中所有html代码都是通过write()来写入到浏览器里

jsp 被访问的时候的流程:
在这里插入图片描述

jsp与servlet 的区别:
jsp就是一个 servlet

区别:jsp 主要页面的显示(不做转发到某个界面,或者是到那个地方请求) ==>jsp >servlet >service>dao>数据库

servlet(controller) 负责处理请求与相响应

I: model1 模式的缺点: java代码 html 代码混合 ,不方便修改与维护
model2 jsp 在做页面展示 servlet(controller) 负责处理请求与相响应
在这里插入图片描述

jsp 的组成部分:
java的片段:<% 中间去写就java代码,不能够写html标签%>
输出语句:<%=%>
注释: 快捷键:alt+shift+/
声明:<%! %> 如果这里有变量是成员变量,一般是申明方法

jsp 中的三大指令: 指令的格式:

   <%@>
       page
       <%@ page contentType="text/html;charset=UTF-8" language="java"   %>

            contentType="text/html 表示jsp中的类型   charset=UTF-8" 设置其编码格式  language="java"  语言  errorPage="welcome.jsp" 页面发生异常所有加载的页面
            <%@ page import="java.text.SimpleDateFormat" %>导包 

     include 指令: 引入其它jsp文件(基本上都是公共的部分) 
            <%@ include file="head.jsp"%>   静态引入:适合引用纯html代码  先加载 再编译

    taglib 指令一般引用第三方的表达式比如jstl表达式 fmt 格式化时间的

使用jsp来做展示: 展示界面

jsp提供的动态标签库:动态的引入 边加载 边编译 (适合于引入动态的界面) <jsp:include page=“head.jsp”></jsp:include>

el 表达式 : 作用是简化jsp里的代码,用于获取存与内置(request, respone servletContext)对象的值
语法: ${或者的变量的值}
使用el表达式来获取对象,必须给这个对象set get 方法
获取的语法: ${对象名称.属性的名称}
el 作用
1.可以避免简单的错误
2.可以做一些简单的算术
3.可以获取内置对象作用域下的值

jstl 表示式: 一般是与el搭配使用,简化jsp里的代码
使用jstl 表达式:
1.导入jar (添加依赖)
2.引用相应的标签库 jstl
<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
prefix=“c” 表示前缀 一般取名为c 可以进行修改(但是不建议)
uri=“http://java.sun.com/jsp/jstl/core” 表示引入的核心库(也就是网址) 固定写法

jstl 常用表达式: <c:set var=“pang” value=“小胖不能再胖了”></c:set> 设置一个变量 var 为变量的名称 value 为值

<c:if test="${pang !=null}">小胖成功找女朋友了</c:if> 用于做判断 test 里便是判断的条件

<c:choose>
<c:when test=" p a n g = = 20 " > 找 了 一 个 女 朋 友 , 年 龄 为 20 < / c : w h e n > < c : w h e n t e s t = " {pang==20}"> 找了一个 女朋友,年龄为20 </c:when> <c:when test=" pang==20">20</c:when><c:whentest="{pang>=22}">
下一个刘强东就是你了
</c:when>

<c:otherwise>
找了一个超过20岁的女朋友
</c:otherwise>

</c:choose>

表示多分支if选择结构

遍历集合的标签:
items 表示需要遍历的集合
var=“register” 表示每次遍历的对象
varStatus 表示其索引
begin 表示从几开始遍历
end 到什么时候结束
step 波长 每次遍历的间隔

<c:forEach items="${registerList}" var="register" varStatus="statu" begin="1" end="5" step="2">
      ${register.id}<br/>
      ${register.name}
 </c:forEach>

<c:out value=“ddd”></c:out> 就是打印

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值