java-web:Jsp(Java服务器页面)、JSTL

  • 💂 个人主页: 陈行恩
  • 🤟 版权: 本文由【陈行恩】原创、在优快云首发、需要转载请联系博主
  • 💬 如果文章对你有帮助、欢迎关注+点赞+收藏(一键三连)哦!

JSP

JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。
JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签一样使用它们。标签库能增强功能和服务器性能,而且不受跨平台问题的限制。JSP文件在运行时会被其编译器转换成更原始的Servlet代码。JSP编译器可以把JSP文件编译成用Java代码写的Servlet,然后再由Java编译器来编译成能快速执行的二进制机器码,也可以直接编译成二进制码

  • JSP 与HTML 的区别:
  • HTML只给用户提供静态的数据
  • JSP页面中可以嵌入JAVA代码,为用户提供动态数据

JSP 过程

在这里插入图片描述

JSP源码分析

JSP 生成的java文件

  • 找到jsp编译后生成的java文件与class文件
  1. 打开服务器,访问jsp文件
  2. C:\Users\admin\AppData\Local\JetBrains\IntelliJIdea2021.3\tomcat 在这个路径下就会生成jsp的编译文件夹
    在这里插入图片描述
  3. 进一步打开其下的文件夹:
    在这里插入图片描述
  4. 查看生成的index.jspindex.java
    在这里插入图片描述
    在jsp页面中,java代码会原封不动的输出,如果是html代码就会被转换为 out.write("<head>\r\n");这种格式输出到前端

JSP 本质就是一个Servlet

  • 打开Jsp编译生成的java文件
public void _jspInit() {
     
  }

  public void _jspDestroy() {
     
  }

  public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
      throws java.io.IOException, javax.servlet.ServletException {
     

_jspService里面即是index.jsp 页面锁编译成的java文件

JSP 基础语法

JSP 作为java技术的一种应用,它拥有一些自己扩充的语法,Java任何语法都支持!

JSP 表达式

  • <%= 变量或者表达式%> 作用是用来将程序输出到客户端
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<!-- 这是html 注释语言-->
<%-- 这是jsp 注释语言--%>
<body>
<%-- 变量或者表达式--%>
<%= new java.util.Date()%>
</body>
</html>

在这里插入图片描述
注意: html的注释会在页面的审核元素上显示,但是jsp注释语言不会

JSP 脚本片段

  • <% java脚本片段 %> 作用是写java程序
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>

<body>

<%
String name;
for (int i=0;i<5;i++){
    name = "cxe"+Integer.toString(i);
    out.print("<h1>姓名:"+name+"</h1>");
}
%>

</body>
</html>

在这里插入图片描述

JSP 声明

  • <%! %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%-- EL表达式取值为null的话会自动过滤掉,但是--%>
<%-- <%=%>不存在就会返回null --%>
<%!
    String name;
%>
<h1><%=name%></h1>
<h1>${name}</h1>
</body>
</html>

public final class index2_jsp extends org.apache.jasper.runtime.HttpJspBase
    implements org.apache.jasper.runtime.JspSourceDependent,
                 org.apache.jasper.runtime.JspSourceImports {
     


    String name;

JSP声明:会被编译到JSP生成的Java类中,其他的,就会被生成到_jspService中,所以一些静态属性可以放在此处

在这里插入图片描述
注意:EL表达式取值为null的话会自动过滤掉,但是 <%=%>
不存在就会返回null

EL表达式

在JSP中访问模型对象是通过EL表达式的语法来表达。所有EL表达式的格式都是以“ ” 表 示 。 例 如 , {}”表示。例如, { userinfo}代表获取变量userinfo的值。当EL表达式中的变量不给定范围时,则默认在page范围查找,然后依次在request、session、application范围查找。也可以用范围作为前缀表示属于哪个范围的变量,例如:${ pageScope. userinfo} 表示访问page范围中的userinfo变量。

错误页面

JSP 定制错误页面

  • 显示的声明这是一个错误页面 <%@page isErrorPage=“true” %>
  • 定制错误页面 ,当该页面发生错误的时候,就跳转到500.jsp
    <%@page errorPage=“500.jsp” %>
  • index2.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--定制错误页面 ,当该页面发生错误的时候,就跳转到500.jsp--%>
<%@page errorPage="500.jsp" %>
<html>
<head>
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈行恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值