• [javaweb]jsp,jstl,el表达式的使用


    jsp

    java server page:java服务器前端页面,和servlet一样,用于动态web开发。

    特点:

    • 写jsp页面就像在写html
    • html只给用户提供静态数据,jsp中可以加入java代码,为用户提供动态数据

    jsp最终会被转换成一个java类。jsp继承了一个HttpJspBase,这个类经常间接又继承了servlet,因为jsp的本质还是一个servlet。

    但是通过继承使得jsp大大简化了,servlet与前端交互的语句。

    • 在jsp中只要是java代码就会原封不动的输出;

    ·out.print(name);

    • 如果是html代码就会进行转换为

    out.write("success\r\n");

    说到底,就相当于在后台用java语言的servlet给前端传输数据一样只不过它使用了前端化的语言使得操作更加简单,在运行的时候它本身还是转化成了java。

    jsp语法

    作为一个java语言的应用它支持所有的java语法,并且有许多自己的语法。

    也可以用el表达式取值:${}等价于<%=%>

    脚本片段:

    <%
    int sum=0;
    for(int i=1;i<=100;i++){
        sum+=i;
    }
      out.print("

    sum="+sum+"

    "); %>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    <%! static {
      System.out.println("loading^");
     
    }
      public void tata(){
        System.out.println("sda");
      }
    
    %>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    jsp指令

    错误界面定制:

    <%@ page errorPage="success.jsp" %>

    包含其他页面:

    <%@ include file=""%>

    九大内置对象

    • session //存值在一个session中
    • request //存值在一次请求中
    • application //存值在当前项目
    • pageContext //存值当前页面
    • Response
    • config
    • jspContext
    • out //输出
    • page

    jsp标签,jstl标签,EL表达式

    使用之前要先导包

    <dependency>
                <groupId>javax.servlet.jsp.jstlgroupId>
                <artifactId>jstl-apiartifactId>
                <version>1.2version>
            dependency>
            <dependency>
                <groupId>taglibsgroupId>
                <artifactId>standardartifactId>
                <version>1.1.2version>
            dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    el表达式:${ }

    • 获取数据
    • 执行运算
    • 获取web开发的常用对象

    jsp标签

    
    
        
        
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    jstl标签

    弥补html标签的不足,它有许多自定义的标签

    导入标签头才能使用该标签

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

    在使用标签时遇到此问题

    将jar包手动复制到tomcat服务器中

    成功

    核心标签

    使用c开头

    <%--
      Created by IntelliJ IDEA.
      User: 塔塔
      Date: 2022/7/20
      Time: 10:53
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    
    
    
        Title
    
    
    
    name
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    javaBean

    • 必须有一个无参构造
    • 属性私有
    • 有对应的get、set

    一般和数据库的表映射:字段映射属性!

    表people

    idnameage
    1tata18
    2meigu17
    @Data
    public class people{
        private int id;
        private String name;
        private int age;
        
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    三层架构

    model view controller

    视图,模型,控制器

    早期历史

    • servlet可以直接编辑crud,访问数据库,程序十分臃肿,不利于维护。

    model:

    • 业务处理:业务逻辑(server)
    • 数据持久层:crud(dao)

    view:

    • 展示数据
    • 提供连接发起servlet请求

    controller:

    • 接受用户请求:(req:请求参数,session信息)

    • 交给业务层处理对应的代码

    • 控制视图的跳转

  • 相关阅读:
    SpringBoot 自动配置
    $parent 和 $children的用法
    【LeetCode回溯算法#07】子集问题I+II,巩固解题模板并详解回溯算法中的去重问题
    Webpack 基础以及常用插件使用方法
    Programming tools
    UEFI与 Legacy BIOS两种启动模式详解
    windows注册表引发的bug记录
    【SpringBoot系列】Springboot使用kafka的两种方式
    设计模式之桥接模式
    Feign
  • 原文地址:https://blog.csdn.net/weixin_48595687/article/details/125999906