首页 > 编程语言 >javaweb-jsp脚本总结笔记

javaweb-jsp脚本总结笔记

时间:2023-10-17 14:01:27浏览次数:48  
标签:java javaweb 代码 笔记 jsp JSP servlet 页面

1什么是JSP

jsp又叫 Java servelt Page 这门技术最大的特点就是,写jsp就像是再写html 但是不仅可以写静态页面,而且可以内置Java代码写出动态页面,也就是说可以为用户提供动态数据。

总的来说jsp = java+ HTML

2.JSP快速入门

2.1提供对应的驱动包

2.1创建对应jsp文件

2.2写对应代码即可(html和java代码)

注:在jsp中写java代码需要对应的标签(详解在jsp脚本)

3.JSP原理

3.1

jsp本质上就是一个servlet ,所以jsp中在向网页发出的请求服务器会先把jsp文件转成servlet文件去执行,所以我们访问jsp实际是在访问jsp背后的servlet文件

servlet文件的位置如图所示

点开其中的java后缀文件其中部分代码如图所示

 可以去查看tomcat源码会发现红色框中的类继承与HttpSevrlet

4.jsp脚本

jsp脚本分类

1.<%...%>内容会直接放到_jspService()方法中

2.<%=...%>内容会放到out.print()中,作为out.print()的参数

3.<%!...%>内容会放到_jspService()方法之外,被类直接包含

(小技巧: 当你想循环或者需要进行其他操作必须用到Java和html进行混合打印的时候可以用拼接的方法,例子如下:)

 

<% for (int i = 0; i < brands.size(); i++) {
        Brand brand = brands.get(i);
    %>
    <tr align="center">
        <td><%= brand.getId() %>
        </td>
        <td><%= brand.getBrandName() %>
        </td>
        <td><%= brand.getCompanyName() %>
        </td>
        <td><%= brand.getOrdered() %>
        </td>
        <td><%= brand.getDescription() %>
        </td>
        <%
            if (brand.getStatus() == 1) {
        %>
        <td><%= "启用" %></td>
        <%
        } else {
        %>
        <td><%= "禁用" %></td>
        <%
            }

        %>
        </td>
        <td><a href="#">修改</a> <a href="#">删除</a></td>
    </tr>
    <%
        }
    %>

 

图中案例是我想循环打印表格和表格中的数据所作出的拼接

 5.JSP缺点

学习的目的:1.一些比较老的公司仍在使用jsp

      2.可以更好的掌握新的技术

 6.引出技术EL表达式

为了解决上述的部分问题

介绍:Expression Language 表达语言 用于简化JSP页面内的java代码

主要功能:获取数据

语法${expression}例:

 : 获取域中存储key为brands的数据

 JavaWeb中的四大域对象:

1.page:当前页面有效

2.request:当前请求有效

3.session: 当前会话有效

4.application:当前应用有效

el表达式获取数据,会依次从这4个域中寻找,直到找到为止

7.引出JSTL技术

简介:使用标签取代JSP上面的java代码

需要引用对应的包

<dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.6</version>
        </dependency>

        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.2</version>
        </dependency>

 介绍两个常用标签

1.<c:if test = "xxx">...</c:if>

参数介绍:xxx 代表传入的判断条件...代表判断后的要运行的语句

概述:类似于java代码中的if判断语句

<c:if test="${status==1}">
    启用
</c:if>
<c:if test="${status==0}">
    禁用
</c:if>

2.<c:forEach>

 

参数介绍:item:被遍历的容器

     var:代表临时变量

     varStatus:遍历状态对象

概述:相当于for循环

注:${brand.id}并不是访问成员变量中的id在调用brand.id 的时候他会自动解析去寻找该类中的getId方法,其他访问方法都与之类似。

标签:java,javaweb,代码,笔记,jsp,JSP,servlet,页面
From: https://www.cnblogs.com/duixiangdemingzi/p/17767177.html

相关文章

  • [学习笔记] 浏览器F12检查中应该如何判断margin的上下左右?
    如下图所示,margin上下左右四个方向分别是1px,2px,3px,4px。 而在浏览器F12检查时,margin显示如下图所示:即浏览器检查时显示的margin值,是按照上、右、下、左的顺序来的。该规律在padding也同样适用。 ......
  • EPLAN 电气设计入门学习笔记
     1.EPLAN中的结构描述符号功能面结构=功能面结构符号“=”,译为高层代号,表示系统根据功能被分为若干组成项目。产品面结构-符号“-”,表示根据产品分类,例如“-Q”表示空气开关。位置面结构+符号“+”,描述部件在系统中的位置,译为“位置代号”。器件引脚标识:例如“-H1:......
  • [学习笔记] 有关CSS响应式设计的单位
    em和rem单位:em和rem是相对于元素的字体大小计算的单位。em单位是相对于父元素的字体大小,而rem单位是相对于根元素(通常是 <html> 元素)的字体大小。em和rem单位可以用于实现相对于字体大小的自适应布局。vw和vh单位:vw和vh是视口宽度和视口高度的百分比单位......
  • React学习笔记04-JSX语法
    1.JSX语法JSX将HTML语法直接加入到JavaScript代码中,再通过翻译器转换到纯JavaScript后由浏览器执行。在实际开发中,JSX在产品打包阶段都已经编译成纯JavaScript,不会带来任何副作用,反而会让代码更加直观并易于维护。编译过程由Babel的JSX编译器实现。 2.JSX语法的......
  • Linux学习笔记2
    Linux学习笔记1.文件重定向1.尝试在命令行输人ifconfig.找到自己电脑的IP地址.zzh@ubuntu:~/Desktop$ifconfigens33:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>mtu1500   inet192.168.216.128netmask255.255.255.0broadcast192.168.216.255   in......
  • 《巴小特的宝藏》一款小游戏的诞生笔记
    起源:《巴小特的宝藏》项目初创与2022年初,拥有多年游戏开发经验的我萌生自己创作游戏的念头,市场上好多游戏同质化严重,并且基本主要考虑的都是娱乐性,而我想做一款不一样的东西出来,当时很痴迷研究经济、金融,自己也炒股,该赔的钱也都赔,正好也赶上了2022年股市大跌,没有在跌......
  • 《Deep Residual Learning for Image Recognition》阅读笔记
    论文标题《DeepResidualLearningforImageRecognition》撑起CV界半边天的论文Residual:主要思想,残差。作者何恺明,超级大佬。微软亚研院属实是人才辈出的地方。初读摘要提问题:更深层次的神经网络更难训练。提方案:提出了残差网络解决深层网络训练的问题。这也......
  • 《流畅的Python》 读书笔记 第三章字典和集合 20231017
    第3章字典和集合dict类型是Python语言的基石模块的命名空间、实例的属性和函数的关键字参数中都可以看到字典的身影跟它有关的内置函数都在__builtins__.__dict__模块中模块的命名空间:我的理解是sys.modules实例的属性:我的理解是实例.__dict__classA:def_......
  • [刷题笔记] CSP-J 2022 T4 上升点列
    Description在一个二维平面内,给定\(n\)个整数点\((x_i,y_i)\),此外你还可以自由添加\(k\)个整数点。你在自由添加\(k\)个点后,还需要从\(n+k\)个点中选出若干个整数点并组成一个序列,使得序列中任意相邻两点间的欧几里得距离恰好为\(1\)而且横坐标、纵坐标值均单调不......
  • AI学习笔记(五)-支持向量机(SVM)
    将数据映射到高维空间,在其中找到一个最优的超平面,将不同类别的数据点分开。它可最大化边际,使得不同类别的数据点离超平面的距离最大化。......