写点什么

javaweb-JSP

作者:喜羊羊
  • 2022 年 9 月 09 日
    河南
  • 本文字数:1973 字

    阅读完需:约 6 分钟

javaweb-JSP

JSP

什么是 JSP

Java Server Pages:Java 服务器端页面,也和 Servlet 一样,用于动态 Web 技术!

最大的特点:

写 jsp 就像再在写 HTML

区别:

html 只给用户提供静态的数据

jsp 页面中可以嵌入 Java 代码,为用户提供动态数据

jsp 原理

浏览器向服务器发送请求,不管访问什么资源,其实都是在访问 Servlet

jsp 最终也会被转换成为一个 java 类

jsp 本质上就是一个 Servlet 类

在 jsp 页面中

只要是 Java 代码就会原封不动的输出

如果是 html 代码,就会被转换为:

这样的格式,输出到前端

out.write("<html>\r\n");

jsp 基础语法

任何语言都有自己的语法,Java 中有,jsp 作为 Java 技术的一种应用,它拥有一些自己扩充的语法(了解即可),Java 所有语法都支持

jsp 表达式

<%--jsp 表达式

作用:用来将程序输出,输出到客户端

<%= 变量或者表达式 %>

--%>

<%= new java.util.Date()%>

jsp 脚本片段

<%--jsp 脚本片段--%>

<%

int sum = 0;

for (int i = 1; i <= 100 ; i++) {

sum+=i;

}

out.println("<h1>sum="+sum+"</h1>");

%>

脚本片段的再实现

<%

int x = 10;

out.println(x);

%>

<p>这是一个 jsp 文档</p>

<%

int y = 2;

out.println(y);

%>

<hr>

<%--在代码中嵌入 html 元素--%>

<%

for (int i = 0; i < 5 ; i++) {

%>

<h1>hello,world <%=i%></h1>

<%

}

%>

jsp 声明

<%!

static{

System.out.println("Loading Servlet!");

}

private int globaVar = 0;

public void he(){

System.out.println("进入了方法 he!");

}

%>

jsp 声明:会被编译到 jsp 生成 Java 的类中,其他的,就会被生成到_javaService 中!

在 jsp 中,嵌入 java 代码即可

<%%>

<%=%>

<%!%>

<%jsp 注释 %>

jsp 注释,不会在客户端显示,html 会

jsp 指令

<%@page args...%>

<%@include file=""%>

<%--@include 会将两个页面合二为一--%>

<%@include file="common/header.jsp"%>

<h1>网页主题</h1>

<%@include file="common/footer.jsp"%>

<hr>

<%--jsp 标签

jsp:include:拼接页面,本质还是 3 个

--%>

<jsp:include page="/common/header.jsp"/>

<h1>网页主题</h1>

<jsp:include page="/common/footer.jsp"/>

九大内置对象

PageConetext

Request

Response

Session

Application

config

out

page 不用了解

exception

pageContext.setAttribute("name1","饼干 1 号");//保存的数据只在一个页面中有效

request.setAttribute("name2","饼干 2 号");//保存的数据只在一次请求中有效,请求转发会携带这个数据

session.setAttribute("name3","饼干 3 号");//保存的数据只在一次会话中有效,从打开浏览器到关闭浏览器

application.setAttribute("name4","饼干 4 号");//保存的数据只在服务器中有效,从打开服务器到关闭浏览器

request:客户端向服务器发送请求,产生的数据,用户看完就没用了,比如:新闻,用户看完没用的

session:客户端向服务器发送请求,产生的数据,用户看完一会还有用,比如:购物车

application:客户端向服务器发送请求,产生的数据,一个客户用完了,其他的客户还可能使用,比如:聊天数据

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

<!--jsp 依赖-->

<dependency>

<groupId>javax.servlet.jsp</groupId>

<artifactId>javax.servlet.jsp-api</artifactId>

<version>2.3.3</version>

</dependency>

<!-- jstl 的依赖 -->

<dependency>

<groupId>javax.servlet.jsp.jstl</groupId>

<artifactId>jstl-api</artifactId>

<version>1.2</version>

</dependency>

EL 表达式:${ }

获取数据

执行运算

获取 web 开发的常用对象

<%--jsp:include--%>

<%-- http://loaclhost:8080/jsptag.jsp?name=binggan&age = 5

--%>

<jsp:forward page="/jsptag2.jsp">

<jsp:param name="name" value="binggan"></jsp:param>

<jsp:param name="age" value="5"></jsp:param>

</jsp:forward>

JSTL 标签库的使用就是为了弥补 HTML 标签的不足,它自定义许多标签,可以供我们使用,标签的功能和 Java 代码一样

核心标签

格式化标签

SQL 标签

XML 标签

JSTL 标签库使用步骤

引入对应的 taglib

使用其中的方法

在 Tomcat 也需要引入 JSTL 的包,否则会报错:JSTL 解析错误

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

<title>Title</title>

</head>

<body>

<%--定义一个变量 score,值为 85--%>

<c:set var="score" value="85"/>

<c:choose>

<c:when test="${score>=90}">

你的成绩为优秀

</c:when>

<c:when test="${score>=80}">

你的成绩为一般

</c:when>

<c:when test="${score>=70}">

你的成绩为及格

</c:when>

<c:when test="${score<=60}">

你的成绩为不及格

</c:when>

</c:choose>

</body>

</html>

判断如果提交的用户名是管理员,则登陆成功

<%

if(request.getParameter("username").equals("admin")){

out.print("登录成功");

}

%>


发布于: 刚刚阅读数: 3
用户头像

喜羊羊

关注

还未添加个人签名 2022.09.01 加入

还未添加个人简介

评论

发布
暂无评论
javaweb-JSP_9月月更_喜羊羊_InfoQ写作社区