JSP介绍与使用

news/2024/4/27 15:02:31

文章目录

  • 一、JSP概述
  • 二、JSP快熟入门
    • 导入JSP坐标
    • 编写HTML文件和Java代码
  • 三、JSP原理
  • 四、JSP脚本
    • JSP脚本案例
  • 五、JSP缺点
  • 六、EL表达式
  • 七、JSTL标签
    • 1、<c:if>标签
    • 2、<c:foerEach>标签
  • 八、MVC 模式和三层架构
    • 1、MVC 模式
    • 2、三层架构
    • 3、MVC 模式和三层架构的区别

一、JSP概述

在这里插入图片描述

二、JSP快熟入门

在这里插入图片描述

导入JSP坐标

        <dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.2</version><scope>provided</scope></dependency>

编写HTML文件和Java代码

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body><h1>hello jsp</h1><%System.out.println("hello,jsp~");
%></body>
</html>

三、JSP原理

在这里插入图片描述

四、JSP脚本

在这里插入图片描述

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body><h1>hello jsp</h1><%System.out.println("hello,jsp~");int i = 3;
%><%="hello"%>
<%=i%><%!void show(){}String name = "zhangsan";
%>
</body>
</html>

JSP脚本案例

在这里插入图片描述
品牌实体类

package com.itheima.pojo;/*** 品牌实体类*/public class Brand {// id 主键private Integer id;// 品牌名称private String brandName;// 企业名称private String companyName;// 排序字段private Integer ordered;// 描述信息private String description;// 状态:0:禁用  1:启用private Integer status;public Brand() {}public Brand(Integer id, String brandName, String companyName, String description) {this.id = id;this.brandName = brandName;this.companyName = companyName;this.description = description;}public Brand(Integer id, String brandName, String companyName, Integer ordered, String description, Integer status) {this.id = id;this.brandName = brandName;this.companyName = companyName;this.ordered = ordered;this.description = description;this.status = status;}// getId  ${brand.id}   Id   getIdpublic Integer getId() {System.out.println("getId方法被调用了...");return id;}public void setId(Integer id) {this.id = id;}public String getBrandName() {return brandName;}public void setBrandName(String brandName) {this.brandName = brandName;}public String getCompanyName() {return companyName;}public void setCompanyName(String companyName) {this.companyName = companyName;}public Integer getOrdered() {return ordered;}public void setOrdered(Integer ordered) {this.ordered = ordered;}public String getDescription() {return description;}public void setDescription(String description) {this.description = description;}public Integer getStatus() {return status;}public void setStatus(Integer status) {this.status = status;}@Overridepublic String toString() {return "Brand{" +"id=" + id +", brandName='" + brandName + '\'' +", companyName='" + companyName + '\'' +", ordered=" + ordered +", description='" + description + '\'' +", status=" + status +'}';}
}

JSP页面

<%@ page import="com.itheima.pojo.Brand" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %><%// 查询数据库List<Brand> brands = new ArrayList<Brand>();brands.add(new Brand(1,"三只松鼠","三只松鼠",100,"三只松鼠,好吃不上火",1));brands.add(new Brand(2,"优衣库","优衣库",200,"优衣库,服适人生",0));brands.add(new Brand(3,"小米","小米科技有限公司",1000,"为发烧而生",1));%><!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<input type="button" value="新增"><br>
<hr>
<table border="1" cellspacing="0" width="800"><tr><th>序号</th><th>品牌名称</th><th>企业名称</th><th>排序</th><th>品牌介绍</th><th>状态</th><th>操作</th></tr><%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><a href="#">修改</a> <a href="#">删除</a></td></tr><%}%></table></body>
</html>

五、JSP缺点

在这里插入图片描述
在这里插入图片描述

六、EL表达式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
EL代码

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>${brands}</body>
</html>

Servlet代码

package com.itheima.web;import com.itheima.pojo.Brand;import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;@WebServlet("/demo1")
public class ServletDemo1 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1. 准备数据List<Brand> brands = new ArrayList<Brand>();brands.add(new Brand(1,"三只松鼠","三只松鼠",100,"三只松鼠,好吃不上火",1));brands.add(new Brand(2,"优衣库","优衣库",200,"优衣库,服适人生",0));brands.add(new Brand(3,"小米","小米科技有限公司",1000,"为发烧而生",1));//2. 存储到request域中request.setAttribute("brands",brands);request.setAttribute("status",1);//3. 转发到 el-demo.jsp//request.getRequestDispatcher("/el-demo.jsp").forward(request,response);//request.getRequestDispatcher("/jstl-if.jsp").forward(request,response);request.getRequestDispatcher("/jstl-foreach.jsp").forward(request,response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}

七、JSTL标签

在这里插入图片描述

1、<c:if>标签

在这里插入图片描述
导入jstl坐标

        <!--jstl--><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>1.1.2</version></dependency>

<c:if>演示

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><html>
<head><title>Title</title>
</head>
<body><%--c:if:来完成逻辑判断,替换java  if else--%>
<%--<c:if test="true"><h1> true</h1></c:if><c:if test="false"><h1> false</h1></c:if>
--%><c:if test="${status ==1}">启用</c:if><c:if test="${status ==0}">禁用</c:if></body>
</html>

2、<c:foerEach>标签

在这里插入图片描述
<c:foerEach>演示

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<input type="button" value="新增"><br>
<hr>
<table border="1" cellspacing="0" width="800"><tr><th>序号</th><th>品牌名称</th><th>企业名称</th><th>排序</th><th>品牌介绍</th><th>状态</th><th>操作</th></tr><c:forEach items="${brands}" var="brand" varStatus="status"><tr align="center"><%--<td>${brand.id}</td>--%><td>${status.count}</td><td>${brand.brandName}</td><td>${brand.companyName}</td><td>${brand.ordered}</td><td>${brand.description}</td><c:if test="${brand.status == 1}"><td>启用</td></c:if><c:if test="${brand.status != 1}"><td>禁用</td></c:if><td><a href="#">修改</a> <a href="#">删除</a></td></tr></c:forEach></table><hr><c:forEach begin="1" end="10" step="1" var="i"><a href="#">${i}</a>
</c:forEach></body>
</html>

八、MVC 模式和三层架构

1、MVC 模式

在这里插入图片描述

2、三层架构

在这里插入图片描述

3、MVC 模式和三层架构的区别

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.cpky.cn/p/10836.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

pyspark基础 -- DataFrame的理解与案例

DataFrame(df)介绍 datafram就是一个内存中的二维表结构&#xff0c;具备表结构的三个基本属性&#xff1a; 行列表结构描述 在结构层面&#xff0c;pyspark中的StructType对象描述了表结构&#xff0c;StructField对象描述了表的一个列信息&#xff1b;在数据层面&#xff…

在github下载的神经网络项目,如何运行?

github网页上可获取的信息 在github上面&#xff0c;有一个requirements.txt文件&#xff0c;该文件说明了项目要求的python解释器的模块。 - 此外&#xff0c;还有一个README.md文件&#xff0c;用来说明项目的运行环境以及其他的信息。例如python解释器的版本是3.7、PyTorc…

晶圆制造过程中常用载具的类型

晶圆载具用于硅片生产、晶圆制造以及工厂之间晶圆的储存、传送、运输以及防护。晶圆载具种类很多,如FOUP用于晶圆制造工厂中晶圆的传送;FOSB用于硅片生产与晶圆制造工厂之间的运输;CASSETTE载具可用于工序间运送以及配合工艺使用。 OPEN CASSETTE OPEN CASSETTE主要在晶圆…

简介:使用TensorFlow实现python简版神经网络模型

如果你想进一步深入AI编程的魔法世界&#xff0c;那么TensorFlow和PyTorch这两个深度学习框架将是你的不二之选。它们可以帮助你构建更加复杂的神经网络模型&#xff0c;实现图像识别、语音识别等高级功能。 模型原理&#xff1a;神经网络是一种模拟人脑神经元结构的计算模型&a…

机器学习_推荐系统

文章目录 定义问题基于内容的推荐系统协同过滤 定义问题 我们从一个例子开始定义推荐系统的问题。 下面引入一些标记&#xff1a; 基于内容的推荐系统 在一个基于内容的推荐系统算法中&#xff0c;我们假设对于我们希望推荐的东西有一些数据&#xff0c;这些数据是有关这些…

QGIS编译(跨平台编译)056:PDAL编译(Windows、Linux、MacOS环境下编译)

点击查看专栏目录 文章目录 1、PDAL介绍2、PDAL下载3、Windows下编译4、linux下编译5、MacOS下编译1、PDAL介绍 PDAL(Point Data Abstraction Library)是一个开源的地理空间数据处理库,它专注于点云数据的获取、处理和分析。PDAL 提供了丰富的工具和库,用于处理激光扫描仪、…