• Java Web入门之JSP的基本语法解析及实战(超详细 附源码)


    创作不易觉得有帮助请点赞关注收藏~~~

    JSP页面是指扩展名为.JSP的文件 

    在一个JSP页面中 可以包括指令标识 HTML代码 JavaScript代码 嵌入的JAVA代码 注释和JSP动作标识等内容。

    下面实例编写了一个JSP页面 显示当前时间

     代码如下 配置环境为Eclipse 如不懂怎么配置的可以参考我这篇博客JAVA Web环境配置

    1:指令标识 

    指令标识主要用于设定整个JSP页面范围内都有效的相关信息 它是被服务器解释并且执行的 会产生任何内容输出到网页中 语法如下

    <%@ 指令名 属性1="属性值1" ...%>

    指令名 包括page include taglib三条指令

    1.1:page指令 

    page是JSP页面最常用的指令 用于定义整个JSP页面的相关属性 这些属性在JSP中被服务器解析成Servlet时会转换为相应的Java程序代码 语法如下

    <%@ page attr1="value1" attr2="value2"...%> 常用属性如下

    language 设置JSP页面使用语言 目前只支持JAVA

    %@ page language="java" 

    import 导入类包

      <%@page import="java.util.Date" %>

    pageEncoding 定义JSP页面的编码格式 GB18030支持中文

    pageEncoding="GB18030"%>

    contentType 设置JSP页面的MIME类型和字符编码 浏览器会据此显示网页内容

    contentType="text/html;

    2:include指令

    文件包含指令include时JSP的另一条指令标识 通过该指令可以在一个JSP页面中包含另一个JSP页面。 语法如下

    <%@ include file="path"%>

    该指令只有file一个属性 指定要包含文件的路径 可以是相对路径也可以是绝对路径

    实战效果如下 本质上有点类似于调用了其他JSP文件的内容

     代码如下 总共有三个JSP文件

    1. <%@ page pageEncoding="GB18030"%>
    2. <img src="玫瑰少年.jpg">
    3. <%String manager="张三";%>
    4. 管理员:<%=manager%>
    5. <%=24+34%>
    6. <body>
    7. <%
    8. String str="";
    9. for(int i=1;i<=9;i++){
    10. for(int j=1;j<=i;j++){
    11. str+=j+"*"+i+"="+j*i;
    12. str+=" ";
    13. }
    14. str+="
      "
      ;
    15. }
    16. %>
    17. <table width="440" height="85" border="1" cellpadding="0" cellspacing="0"
    18. style="font:9pt;" bordercolordark="#666666" bordercolorlight="#FFFFFF" bordercolor="#FFFFFF">
    19. <tr>
    20. <td height="30" align="center"> 九九乘法表</td>
    21. </tr>
    22. <tr>
    23. <td style="padding:3pt">
    24. <%=str %>
    25. </td>
    26. </tr>
    27. </table>
    28. </body>
    1. <%@ page
    2. pageEncoding="GB18030"%>
    3. <%
    4. String copyright=" All Copyright © 2022 华南理工大学";
    5. %>
    6. <table width="778" height="61" border="0" cellpadding="0"
    7. cellspacing="0" background="JavaScript-logo.png">
    8. <tr>
    9. <td><%=copyright %></td>
    10. </tr>
    11. </table>
    1. <%@ page language="java" contentType="text/html; charset=GB18030"
    2. pageEncoding="GB18030"%>
    3. <html>
    4. <head>
    5. <meta http-equiv="Content-Type" content="text/html;charset=GB18030">
    6. <title>使用文件包含include指令</title>
    7. </head>
    8. <body>
    9. <body style="margin:0px">
    10. <%@ include file="top.jsp" %>
    11. <table width="781" height="279" border="0" cellpadding="0" cellspacing="0" background="C:\Users\Admin\Desktop\玫瑰少年.jpg">
    12. <tr>
    13. <td>&nbsp;</td>
    14. </tr>
    15. </table>
    16. <%@ include file="copyright.jsp" %>
    17. </body>
    18. </html>

    3:taglib指令

    在JSP文件中 可以通过taglib指令标识声明该页面中所使用的标签库 同时引用标签库 并指定标签的前缀 在页面中引用标签库 就可以通过前缀来引用标签库中的标签 语法如下

    <%@ taglib prefix="tagPrefix" url="tagURL"%>

    4:脚本标识 

    在JSP页面中 脚本标识使用得最为频繁 因为他们能够方便 灵活地生成页面中得动态内容 特别Scriptlet脚本程序 包括三部分 JSP表达式 声明标识 脚本程序

    4.1:JSP表达式

    JSP表达式用于向页面中输出信息 语法如下

    <%=表达式%>

    表达式可以是任意JAVA 语言的完整表达式 该表达式的最终运算结果被转换为字符串

    使用JSP在页面中输出信息 代码如下

    1. <%String manager="张三";%>
    2. 管理员:<%=manager%>
    3. <%=24+34%>

    4.2:声明标识

    声明标识用于在JSP页面中定义全局的变量或方法 通过声明标识定义的变量和方法可以被整个JSP页面访问 所以通常使用该标识定义整个JSP页面需要引用的变量或方法 语法如下

    <%! 声明变量或方法的代码%>

    1. <%!
    2. int number=0;
    3. int count(){
    4. number++;
    5. return number;
    6. }
    7. %>

    4.3:代码片段 

    所谓代码片段 就是在JSP页面中嵌入的JAVA代码或是脚本代码 代码片段在也页面请求的处理期间被执行 语法如下

    <%java代码或是脚本代码%>

    以下是通过代码片段和JSP表达式在JSP页面中输出九九乘法表

    1. <body>
    2. <%
    3. String str="";
    4. for(int i=1;i<=9;i++){
    5. for(int j=1;j<=i;j++){
    6. str+=j+"*"+i+"="+j*i;
    7. str+=" ";
    8. }
    9. str+="
      "
      ;
    10. }
    11. %>
    12. <%!
    13. int number=0;
    14. int count(){
    15. number++;
    16. return number;
    17. }
    18. %>
    19. <table width="440" height="85" border="1" cellpadding="0" cellspacing="0"
    20. style="font:9pt;" bordercolordark="#666666" bordercolorlight="#FFFFFF" bordercolor="#FFFFFF">
    21. <tr>
    22. <td height="30" align="center"> 九九乘法表</td>
    23. </tr>
    24. <tr>
    25. <td style="padding:3pt">
    26. <%=str %>
    27. </td>
    28. </tr>
    29. </table>
    30. </body>

    5:JSP注释

    JSP注释与JAVA和C++比较相似

    单行注释//

    多行注释/*  */

    提示文档注释/**            */

    隐藏注释 在文档中添加的注释在查看HTML源码时是可以看到的 这样不太安全 JSP提供一种隐藏注释 这样在浏览器中看不到 在查看HTML源代码时也看不到 语法如下

    <%--注释内容--%> 效果如下

     代码如下 要注意代码中两行隐藏的注释没有显示出来

    1. <%--显示用户信息开始 --%>
    2. 用户名:玫瑰少年<br>
    3. 部门: JAVA Web部门<br>
    4. 权限: 系统管理员
    5. <%--显示用户信息结束 --%>

    6:动作标识

    6.1:包含文件标识

    其作用跟前面讲的include比较相似 都是向当前页面包含其他的文件 语法如下

    <jsp:include page="url" flush="false/true"/>

    其与include区别有以下几点

    1:include通过file属性指定被包含的文件 且不支持任何表达式 的属性明显更多 更加灵活

    2:使用include指令时 被包含文件的内容会原封不动的插入到包含页中 然后JSP编译器将合成后的文件最终编译成一个JAVA 文件 使用包含文件时,程序会将请求转发到被包含的页面,并将执行结果输出到浏览器中,然后返回包含页,继续执行后面的代码 然后JSP编译器在分别编译

    3:在应用include时 变量或方法不能重名  因为他们最终是一个文件 而使用时因为每个文件时单独编译的  所以可以重名

    6.2:请求转发标识

    通过转发标识可以将请求转发到其他的web资源 例如另一个JSP页面 HTML页面等等 当前页面不再被执行 而去执行该标识指定的目标页面 语法如下

    <jsp:forward page="url"/>

     效果如下 分为两个JSP文件

     

    1. <%@ page language="java" contentType="text/html; charset=GB18030"
    2. pageEncoding="GB18030"%>
    3. <html>
    4. <head>
    5. <meta http-equiv="Content-Type" content="text/html;charset=GB18030">
    6. <title>中转页</title>
    7. </head>
    8. <body>
    9. <jsp:forward page="login.jsp"/>
    10. </body>
    11. </html>
    1. <%@ page language="java" contentType="text/html; charset=GB18030"
    2. pageEncoding="GB18030"%>
    3. <html>
    4. <head>
    5. <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
    6. <title>用户登录</title>
    7. </head>
    8. <body>
    9. <form name="form1" method="post" action="">
    10. 用户名:<input name="name" type="text" id="name" style="width:120px"><br>
    11. &nbsp;&nbsp;码:<input name="pwd" type="password" id="pwd" style="width: 120px"><br>
    12. <br>
    13. <input type="submit" name="Submit" value="提交">
    14. </form>
    15. </body>
    16. </html>

    7:传递参数标识

    该标识可以作为其他标识的子表示 用于为其他标识传递参数 语法如下

    <jsp:param name="参数名" value="参数值"/>

    代码如下 

    在实现请求转发的同时 传递了参数userid 其参数值为7

    1. <jsp:forward page="modify.jsp">
    2. <jsp:param name="userid" value="7"/>
    3. </jsp:forward>

    创作不易觉得有帮助请点赞关注收藏~~~

  • 相关阅读:
    leetcode 4. Median of Two Sorted Arrays 寻找两个正序数组的中位数(困难)
    数字ic设计——SPI
    浅谈架构备考.补缺.V1
    无痛卸载流氓杀毒软件Avast
    使用ollama + AnythingLLM快速且简单的在本地部署llama3
    牛客网:有多少个不同的二叉搜索树
    docker安装elasticSearch+kibana
    霸榜!这本《程序员如何向架构师转型》在Github已持续置顶两月
    自学java怎么入门?
    钉钉群机器人撤回信息-实操详细教程
  • 原文地址:https://blog.csdn.net/jiebaoshayebuhui/article/details/127112905