JSP 你的名字 2022-03-01 19:08 177阅读 0赞 1. 概念:Java Server Pages Java服务器端页面 * 一个特殊的页面,其中既可以定义html标签,又可以定义Java代码。 * 作用:简化书写 * jsp本质上就是一个Servlet * 简介:JSP(Java Server Pages,即:Java服务器页面),是一种跨平台的动态网页技术标准,由Sun Microsystems公司倡导、多家公司参与建立。它在HTML文件中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(\*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。 2. 原理 1. 服务器解析请求消息,获取index.jsp资源 2. 将index.jsp转换为.java文件(本质就是Servlet) 3. 编译.java文件,生成.class字节码文件 4. 由字节码文件提供访问 详细过程: 1. Web服务器识别出这是一个对JSP网页的请求,并且将该请求传递给JSP引擎。通过使用URL或者.jsp文件来完成。 2. JSP引擎从磁盘中载入JSP文件,然后将它们转化为servlet。这种转化只是简单地将所有模板文本改用println()语句,并且将所有的JSP元素转化成Java代码。 3. JSP引擎将servlet编译成可执行类,生成.class字节码文件,并且将原始请求传递给servlet引擎。 4. Web服务器的某组件将会调用servlet引擎,然后载入并执行servlet类。在执行过程中,servlet产生HTML格式的输出并将其内嵌于HTTP response中上交给Web服务器。 5. Web服务器以静态HTML网页的形式将HTTP response返回到您的浏览器中。 最终,Web浏览器处理HTTP response中动态产生的HTML网页,就好像在处理静态网页一样。 3. JSP的脚本:JSP定义Java代码的方式 1. <% 代码 %>:定义的Java代码的位置:在 service方法中,service方法中可以定义什么,该脚本中就可以定义什么 2. <%! 代码 %>:定义的Java代码的位置:在jsp转换后的Java类的成员位置。【用的较少】 3. <%= 代码 %>:定义的Java代码,会输出到页面上。输出语句中可以定义什么,该脚本中就可以定义什么 4. 指令 * 作用:用户配置jsp页面,导入资源文件 * 格式: * <%@ 指令名称 属性名1=属性值1 属性名2=属性名2 %> * 分类 1. page:用户配置jsp页面 * 可以配置哪些属性 1. contentType:等同于 response.setContentType()。比如:contentType=“text/html;charset=UTF-8” 1. 设置响应体的MIME类型以及字符集 2. 设置当前jsp页面的编码(只能是高级IDE才能生效。如果使用低级工具,如记事本,则需要设置pageEncoding属性设置当前页面的字符集) 2. buffer:设置页面out输出对象的缓冲区大小,默认是8kb。比如:buffer=“16kb” 3. import:导包。比如:<%@ page import=“java.util.List” %> 4. errorPage:当前页面发生异常后,会跳转到指定的错误页面。比如:errorPage=“500.jsp” 5. isErrorPage:标识当前页面是否是错误页面。 * false:默认值,不可以使用exception对象 * true:可以使用内置对象exception。 比如:<% out.print(exception.getMessage()); %> 输出错误信息到页面 6. isELIgnored:是否忽略EL表达式 * false:默认是,不忽略EL表达式,jsp引擎会解析表达式 * true:忽略EL表达式,原样展示EL表达式内容 2. include:完成页面包含的。导入页面的资源文件。 * 比如:<%@include file=“top.jsp”%> 3. taglib:导入资源 * <%@taglib prefix=“c” uri=“[http://java.sun.com/jsp/jstl/core][http_java.sun.com_jsp_jstl_core]” %> * prefix:前缀,自定义。 5. jsp页面的注释 1. :只能用来注释html代码片段 2. <%-- 注释 --%>:可以用来注释所有代码。【推荐使用】 6. JSP的隐式对象(内置对象) * JSP隐式对象是JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明。JSP隐式对象也被称为预定义变量。 * jsp有9个内置对象。其中有4个为域对象:request、session、pageContext、application * request:HttpServletRequest类的实例 * 作用:一次请求访问的多个资源(转发) * session:HttpSession类的实例 * 一次会话的多个请求间 * pageContext:PageContext类的实例,代表整个JSP页面。可以获取其他8个内置对象. * 作用:当前页面共享数据。 * application:ServletContext类的实例,与应用上下文有关 * 所有用户间共享数据。 * response:HttpServletResponse类的实例,相应对象 * out:PrintWriter类的实例,用于把结果输出至网页上,字符输出流对象。可以将数据输出到页面上。和 response.getWriter() 类似 * response.getWriter()和out.print()的区别 * 在tomcat服务器真正给客户端做出响应之前,会先找response缓冲区数据,再找out缓冲区数据。response.getWriter()数据输出永远在out.print()之前。 * 不推荐在jsp中使用response.getWriter()输出,容易影响布局。 * config:ServletConfig类的实例 * page:类似于Java类中的this关键字 * 当前Servlet对象 * Exception:Exception类的对象,代表发生错误的JSP页面中对应的异常对象 7. MVC:软件设计架构 1. Model 模型。JavaBean * 封装数据,操作数据库,处理业务逻辑 2. View 视图。jsp/html * 展示数据 3. Controller 控制器。Servlet 1. 获取客户端输入 2. 调用模型 3. 将数据交给视图展示 * 优点:耦合性低,重用性高,生命周期成本低,部署快,可维护性高 * 缺点:项目架构变得复杂,对开发人员要求高 8. EL表达式 [https://blog.csdn.net/qwerasdf123/article/details/4189889][https_blog.csdn.net_qwerasdf123_article_details_4189889] 1. 概念:Expression Language 表达式语言 2. 作用:替换和简化jsp页面中Java代码的编写 3. 语法 $\{表达式\} 4. 注意 * jsp默认支持EL表达式 * 忽略EL表达式 1. 忽略当前jsp页面所有表达式:设置page指令中的属性isELIgnored=true 2. 忽略某个EL表达式,EL表达式前添加反斜杠\\:$\{表达式\} 5. 功能 1. 运算 * 运算符 1. 算数运算符: 加+ 减- 乘\* 除/或者div 取余%或者mod 2. 比较运算符: > < >= <= == != 。返回值就是true、false 3. 逻辑运算符:&&(and) ||(or) !(not) 4. 空运算符:empty * $\{empty 值\}:判断字符串、集合、数组对象是否为null或者长度是否为0 * $\{not empty 值\}:判断字符串、集合、数组对象不为null并且长度不为0 2. 获取值,【常用】 1. EL表达式只能从域对象中获取值。域对象:request、session、pageContext、application 2. 语法 1. 域 名 . 键 名 : 从 指 定 域 中 获 取 指 定 键 的 值 。 如 果 \{域名.键名\}:从指定域中获取指定键的值。如果 域名.键名:从指定域中获取指定键的值。如果\{域名.键名\}获取值为空,页面不会展示null,不展示任何异常字符。 * 域名,域的范围从小到大,如下: 1. pageScope --> pageContext 2. requestScope --> request 3. sessionScope --> session 4. applicationScope --> application(ServletContext) * 比如:在request域中存储了key=value。 * 获取:$\{requestScope.key\} 2. $\{键名\}:表示从依次从最小的域中查找是否有该键对应的值,直到找到为止。 3. 若域对象存储的数据对应的是对象、List集合、Map集合的值,如何获取? 1. 对象: * 语法:$\{域名.键名.属性名\} * 本质上会去调用对象的getter方法 2. List集合 * 语法:$\{域名.键名\[索引\]\} 3. Map集合 * 语法1:$\{域名.键名.key名称\} * 语法2:$\{域名.键名\[“key名称”\]\} 3. 隐式对象 * EL表达式中有11个隐式对象 * pageContext:获取jsp其他8个内置对象 * $\{pageContext.request\} * $\{pageContext.request.contextPath\} 动态获取虚拟目录。 * 比如: code… 9. JSTL标签 1. 概念:JSTL(JavaServer Pages Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由Apache的来维护的。 2. 作用:用户简化和替换jsp页面上的java代码。 3. 使用步骤 1. 导入JSTL相关的jar包 2. 引入标签库 * 语法 <%@taglib prefix=“c” uri=“[http://java.sun.com/jsp/jstl/core][http_java.sun.com_jsp_jstl_core]” %> 4. 常用的JSTL标签 1. if :相当于Java代码if语句c:if标签。比如:<c:if test=“boolean表达式”></c:if> 1. 属性 * test:接收boolean表达式(必须的属性) * 表达式为true,则显示if标签体内容 * 表达式为false,则不显示if标签体内容 * test表达式,一般结合EL表达式一起使用 2. c:if标签没有else情况。若需要else,则再定义一个c:if标签 <c:if test="$\{number % 2 != 0\}"> $\{number\}为奇数 </c:if> <c:if test="$\{number %2 == 0\}"> $\{number\}为偶数 </c:if> 2. choose :相当于switch * choose 相当于switch声明 * when 相当于case * otherwise 相当于default 比如: <c:choose> <c:when test=“表达式”></c:when> <c:otherwise></c:otherwise> </c:choose> 3. foreach:相当于Java中的for循环【重要,常用】 * 普通for循环:for (int i = 0; i <= 10; i++) \{\} * 属性 * begin:开始值(包含) * end:结束值(包含) * var:临时变量(相当于i) * step:步长(每次循环增加的数量) * varStatus:循环状态对象 * count:循环的次数,从1开始 * 增强for循环:foreach * 属性 * item:容器对象。 相当于list * var:容器中元素的临时变量 相当于user * varStatus:循环状态对象 * index:容器中元素的索引,从0开始 * count:循环的次数,从1开始 [http_java.sun.com_jsp_jstl_core]: http://java.sun.com/jsp/jstl/core [https_blog.csdn.net_qwerasdf123_article_details_4189889]: https://blog.csdn.net/qwerasdf123/article/details/4189889
相关 JSP基础:jsp注释 > HTML注释:<!-- -->是相对浏览器的,浏览器会忽略注释的部分不显示在页面上。 > Java注释: // ,/\ \/ 是相对于编译器的,编译器会忽略注释的代码,生 拼搏现实的明天。/ 2023年10月08日 23:37/ 0 赞/ 9 阅读
相关 JSP 我们都知道静态页面html,但是在我们淘宝购物的时候,每个用户的购物车界面是不一样的,那么这个购物车的界面又是如何生成的呢?是通过动态JSP生成的。 > JSP:Java S 蔚落/ 2022年06月05日 07:28/ 0 赞/ 144 阅读
相关 jsp 目录 出错页面 包含其他页面的两种方法 两种方法的比较: 网页跳转的两种方法 跳转携带参数 jsp内置对象 四个作用域对象 ------------ ╰半夏微凉°/ 2022年03月29日 02:44/ 0 赞/ 169 阅读
相关 JSP 1. 概念:Java Server Pages Java服务器端页面 一个特殊的页面,其中既可以定义html标签,又可以定义Java代码。 你的名字/ 2022年03月01日 19:08/ 0 赞/ 178 阅读
相关 jsp ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ub 男娘i/ 2022年02月12日 19:09/ 0 赞/ 171 阅读
相关 jsp 动态页面技术 一、JSP 1. 简介 JSP:Java Server Page,Java服务器端页面技术,是Sun公司提供的一套规范。表面上是HTML+ 心已赠人/ 2022年02月05日 12:36/ 0 赞/ 197 阅读
相关 JSP 1.JSP有哪些内置对象?作用分别是什么? 答案: 1. JSP有9个内置对象: (1)request:封装客户端的请求,其中包含来自GET或POST请求的参数; 川长思鸟来/ 2022年01月10日 06:17/ 0 赞/ 238 阅读
相关 JSP 一、JSP简介 1. 什么是 JSP JSP全名为 Java Server Pages,中文名叫 java服务器页面。 它是在传统的网页HTML文件(.htm,. た 入场券/ 2022年01月07日 15:23/ 0 赞/ 231 阅读
相关 JSP jsp简介 JSP(Java Server Pages)是JavaWeb服务器端的动态资源,它与html页面的作用是相同的,显示数据和获取数据。 jsp: 作为请求发起页 喜欢ヅ旅行/ 2021年11月02日 14:46/ 0 赞/ 290 阅读
还没有评论,来说两句吧...