JSP:Java Server Pages,Java服务端页面
JSP是一种动态的网页技术,其中既可以定义HTML、CSS、JS等静态内容,还可以定义Java代码的动态内容
JSP = HTML + Java,用于简化开发的
JSP 本质上就是一个Servlet
JSP在被访问的时候,又JSP容器(Tomcat)将其转换为Java文件(Servlet,.java文件),再由JSP容器将其编译(.class文件),最终对外提供服务的其实就是这个字节码文件。
JSP已经逐渐退出历史舞台,取而代之的是Html+AJAX,或者Vue


还是要使用provided,和 Servlet一样
<dependency>
<groupId>javax.servlet.jspgroupId>
<artifactId>jsp-apiartifactId>
<version>2.2version>
<scope>providedscope>
dependency>
放在Webapp下

效果是java控制台输出 你好啊,页面上展示 好什么好都穷的快要饭了
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
Title
<%
System.out.println("你好啊!");
%>
好什么好,都快穷的要饭了


在Jsp页面定义Java代码,其实JSP本身就是一个Servlet,其中的HTML代码都是通过write展示出来的
因为写起来太麻烦了,就不写了
| 样式 | 作用 |
|---|---|
| <% 代码 %> | 定义的java代码,在service方法中,service方法中可以定义什么,该脚本就可定义什么。 |
| <%! 代码 %> | 定义的java代码,在jsp转换后的java类的成员位置。 |
| <%=代码 %> | 定义的java代码,会输出到页面上,输出语句中可以定义什么,该脚本就可定义什么。 |
写一段代码就明白了,作用就是在一些java代码中嵌入html代码,其实和原理就是通过write把html代码渲染到页面上。
<%
for(int i=0;i
//在这里写html代码
<%=brand.getId()%>
<%=brand.getBrandName()%>
<%
}
%>

基于上,所以JSP已经逐渐退出历史舞台,只有部分老公司还在用。
El:Expression Language,表达式语言,用于简化JSP页面内的Java代码。
主要功能:获取数据
语法:${expression} : 获取域中存储的key为expression的数据
el表达式获取数据,会依次用这四个域中寻找,直到找到为止,找到之后就不再寻找了,常用的是request和session。

JSP标准标签库(JSP Standarded Tag Library),使用标签取代JSP页面上的代码。
https://www.runoob.com/jsp/jsp-jstl.html

<dependcies>
<dependency>
<groupId>jstlgroupId>
<artifactId>jstlartifactId>
<version>1.2version>
dependency>
<dependency>
<groupId>taglibsgroupId>
<artifactId>standardartifactId>
<version>1.1.2version>
dependency>
dependencies>
即在第二行加入改代码,其中prefix代表前缀,一般为c
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
Title
<%--if的使用--%>
启动
禁止
<%--forEach的使用:和for一样--%>
<%--此处的id和brandName 应该指的是get方法 后缀
会把id 变成 Id然后加上 get去找到这个方法
也就是其实是调用的get方法,这也符合封装的特性
--%>
${brand.id}
${brand.brandName}
<%--forEach的第二种方式--%>
<%--
类似于
for(int i=1;i<5;i++)
{
}
begin:开始
end:结束
step:步长
--%>
${i}