JavaWeb——jsp概述&入门案例&原理&脚本&缺点

JSP定义:

 在如下一个jsp文件里面有如下的代码 

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

运行后前端页面输出如下

控制台输出如下 

jsp的应用场景:


在上面这个页面里面,zhangsan位置处的数据是要动态显示的。

使用Servlet实现

如果是只用servlet实现需要写在后端代码 并传回前端进行展示

另外 还需要写一整个静态的html页面加上动态资源并返回 

使用jsp实现

在jsp文件里写java代码来实现需要完成参数获取以及数据库连接并调用mybatis查询数据,并且会将html语句也写在同一个页面。

 入门案例

首先要先创建一个javaweb项目并配置 好tomcat服务器,然后才创建jsp文件

 jsp原理

生成的java文件 

 就是在里面完成了servlet的工作,把html语句都进行返回,原本在servlet里面要自己实现,在这里就自动实现。 

JSP脚本

jsp中的三种脚本形式 

第一种

下面这种就是直接输出到控制台

 第二种

 

这种脚本形式会直接在前端页面上进行显示输出,翻译成.java文件时如下图,可以看见别的都翻译成了out.write("")形式作为response响应数据返回浏览器进行解析,而out.print(""),不光是字符串,也可以是一个变量。

第三种 

在.java文件里面就会出现如下成员变量

 

 练习

   使用如下的List代替数据库查询

    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));

定义相对应的pojo类并设置setter和getter还有无参以及有参构造的方法等等

新开一个brand.jsp文件,里面使用一个List模拟数据库查询的结果

<%@ page import="org.example.pojo.Brand" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %><%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2023/3/21
  Time: 18:11
  To change this template use File | Settings | File Templates.
--%>
<%@ 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>

上述代码最终被翻译成了如下的.java文件,在这上面的代码中截断了多个{}到下面就又完整了

上面的代码效果如下

 

 以上就是使用jsp脚本进行开发的一个小案例

jsp缺点

谁用谁知道这个jsp脚本写起来麻烦的一批

上面体现了是单独使用Servlet和单独使用JSP开发的坏处,将Servlet和JSP结合起来又可以解决一部分的问题,又产生两门新的技术EL表达式和JSTL标签。 

猜你喜欢

转载自blog.csdn.net/m0_62327332/article/details/129685568
今日推荐