【JavaWeb】 jsp学习了解
【JavaWeb】 jsp学习了解
前言
这里简单说些jsp,这里推荐一个教程网站,菜鸟教程,找到jsp这一节,说的非常清楚挺好的,这里也是参考那个,大家可以把那里当作教程,然后这里是课堂然后一起看,效果更好哦,看前点个赞,养成好习惯👍
书接上回:
【JavaWeb】-Tomcat、Eclipse使用项目搭建(一)
【JavaWeb】-mysql、jdbc、dbcp使用(二)
【JavaWeb】-MVC、Servlet学习(三)
【JavaWeb】-Cookie、Session,token+学习(四)
- Cookie的使用
- Session的使用
- token的使用
【JavaWeb】-jsp简单了解(五)
介绍
JSP 与 PHP、ASP、ASP.NET 等语言类似,运行在服务端的语言。
前面我们知道了servlet,其实jsp页面最后就是被转换为servlet的html页面,这里我们可以看下:
新建一个test.jsp页面,前面虽然我们不知道但是也应用了
Insert title here <%out.print("hello world
");%>
我们运行一下:
是不是就输出了我们输出的
hello world
,在很早之前没有jsp这门技术,都是通过servlet在servlet通过这样输出,然后将html页面输出到页面,像这样,但是是不是很不方便,就是因为不方便技术才会进步嘛
我们可以直接写html然后同时在html里面也可以写java代码,其实最后就会产生了jsp这门技术,而其实也是通过jsp页面转化成功servlet这样,那过多的话就不说了,我们直接看知识点和如何使用;
jsp语法
我们先来学习jsp语法,怎么在jsp页面写java代码;
我们想要写java代码可以用以下形式用括起来里面写java代码:
以下把菜鸟教程当教科书,做教科书参考:
比如我们上面所写的:
<%out.print("hello world
");%>
设置编码
如果我们要在页面正常显示中文,我们需要在 JSP 文件头部添加以下代码:
我们在新建jsp页面的时候,会自动添加上,前提是设置了eclipse设置了jsp的编码格式为utf-8
window —-> perferences:
声明变量
比如我们声明一个变量;
其实也可以在里面声明,但是鉴于规范可以在声明
如何在html里面输出表达式:
其实也可以在里面输出,但是这里不是用System.out中输出,这样是向控制台输出,而是用jsp内置对象out向屏幕输出:
就像刚才的,这样是向屏幕输出,而过使用了System.out就会向你的控制台输出;
<%out.print("hello world
");%>
那为什么又有一个这样的输出呢,,你不要觉得不好,这个贼还用,比如这样,我们通过servlet传递到前台的值,可以直接作为input的value,特别好用;
<input value="" />
还有一些其他的,都在这里了
语法 | 描述 |
---|---|
JSP注释,注释内容不会被发送至浏览器甚至不会被编译 | |
HTML注释,通过浏览器查看网页源代码时可以看见注释内容 | |
<% | 代表静态 <%常量 |
%> | 代表静态 %> 常量 |
’ | 在属性中使用的单引号 |
" | 在属性中使用的双引号 |
指令
其实也不是什么,接着我们的理解,我们比如要使用utli包里面的东西是不是要导包啊,这时候可不是就行了,这里我们叫指令,没几个,看看吧:
//导包包含其他文件引入标签库的定义,可以是自定义标签
加大内置对象
和我们在servlet中使用差不多,这里比如out我们也使用过了:
对象 | 描述 |
---|---|
request | HttpServletRequest类的实例 |
response | HttpServletResponse类的实例 |
out | PrintWriter类的实例,用于把结果输出至网页上 |
session | HttpSession类的实例 |
application | ServletContext类的实例,与应用上下文有关 |
config | ServletConfig类的实例 |
pageContext | PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问 |
page | 类似于Java类中的this关键字 |
exception | exception 类的对象,代表发生错误的 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.jar
和standard.jar
常用的就是c标签了,jsp页面上添加:,这时候我们就可以使用C标签了
因为通过java编写输出比如很多列表的循环,我们通过jsp页面去写,会是这样的效果:
那这里的循环还是很小一段,假如我们会有很多html代码,还得去写什么这样不管不好写,而且代码可读性太差,那通过jstl我们可以这样,只需要一个标签将html代码围住继续写,这样不光代码可读性提高了,而且是不是很方便了呢:
C语法
一个表格,我觉得一看就懂吧,就是将我们上面所用的servlet做成了标签这种类似html的标签,提高了可读性,简化了代码,这里推荐大家去菜鸟教程上观看,以及分析,这里就不做过多解释了:
小结
这里简单了解下,后面我写了一个小例子,简单的小例子,麻雀虽小五脏俱全,那这里还不点个关注,不然之后找不到了,拜拜~