JSP基础概要
JSP全名为Java Server Pages,中文名叫java服务器页面。是一种用于开发动态web资源的技术。允许用户嵌套html和java代码。JSP实际上就是servlet。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。
重点在于显示数据。
2、浏览器拿到这个地址然后去Tomach中进行查找,找到demo1.jsp, 3、到work/catalina/localhost/JSP中招demo1.class文件, 4、如果没有找到,就把demo1.jsp翻译为demo1.java文件 5、把demo1.java编译为demo1.class文件 6、执行servlet。
web服务器在执行jsp页面时,是如何把jsp页面中的html标签发送到客户端的?
通过标签中的等部分。out.write方法写(如下图)。
jsp输出模板内容:把html内容翻译到对应servlet的service方法中,由一个JspWriter的对象进行输出。
在tomach中经过转换的demo1.java文件中的内容。
web服务器在调用jsp时,会提供jsp一些什么java对象?
pageContext、HttpSession、ServletContext、ServletConfig等
注意:它的作用和HTML注释的作用是完全不同的。JSP注释根本不会被翻译到servlet中,而HTML注释是把代码运行后的结果注释掉,运行效率低。
buffer:jsp页面中有一个字符输出流java.servlet.jsp.JspWriter,它的缓存大小默认为8kb.
errorPage:当当前JSP页面发生异常时转向(转发)的一个地址,如果地址以”/”开头,/代表当前应用,绝对路径。不以/开头,表示相对路径。
error-page exception-type java.lang.Exception /exception-type location /error.jsp /location /error-page error-page error-code 404 /error-code location /404.jsp /location /error-page
isErrorPage:是否产生Throwable对象,默认是false.
%=exception.getMessage() %
contentType:指示响应正文的MIME类型和编码.
pageEncoding:JSP引擎读取JSP文件时使用的编码。
isELIgnored:是否忽略EL表达式。默认值是false,不忽略.
request、response、session、exception、application、config、page、out、pageContext
本身是一个域对象,还能操作其他三个域对象(ServletRequest、HttpServlet、ServletContext)中的数据。
操作其他三个域对象:
PageContext.PAGE_SCOPE|PageContext.REQUEST_SCOPE|PageContext.SESSION_SCOPE|PageContext.APPLICATION_SCOPE
void setAttribute(String name,Object v,int Scope); Object getAttribute(String name,int Scope); void removeAttribute(String name,int Scope);
pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本 类名也叫pageContext。
PageContext:存放的数据只能当前页面使用。 ServletRequest:存放的数据可以通过转发传递给下一个转发目标。 HttpServlet:存放的数据可以同一次会话中取出。例如:登陆,购物车信息等 ServletContext:存放的数据被整个应用所共享。 七、内置标签
jsp:include:动态包含
jsp:forward:请求转发
jsp:param:结合以上标签使用。
jsp:forward page="pageContext/demo2.jsp" jsp:param value="abc" name="username" / jsp:param value="123" name="pwd" / /jsp:forward
jsp:setProperty property="name" name="student" value="学生"/ jsp:getProperty property="name" name="student" /
不是单独的语言,而是jsp规范中获取数据的一种方式。可以获取数据、运算、访问普通静态方法等功能。
不支持字符串连接操作。
只能获取存在于四个域对象中的数据。
EL对于null这样的数据,显示在页面上表现为一个空字符串。
${s} pageContext.findAttribute(“s”);
无空指针问题。
运算符:
.
[]
!-- 获取javabean的属性 -- Student student=new Student(); student.setAddress(new Address()); pageContext.setAttribute("s",student); ${s.name}==${s[name]} ${s.address.province } !-- 获取List集合中的元素 -- List list=new ArrayList(); list.add("a"); list.add("b"); list.add("c"); pageContext.setAttribute("list",list); ${list[1] }?xml version="1.0" encoding="UTF-8"? taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" version="2.0" tlib-version 1.0 /tlib-version short-name my /short-name uri http://www.tianfang1314.cn/myfunctions /uri function name toUpperCase /name function-class cn.tf.functions.Function /function-class function-signature java.lang.String toUppercase( java.lang.String ) /function-signature /function /taglib3、在jsp中使用
引入taglib文件:%@ taglib uri="http://www.tianfang1314.cn/functions" prefix="my" %使用自定义的el表达式“data”,将小写的a转换为大写的A。
% pageContext.setAttribute("data","aaaaaaa"); ${my:toUpperCase(data) }实际项目中很多都是使用JSTL来进行操作的。
源码地址:https://github.com/sdksdk0/JSP
WEB核心【案例:JSP回显信息】第七章 本篇章主要介绍JSP。jsp的概述以及格式,用jsp打印99乘法表,jsp作用域的回显,以及jsp的导包和集合的回显。最后一个案例帮助大家更好的巩固和学习
JSP规范介绍 JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签一样使用它们。
JSP第七篇【自定义标签就是如此简单】(修订版)(二) 为了简化标签开发的复杂度,在JSP 2.0中定义了一个更为简单、便于编写和调用的SimpleTag接口来实现标签的功能。。 一般来说,实现了SimpeTag接口的标签称之为简单标签
JSP第七篇【自定义标签就是如此简单】(修订版)(一) 为了简化标签开发的复杂度,在JSP 2.0中定义了一个更为简单、便于编写和调用的SimpleTag接口来实现标签的功能。。 一般来说,实现了SimpeTag接口的标签称之为简单标签
JSP第七篇【简单标签、应用、DynamicAttribute接口】(二) 上一篇博客中我已经讲解了传统标签,想要开发自定义标签,大多数情况下都要重写doStartTag(),doAfterBody()和doEndTag()方法,并且还要知道SKIP_BODY,EVAL_BODY等等的变量代表着什么,在什么方法中使用。这样实在是太麻烦了!
JSP第七篇【简单标签、应用、DynamicAttribute接口】(一) 上一篇博客中我已经讲解了传统标签,想要开发自定义标签,大多数情况下都要重写doStartTag(),doAfterBody()和doEndTag()方法,并且还要知道SKIP_BODY,EVAL_BODY等等的变量代表着什么,在什么方法中使用。这样实在是太麻烦了!
JSP第七篇【简单标签、应用、DynamicAttribute接口】(四) 上一篇博客中我已经讲解了传统标签,想要开发自定义标签,大多数情况下都要重写doStartTag(),doAfterBody()和doEndTag()方法,并且还要知道SKIP_BODY,EVAL_BODY等等的变量代表着什么,在什么方法中使用。这样实在是太麻烦了!
朱培 CSDN博客专家,大数据与云计算领域,常年活跃于Github、CSDN、开源中国等开源社区。
相关文章
- JSP基础笔记
- org.apache.jasper.JasperException: /WEB-INF/views/modules/goodMan/orderList.jsp (line: [30], column: [82]) Attribute qualified names must be unique within an element
- Servlet&jsp基础:第四部分
- Servlet&jsp基础:第一部分
- jsp关于分页和隔行变颜色的代码
- JSP面试题都在这里
- JavaWeb基础—JSP自定义标签入门
- jsp 异步处理
- 关于springmvc 只能在index.jsp页面显示图片的处理办法jsp页面无法显示图片
- JSP 基础之 JSTL <c:forEach>用法
- jsp基础之 jstl
- JSP的C标签遍历Map数据
- jsp手动分页
- jsp基础与提高(EL、JSTL)
- JSP基础③
- JSP基础①
- Java Web开发之Servlet、JSP基础
- jsp的原则执行
- 1.JSP课表查询系统
- 79.网络安全渗透测试—[SQL注入篇18]—[Oracle+JSP-UTL_HTTP.request反弹注入]
- bug Spring Mvc中Jsp页面获取不到Controller中的变量
- jsp中文乱码终极解决方法(转)
- 谈谈asp,php,jsp的优缺点