【JavaWeb】 jsp学习了解

24 篇文章 6 订阅

【JavaWeb】 jsp学习了解

前言

这里简单说些jsp,这里推荐一个教程网站,菜鸟教程,找到jsp这一节,说的非常清楚挺好的,这里也是参考那个,大家可以把那里当作教程,然后这里是课堂然后一起看,效果更好哦,看前点个赞,养成好习惯👍

书接上回:
【JavaWeb】-Tomcat、Eclipse使用项目搭建(一)
【JavaWeb】-mysql、jdbc、dbcp使用(二)
【JavaWeb】-MVC、Servlet学习(三)
【JavaWeb】-Cookie、Session,token+学习(四)

【JavaWeb】-jsp简单了解(五)

介绍

JSP 与 PHP、ASP、ASP.NET 等语言类似,运行在服务端的语言。

前面我们知道了servlet,其实jsp页面最后就是被转换为servlet的html页面,这里我们可以看下:

新建一个test.jsp页面,前面虽然我们不知道但是也应用了

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		out.print("<h1>hello world</h1>");
	%>
</body>
</html>

我们运行一下:

在这里插入图片描述

是不是就输出了我们输出的<h1>hello world</h1>,在很早之前没有jsp这门技术,都是通过servlet在servlet通过这样输出,然后将html页面输出到页面,像这样,但是是不是很不方便,就是因为不方便技术才会进步嘛

我们可以直接写html然后同时在html里面也可以写java代码,其实最后就会产生了jsp这门技术,而其实也是通过jsp页面转化成功servlet这样,那过多的话就不说了,我们直接看知识点和如何使用;

在这里插入图片描述

jsp语法

我们先来学习jsp语法,怎么在jsp页面写java代码;

我们想要写java代码可以用以下形式用<%%>括起来里面写java代码:

以下把菜鸟教程当教科书,做教科书参考:

<% 代码片段 %>

比如我们上面所写的:

<%
	out.print("<h1>hello world</h1>");
%>

设置编码

如果我们要在页面正常显示中文,我们需要在 JSP 文件头部添加以下代码:

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

我们在新建jsp页面的时候,会自动添加上,前提是设置了eclipse设置了jsp的编码格式为utf-8

window —-> perferences:

在这里插入图片描述

声明变量

<%! declaration; [ declaration; ]+ ... %>

比如我们声明一个变量;

<%! String s = "hello world"; %>

其实也可以在<%%>里面声明,但是鉴于规范可以在<%! %>声明

如何在html里面输出表达式:

<%= 表达式 %>

其实也可以在<%%>里面输出,但是这里不是用System.out中输出,这样是向控制台输出,而是用jsp内置对象out向屏幕输出:

就像刚才的,这样是向屏幕输出,而过使用了System.out就会向你的控制台输出;

<%
	out.print("<h1>hello world</h1>");
%>

那为什么又有一个这样的输出呢,<%= 表达式 %>,你不要觉得不好,这个贼还用,比如这样,我们通过servlet传递到前台的值,可以直接作为input的value,特别好用;

<input value="<%= 表达式 %>" />

还有一些其他的,都在这里了

语法描述
<%-- 注释 --%>JSP注释,注释内容不会被发送至浏览器甚至不会被编译
HTML注释,通过浏览器查看网页源代码时可以看见注释内容
<%代表静态 <%常量
%>代表静态 %> 常量
在属性中使用的单引号
"在属性中使用的双引号

指令

其实也不是什么,接着我们的理解,我们比如要使用utli包里面的东西是不是要导包啊,这时候可不是<% %>就行了,这里我们叫指令,没几个,看看吧:

<%@page import="util.TokenUtil"%>     //导包
<%@ include ... %>	包含其他文件
<%@ taglib ... %>	引入标签库的定义,可以是自定义标签

加大内置对象

和我们在servlet中使用差不多,这里比如out我们也使用过了:

对象描述
requestHttpServletRequest类的实例
responseHttpServletResponse类的实例
outPrintWriter类的实例,用于把结果输出至网页上
sessionHttpSession类的实例
applicationServletContext类的实例,与应用上下文有关
configServletConfig类的实例
pageContextPageContext类的实例,提供对JSP页面所有对象以及命名空间的访问
page类似于Java类中的this关键字
exceptionexception 类的对象,代表发生错误的 JSP 页面中对应的异常对象

生命周期

那没那么多复杂的可难的,我们看一下生命周期,以下代码来自菜鸟教程:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<html>
<head>
<title>test</title>
</head>
<body>

<%! 
  private int initVar=0;
  private int serviceVar=0;
  private int destroyVar=0;
%>
  
<%!
  public void jspInit(){
    initVar++;
    System.out.println("jspInit(): JSP被初始化了"+initVar+"次");
  }
  public void jspDestroy(){
    destroyVar++;
    System.out.println("jspDestroy(): JSP被销毁了"+destroyVar+"次");
  }
%>

<%
  serviceVar++;
  System.out.println("_jspService(): JSP共响应了"+serviceVar+"次请求");

  String content1="初始化次数 : "+initVar;
  String content2="响应客户请求次数 : "+serviceVar;
  String content3="销毁次数 : "+destroyVar;
%>
<h1>菜鸟教程 JSP 测试实例</h1>
<p><%=content1 %></p>
<p><%=content2 %></p>
<p><%=content3 %></p>

</body>
</html>

在这里插入图片描述

我们把它当成servlet使用就可以了本质也就是servlet,jsp最后就是编译成一个个servlet类;

jstl

介绍

在这里插入图片描述

其实就是在对jsp页面编写使用的再一次简化,很简单,了解下:

引入依赖

需要连个jar包:jstl.jarstandard.jar

常用的就是c标签了,jsp页面上添加:<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>,这时候我们就可以使用C标签了

因为通过java编写输出比如很多列表的循环,我们通过jsp页面去写,会是这样的效果:

在这里插入图片描述

那这里的循环还是很小一段,假如我们会有很多html代码,还得去写什么<%}%>这样不管不好写,而且代码可读性太差,那通过jstl我们可以这样,只需要一个标签将html代码围住继续写,这样不光代码可读性提高了,而且是不是很方便了呢:

在这里插入图片描述

C语法

一个表格,我觉得一看就懂吧,就是将我们上面所用的servlet做成了标签这种类似html的标签,提高了可读性,简化了代码,这里推荐大家去菜鸟教程上观看,以及分析,这里就不做过多解释了:

在这里插入图片描述

小结

这里简单了解下,后面我写了一个小例子,简单的小例子,麻雀虽小五脏俱全,那这里还不点个关注,不然之后找不到了,拜拜~

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值