初识JSP知识
一、jsp概述
JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。
JSP实际上就是Servlet。
jsp = html + java
html:静态内容
servlet:服务器端的小应用程序。适合编写java逻辑代码。
jsp:适合编写输出动态内容,但不适合编写java逻辑。
二、jsp的原理
jsp页面通过服务器的翻译 ---〉变成java文件通过编译 ---〉变成class文件用来执行
jsp文件是用来做显示模块,加上少量的逻辑运算代码。
servlet文件就是用来进行做控制器 : 获取表单数据:调用业务逻辑:分发转向
四、jsp的基本语法
1、JSP模版元素
网页的静态内容。如:html标签和文本。
2、JSP的脚本
2.1、小脚本 <% java代码 %>
2.1、表达式 <%= 2+3 %> 等价于out.print(2+3);
2.3、声明 <%! %> 表示在类中定义全局成员,和静态块。
3、JSP注释
JSP注释:<%-- 被注释的内容 --%> 特点:安全,省流量
网页注释:<!-- 网页注释 --> 特点:不安全,费流量
五、jsp的3个指令
语法:<%@ %>
1、page:
作用:用于定义JSP页面的各种属性
1.1、 import 和java代码中的import是一样的
<%@ page import="java.util.Date,java.util.List"%>
1.2、 session: 是否会自动创建session对象。默认值是true;
1.3、 buffer: 设置输出流缓冲大小,默认为 8 kb。
1.4、 errorPage: 如果页面中有错误,则跳转到指定的资源。
1.5、 isErrorPage: 是否创建throwable对象。默认是false;
1.6、 contextType: 等同于response.setContextType("text/html;charset=utf-8");
1.7、 pageEncoding: 告诉JSP引擎要翻译的文件使用的编码。
1.8、 isELIgnored: 是否屏蔽支持EL表达式。 默认是false
<%@ page pageEncoding="gbk" %>
2、include:
静态包含:把其它资源包含到当前页面中。
<%@ include file="/include/header.jsp" %>
动态包含:
<jsp:include page="/include/header.jsp"></jsp:include>
两者的区别:翻译的时间段不同
前者:在翻译时就把两个文件合并
后者:不会合并文件,当代码执行到include时,才包含另一个文件的内容。
原则:能用静的就不用动的。
3、taglib
作用:在JSP页面中导入JSTL标签库。替换jsp中的java代码片段。
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
六、jsp的6个动作
使用标签的形式来表示一段java代码。
如: <jsp:include page="2.jsp"></jsp:include>
<jsp:include > 动态包含
<jsp:forward> 请求转发
<jsp:param> 设置请求参数
<jsp:useBean> 创建一个对象
<jsp:setProperty> 给指定的对象属性赋值
<jsp:getProperty> 取出指定对象的属性值
七、jsp的9个内置对象: pageContext,request,session,application(ServletContext),
response,exception,page,out,config.
pageContext:
1、 可以操作其他三个域对象(本身是代表页面的域对象)。
findAttribute(String name); 自动从page request session application依次查找,找到了就取值,结束查找。
2、它可以创建其它的8个隐式对象
在普通类中可以通过PageContext获取其他JSP隐式对象。自定义标签时就使用。
3、提供了的简易方法
pageContext.forward("2.jsp");
pageContext.include("2.jsp");
八、四大域对象
pageContext: 代表页面的域对象。
request: 代表一次请求的域对象。
session: 代表一次会话的域对象。
ServletContext: 代表一个程序(应用)的域对象。
九、EL表达式
1、EL概述和基本语法
EL表达式:expression language 表达式语言
要简化jsp中java代码开发。
它不是一种开发语言,是jsp中获取数据的一种规范
如:${ }:调用 pagecontext 的 findAttribute方法。
2、EL的具体功能
a、获取数据
EL表达式只能获取存在4个作用域中的数据
${u} 原理: pageContext.findAttribute("u");
url?name=tom ${param.name}
EL获取对于null这样的数据,在页面中表现为空字符串
${u.name} == u.getName()方法
点(.) 运算符相当于调了getter方法,点后页面跟的是属性名。
属性导航:${u.address.city}
另外:[] 运算符作用与点运算符左右大。
b、运算
empty ${empty m} ${not empty m}
判断null,空字符串和没有元素的集合(即使集合对象本身不为null)都返回true
三元运算符
${empty m? 为空 :不为空}
c、11个隐式对象
EL隐式对象引用名称 类型 JSP内置对象名称 说明
pageContext
pageScope
requestScope
sessionScope
applicationScope
param
paramValues
header
headerValues
initParam
cookie
十、JSTL
1、什么是JSTL
JSTL(JavaServerPages Standard Tag Library)JSP标准标签库
2、JSTL的作用
使用JSTL实现JSP页面中逻辑处理。如判断、循环等。
3、使用JSTL
1)在JSP页面添加taglib指令
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
2)使用JSTL标签
<c:if test="${empty bookcart }"></c:if>
4、常用标签介绍
核心标签库:
> 通用标签: set、 out、 remove
<c:out value="${bc.value.bookName }"/>
> 条件标签:if choose
<c:if test="${empty bookcart }"></c:if>
> 迭带标签:foreach
<c:forEach items="${bookcart }" var="bc"></c:forEach>
初识JSP知识的更多相关文章
- 第二章 初识JSP
第二章 初识JSP 一.JSP简述 1.是JSP JSP是指在HTML中嵌入Java脚本语言.全称(Java Server Pages) 当用户通过浏览器访问Web应用时,使用JSP容器对请求的J ...
- JSP知识汇总
JSP知识汇总 一.简介 > HTML - HTML擅长显示一个静态的网页,但是不能调用Java程序. > Servlet - Servlet擅长调用Java程序和后台进行交互,但是它不擅 ...
- [J2EE基础]初识JSP和Servlet
近期须要用到J2EE,就開始学习与J2EE相关的知识了. JSP是一种Javaserver端技术,它用于在网页上显示动态内容. Tomcat相关知识 JSP的运行过程 JSP的页面构成元素 JSP的凝 ...
- 初识Jsp,JavaBean,Servlet以及一个简单mvc模式的登录界面
1:JSP JSP的基本语法:指令标识page,include,taglib;page指令标识常用的属性包含Language用来定义要使用的脚本语言:contentType定义JSP字符的编码和页面响 ...
- java web学习之初识jsp
用java语言(+html语言)开发动态资源的技术: jsp的运行过程,1:tomcat服务器将jsp代码翻译成java代码,并且编译成class文件 2:tomcat服务器构造类对象 3:tomca ...
- JSP之->初识JSP
JSP 引用百度百科的介绍: JSP(Java Server Pages)是由Sun Microsystems公司倡导.许多公司参与一起建立的一种动态网页技术标准.JSP技术有点类似ASP技术,它是在 ...
- JSP知识
五.JSP概述及最佳实践1.更改MyEclipse生成的JSP模板.模板文件与Servlet.java(Servlet模板文件)很近.2.学好JSP的关键:JSP就是Servlet.一定要记住JSP中 ...
- JSP知识体系大全
Jsp动态网页 Web页面之间有3种关系: 包含 请求转发 重定向 l Jsp的运行原理:(3个) Jsp页面不能直接运行 1.容器调用jsp引擎编译jsp文件 成一个java文本(Servle ...
- 初识jsp
复习: 1.servlet生命周期: (1)默认是以第一次请求的时候创建并初始化Servlet,而且只做一次.(构造函数 init()) web.xml(配置后,是可以达到在服务启动后,立刻进行ser ...
随机推荐
- JQ判断在不同分辨率电脑下使用不同的banner尺寸
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Java HashMap的put操作(Java1.8)
https://www.cnblogs.com/JzedyBlogs/p/10208295.html 写得非常好: 这个是Java1.8 ------------------------------- ...
- Python——WeRobot(微信公众号开发)
模板消息接口 ''' 使用规则 1.所有服务号都可以在功能->添加功能插件处看到申请模板消息功能的入口,但只有认证后的服务号才可以申请模板消息的使用权限并获得该权限: 2.需要选择公众账号服务所 ...
- Ftp、Ftps与Sftp之间的区别
Ftp FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”.用于Internet上的控制文件的双向传输.同时,它也是一个应用程序(Applica ...
- FFmpeg 将YUV数据转RGB
只要开始初始化一次,结束后释放就好,中间可以循环转码 AVFrame *m_pFrameRGB,*m_pFrameYUV; uint8_t *m_rgbBuffer,*m_yuvBuffer; str ...
- url.openconnection() 设置超时时间
System.setProperty("sun.net.client.defaultConnectTimeout", "30000"); System.setP ...
- SpringBoot部署jar与war
jar部署与启动/关闭 1.打包 clean 清理已有target目录 package 重新打包 获取打包路径,通过 scp命令发送到服务器端,scp -P ${port} ${.jar} ${use ...
- python爬虫requests模块
requests库的七个主要方法 1. requests.requests(method, url, **kwargs) 构造一个请求,支撑以下各方法的基础方法 method:请求方式,对应get/p ...
- 关于2-sat的建图方法及解决方案
转载增减: https://blog.csdn.net/qq_24451605/article/details/47126143 https://blog.csdn.net/u012915516/ar ...
- miller——rabin判断素数
我们首先看这样一个很简单的问题:判定正整数\(n\)是否为素数 最简单的做法就是枚举\(2\)到\(n\)的所有数,看是否有数是\(n\)的因数,时间复杂度\(O(n)\) 稍微优化一下发现只要枚举\ ...