JSP

JSP:入门学习
1.概念:
Java Server Pages:java服务器端页面
可以理解为一个特殊的页面,其中既可以定义html标签,又可以定义java代码
用于简化书写
2、jsp的原理
jsp本质上就是一个servlet
3、jsp的脚本(jsp定义的java代码)
(1)<% 代码 %> 定义的java代码,在service方法中,service方法中可以定义什么,该脚本中就可以定义什么
(2)<%! 代码 %> 定义的java代码,在jsp转换后的java类的成员位置
(3)<%= 代码 %> 定义的java代该脚本就可以码会输出到页面,输出语句中可以定义什么,该脚本就可以定义什么
4.jsp的指令
作用:用于配置jsp页面,导入资源文件
格式:<%@ 指令名称 属性名1=属性值1 属性名2=属性值2…%>
分类:
(1)page : 配置jsp页面的
(2)include:页面包含的,导入页面的资源
(3)taglib:导入资源
page指令的使用:
contentType:设置响应体的mime类型及字符集,设置当前jsp页面编码(只能是高级的IDE才能生效,如果使用低级工具,则需要设置pageEncodine=“utf-8”)
import:导包
errorPage:当前页面发生异常后,会自动跳转到指定的错误页面,
iserrorPage:标识当前是否发生错误页面
true:是,可以使用内置对象exception
false:否,默认值,不可以使用内置对象exception
include指令
<%@include file=“top.jsp”%>
taglib指令
在这里插入图片描述
5.jsp注释
(1)html注释: 只能注释html代码片段
(2)jsp注释:<%-- --%> 可以注释所有
6、jsp的内置对象
在Jsp页面中不需要获取和创建,可以直接使用的对象
jsp一共有9个内置对象
pageContext、session、request、application为四个域对象
变量名 真实类型 作用
request:请求 HttpServletRequest 一次请求访问多个资源
session: HttpSession 一次会话的多个请求间
application: ServletContext 所有用户间共享数据
pageContext: PageContext 当前页面共享数据,还可以获取其他八个内置对象
response:响应 HttpServletResponse 响应对象
page: Object 当前页面的对象
config: ServletConfig servlet的配置对象
exception: Throwable 异常对象
out JspWriter 输出对象,可以把数据输出到页面上

out	:可以数据输出到页面上,字符输出流,和response.getWriter()类似
response.getWriter()和out.getWriter()的区别:
在tomcat服务器真正给客户端做出响应之前,会先找到response缓冲区数据,再找out缓冲区数据
 response.getWriter()数据输出永远在Out.writer之前
 **7.mvc开发模式**
 (1)jsp的演变历史
          早期只有servlet,只能使用respons输出标签数据,非常麻烦 
          后来有了jsp,简化了servlet的开发,如果过度使用jsp,在jsp中写大量的java代码,又写html表,造成难于维护,难于分工协作
          再后来,java的web开发,借鉴mvc的开发模式,使得程序设计更加合理性
(2)mvc详解
         M:Model,模型    JavaBean
               完成具体业务操作,如:查询数据库,封装对象
         V:View,视图  Jsp
              展示数据
         C:Controller,控制器  Servlet
               获取用户的输入
               调用模型
               将数据交给视图进展示
        优缺点:
                 优点:
                 a.耦合性低,方便维护,可以利于分工协作
                 b.重用性高
                 缺点:
                  使得项目架构变得复杂,对开发人员要求高

8.EL表达式
(1)概念:Expression Language表达式语言
(2)作用:替换和 简化jsp页面中java代码的编写
(3)语法:${表达式}
(4)注意:jsp默认支持el表达式的
如果要忽略el表达式(不被解析),方法:
a.设置jsp中的page指令中,isELIgnored=“true”,忽略当前jsp页面中所有的el表达式
b.${ 表达式}:忽略当前这个el表达式
(5)使用:
a.运算
*运算符:
算术运算符: + - * /(div) %(mod)
比较运算符:> < >= <= == !=
逻辑运算符:&&(and) || (or) !(not)
空运算符:empty 用于判断字符串、集合、数组对象是否为null并且长度是否为0
${empty list}
在这里插入图片描述
在这里插入图片描述

    b.获取值
       el表达式只能从域对象中获取值
       语法:
           one: ${域名称.键名}:从指定域中获取指定的值
               域名称:
                           pageScope   		----->    		pageContext
                            requestScope 		----->  		request
                            sessionScope		 -----> 	 	session
                            applicationScope	 ----->  	application
       例如:在request域中存储name=张三
       获取:${requestScope.name}        ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190916145126598.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI2MDQ5OQ==,size_16,color_FFFFFF,t_70)
       two  :${键名}:表示依次从最小的域中查找是否有该键值对应的值,直到找到为止。(reqquest域<session域)

(6)获取对象、list集合、map集合
对象: 域 名 称 . 键 名 . 属 性 名 本 质 上 会 去 调 用 对 象 的 g e t t e r 方 法 ! [ 在 这 里 插 入 图 片 描 述 ] ( h t t p s : / / i m g − b l o g . c s d n i m g . c n / 20190916153739780. p n g ? x − o s s − p r o c e s s = i m a g e / w a t e r m a r k , t y p e Z m F u Z 3 p o Z W 5 n a G V p d G k , s h a d o w 1 0 , t e x t a H R 0 c H M 6 L y 9 i b G 9 n L m N z Z G 4 u b m V 0 L 3 d l a X h p b l 80 N D I 2 M D Q 5 O Q = = , s i z e 1 6 , c o l o r F F F F F F , t 7 0 ) ! [ 在 这 里 插 入 图 片 描 述 ] ( h t t p s : / / i m g − b l o g . c s d n i m g . c n / 20190916153810835. p n g ? x − o s s − p r o c e s s = i m a g e / w a t e r m a r k , t y p e Z m F u Z 3 p o Z W 5 n a G V p d G k , s h a d o w 1 0 , t e x t a H R 0 c H M 6 L y 9 i b G 9 n L m N z Z G 4 u b m V 0 L 3 d l a X h p b l 80 N D I 2 M D Q 5 O Q = = , s i z e 1 6 , c o l o r F F F F F F , t 7 0 ) L i s t 集 合 : {域名称.键名.属性名} 本质上会去调用对象的getter方法 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190916153739780.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI2MDQ5OQ==,size_16,color_FFFFFF,t_70) ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190916153810835.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI2MDQ5OQ==,size_16,color_FFFFFF,t_70) List集合: ..getter![](https://imgblog.csdnimg.cn/20190916153739780.png?xossprocess=image/watermark,typeZmFuZ3poZW5naGVpdGk,shadow10,textaHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI2MDQ5OQ==,size16,colorFFFFFF,t70)![](https://imgblog.csdnimg.cn/20190916153810835.png?xossprocess=image/watermark,typeZmFuZ3poZW5naGVpdGk,shadow10,textaHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI2MDQ5OQ==,size16,colorFFFFFF,t70)List{域名称.键名[索引]}
在这里插入图片描述
Map集合: ${域名称.键名.key名称}
${域名称.键名[“key名称”]}
在这里插入图片描述
EL中的隐式对象

9.JSTL
(1)概念:JavaServer Pages Tag Library JSP标准标签库
是由Apache组织提供的开源的免费的Jsp标签
(2)作用:用于简化和替换Jsp页面上的Java代码
(3)使用步骤
a.导入jstl相关jar包
b.引入标签库:taglib指令 <%@taglib %>
c.使用标签
(4)常用的jstl标签
a.if 相当于Java代码的if语句
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
b.choose 相当于Java代码的switch语句在这里插入图片描述
c.foreach 相当于java代码的for语句
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值