jsp域名空间 Hello,今天给各位童鞋们分
作者:admin 发布时间:2023-03-28 10:02:11 分类:随笔 浏览:87
Hello,今天给各位童鞋们分享JSP,赶紧拿出小本子记下来吧!
一、jsp概述
动态网页中,绝大部分内容都是固定不变的,只有局部内容需要动态产生和改变。
使用Servlet通过字符串拼接的方式输出静态网页是一件十分痛苦的事情,为了弥补Servlet的这种缺陷,SUN公司在Servlet的基础上推出了jsp(Java Server Pages)技术。
jsp是简化Servlet编写的一种技术,它可以让Java代码和HTML语句混合在同一个文件中编写
jsp只对网页中的要动态产生的内容采用Java来编写,对固定不变的静态内容采用HTML页面的方式编写
jsp页面是由HTML语句 (输出静态部分) 和 Java代码(输出动态部分) 组成的文件,其后缀名为.jsp
jsp的本质是一个Servlet。
二、jsp与servlet的优缺点
sevlet
优点:编写java特别方便
缺点:使用response.getWriter().print("页面")方式生成HTML页面特别繁琐和复杂
jsp
优点:jsp的出现消除了在servlet中写html代码的复杂性
缺点:把所有的java代码都在jsp中编写的话,可维护性差
三、jsp快速入门
3.1 jsp执行原理
tomcat会把jsp文件,先翻译成.java文件,再编译成.class文件,zui后运行的是这个.class文件。整个的过程,在idea虚拟目录中的work目录中完成。
我们编写的jsp编译成的.class继承了HttpJspBase,而HttpJspBase继承了HttpServlet,所以说jsp本质就是一个Servlet。
3.2 jsp基础语法
3.2.1 脚本
Jsp通过脚本方式来定义java代码,脚本就是JSP中用来书写java代码的部分,主要有三种写法:
脚本片段
语法: <% Java代码 %>
作用:编写逻辑Java代码,这里面编写的代码, 编译之后会直接出现在servlet的service()方法中
语法: <%! java代码 %>
作用:声明全局变量和方法,这里面编写的代码,编译之后会出现在servlet的成员变量位置
脚本表达式
语法:<%=java代码 %>
作用: 向页面输出字符,这里面编写的代码, 编译之后会直接出现在servlet的service()方法中的out.print("")内
3.2.2 注释
<%-- 注释内容 --%>`
注释html代码和java代码脚本
注释作用范围:
3.2.3 三大指令
page
include
taglib
3.3 隐式对象
隐式对象:在jsp中已经声明好了(_jspService定义好的变量),可以直接在页面上使用的对象。
隐式对象特点
可以在jsp中不声明,直接使用
不是真的不声明,而是在jsp中看起来像没有声明
前四个对象都可以用来共享数据,它们存取数据的范围从小到大依次是:pageContext < request < session < application
pageContext的作用有3个:
1) 当前页面共享数据 2) 获取其它八个内置对象 3)可以操作4个域对象的数据
3.3.1 PageContext页面域
PageContext是javax.servlet.jsp.JspContext的子类,也在javax.servlet.jsp包下;它可以获取其他8个隐式对象,同时它也是一个域对象,称为页面域。
页面域作用范围:就在当前页面,出了当前页面就用不了了。
PageContext不仅可以操作页面域,还可以操作其他三个域。
3.4 表达式语言(Expression Language)
3.4.1 EL概述
jsp嵌套java代码,使用脚本元素 ,太复杂现在已经淘汰,所以现在在JSP中不允许出现Java代码。
现在我们使用表达式语言(Expression Language),主要用来简化jsp中对java代码的操作。
EL可以从jsp的域对象中获取数据,还可以执行一些简单的计算。
语法: ${表达式}
${pageScope.键名} 从page域中获取指定键名对应的值
${requestScope.键名} 从request域中获取指定键名对应的值
${sessionScope.键名} 从session域中获取指定键名对应的值
${applicationScope.键名} 从application域中获取指定键名对应的值
简化写法:
${键名}:从zui小域到zui大域依次查找,若找到,立即返回且终止查找;若没有找到,返回""
细节:
没有空指针异常
没有数组下标越界
没有字符串拼接
3.4.2 存储数据
往域中放入的数据的时候,尽量不要在属性名中使用.和数字
3.4.3 读取数据
简单类型:${键名}
对象类型:${键名.属性名 去掉get首字母小写}
单列集合类型:${键名[索引]}
双列集合类型:${键名[“key”]}
3.4.4 执行运算
算数运算符
语法: + - * / %
比较运算符
语法:> < >=<===!=
逻辑运算符
语法:&& || !
三元运算符
语法:${条件表达式?为真:为假}
空运算符
语法:${not empty 对象}
功能:
用于非空判断,
判断一个字符串是否为null或者""
判断一个集合或者数组的长度是否为0
判断一个对象是否为null
3.4.5 使用细节
没有空指针异常
没有数组下标越界
没有字符串拼接
3.5 Jsp标准标签库
3.5.1 JSTL概述
Jsp 标准标签库(Jsp Standard Tag Library),是由Apache组织提供的开源的jsp标签库,本质是含一定逻辑的标签,作用是在页面做判断和循环操作。
JSTL标准标签库有5个子库,但随着发展,目前常使用的是它的核心库 core
3.5.2 core中常用标签
c:if
if标签用于单分支条件判断,相当于Java中的if(条件){}的用法,它的常见用法:
条件成立的逻辑
c:foreach
forEach用于循环遍历,常见属性:
begin:循环的开始,默认为0
end: 循环的结束,默认为items的length
var: 循环过程中的临时变量
step: 设置步长 ,默认为1
items:指定要循环的对象,支持el表达式,可以从四大域中获取集合
varStatus:遍历的状态
count:表示当前遍历的是第几个,从1开始
index:表示当前遍历的索引,从0开始
3.5.3 JSTL的使用
导入jar包 javax.servlet.jsp.jstl.jar包和jstl-impl.jar包
在使用的页面中通过<%@taglib prefix="标签前缀" uri="标签库的uri"%>导入标签库
<%@ taglib prefix="c" uri="" %>
四、MVC模式
4.1 MVC概述
MVC是软件工程中的一种软件架构模式,它是一种分离业务逻辑与显示界面的开发思想。
M: Model(模型),除了servlet之外其他的实体类用来处理业务逻辑或者封装数据
V: View(视图),目前jsp就是视图,用于展示数据的,擅长展示动态内容
C: Controller(控制器),目前servlet就是控制器,用于接收和响应来自客户端的请求
MVC优点:
降低耦合性(代码的关联度),方便维护和拓展,利于分工协作
复用性强
MVC缺点:
使得项目架构变得复杂,增强了开发难度,对开发人员的能力要求比较高
4.2 三层架构
三层架构是对mvc模式的一种细化,它将Model进一步分为service层和dao层,以后在开发中都会遵循三层架构。
4.3 包目录结构
每一个项目的第一层基础包是公司域名倒写,如com.baidu
com.baidu 公司域名倒写
com.baidu.web web层的内容
com.baidu.service service层代码(业务逻辑层)
com.baidu.dao 数据库访问层
com.baidu.domain 存放实体类
com.baidu.utils 存放工具类: 不需要new 也能使用的类 存放一些静态方法
复杂的层次结构:
注意:包名全部小写。
好啦,今天的文章就到这里,希望能帮助到屏幕前迷茫的你们
相关推荐
- 大宝眼袋霜价格 说到家喻户晓的平价护肤品,很多
- 成语网名大全 1、枯萎的信2、往事如烟3、悲
- 微肥 微肥是什么?该如何使用?作物生
- 林建鹏 说到王思聪,大家都会想到他是王
- 曾轶可父亲 曾轶可说出来很多人不清楚,可她
- 安吉中南百草园 位于湖州的安吉中南百草园是一处
- 梅姨案 1、梅姨案指全国通缉的人贩子子
- 平凡之路歌词是什么意思 1、寓意:《平凡之路》延续了朴
- 孟尝君有舍人 1、《孟尝君舍人》出于战国时代
- 大连红旗高中 1,大连红旗高中好吗这个学校还
- 农民工保险 现在大家都开始买保险了,
- 恐龙宝贝之失落的文明动漫 1、《恐龙宝贝之失落的文明》是
- 未来可期 1、未来可期的意思是未来可以期
- 拾忆歌词 1、歌词翻开日记整理破碎的心情
- 小日向白朗 1、普安协会,1935年在天津
- 标杆管理起源于 1、标杆管理起源于美国施乐公司
- 桑兰的资料 1、黄健,男,出生于中国福建,
- 天上白玉京下句 1、《天空中的白玉景》的下一句
- 浙江卫视左岩 1、左岩,女,满族,1985年
- 固定收益 固定收益类理财是指一部分的理财
- 浙江外国语学院专科 1、浙江外国语学院(Zheji
- 拉登的儿子 1、奥马尔·本·拉登(Omar
- 河南工程学院专科 1,河南工程学院都有什么大专专
- 王传越简历 1、《请放心》是王传越演唱的一
- 民国四大家族 1、一般是指蒋宋孔陈四大家族,
- 王紫藤 王紫藤的拼音怎么读王紫藤的拼音
- 溏心风暴剧情分集介绍 第1集正哥心头二件事正哥买下心
- 欧莱雅眼线膏 1、巴黎欧莱雅(L’Oréal
- 圣诞贺卡 011、人依旧,物依旧,又是一
- 玻尿酸充填 说到玻尿酸填充,相信许多爱美人
- 最新推荐
-
- 野心勃勃的意思 【野心勃勃】的意思,拼音,读音
- 梦幻诛仙青云门加点 梦幻诛仙青云门加点,相信很多小
- 卡天赋bug 卡天赋bug之前,最烦人的就是
- 颊 【颊】字的意思解释,拼音,组词
- 百无禁忌什么意思 【百无禁忌】的意思,拼音,读音
- 对方 【对方】的意思,拼音,读音
- profiled单词的意思,例句
- 自树一帜的意思,拼音
- 拾人牙慧什么意思 【拾人牙慧】的意思,拼音,读音
- 倦的组词 疲倦
- 酒席 【酒席】的意思,拼音,读音等)
- 步步生莲游戏 阴阳师谋士任务中怎么种莲花?玩
- 叠组词 重叠
- 雀圣1演员表 演员表角色演员备注十三飞元秋雀
- 火炬之光2修改器怎么用 火炬之光2修改器怎么用?《火炬
- 地牢围攻1攻略 地牢围攻1攻略及地牢围攻1攻略
- derivative单词的意思,例句
- 硬派 【硬派】的意思,拼音,读音等)
- 年年 【年年】的意思,拼音,读音
- supplying单词的意思,例句
- 繁弦急管的意思 【繁弦急管】的意思,拼音,读音
- 引诱 【引诱】的意思,拼音,读音
- 遗嘱的拼音 【遗嘱】的意思,拼音,读音等)
- 求道 【求道】的意思,拼音,读音等)
- 夏组词 “夏”组词,拼音,解释夏橘夏成
- brutally单词的意思,例句
- 生化危机5秘籍 生化危机5攻略秘籍及生化危机5
- 国手是什么意思 【国手】的意思,拼音,读音
- bitty单词的意思,例句
- 瓜田李下的意思,拼音
- 天下3职业介绍 天下3职业加点和天下3职业技能
- looting单词的意思,例句
- 缀的组词和拼音 【缀】字的意思解释,拼音,组词
- 慎的组词 “慎”组词,拼音,解释慎狱慎防
- 中国乒乓球运动员 中国乒乓球十大巨星中国乒乓球十
- 诡组词 【诡】字的意思解释,拼音,组词
- 极限的祭坛攻略 极限的祭坛攻略及地下城极限的祭
- 冷暖自知的意思 【冷暖自知】的意思,拼音,读音
- 跳水拼音 【跳水】的意思,拼音,读音等)
- 朱墨 【朱墨】的意思,拼音,读音等)
- 刀剑2公测 刀剑2什么时候公测?可能有部分
- 通天塔电影解析 2007年奥斯卡结束当夜,罗杰
- 楷怎么读 【楷】字的意思解释,拼音,组词
- 受罚 【受罚】的意思,拼音,读音
- 鬼镜1 (本文由火锅剧场原创:hott
- 瞎子摸象的意思,拼音
- 弦组词 “弦”组词,拼音,解释弦脉弦韦
- tighten单词的意思,例句
- 莫须有 【莫须有】的意思,拼音,读音等
- 无能 【无能】的意思,拼音,读音等)
- 凉帽 【凉帽】的意思,拼音,读音
- 隐姓埋名 【隐姓埋名】的意思,拼音,读音
- 清理平台 清理平台任务完成攻略清理平台任
- 四不像是什么 【四不像】的意思,拼音,读音等
- 驱魔师pk加点 驱魔师pk加点和法驱魔师加点,
- 猎刃好玩吗 猎刃好玩吗?猎刃怎么样?猎刃游
- 国统纲领 国统纲领全名为国家统一纲领,经
- 验的组词 “验”组词,拼音,解释验明正身
- 独组词 独立
- 外宽内深 【外宽内深】的意思,拼音,读音