1,JSP
1.1:概述&原理
目标:
1,知道JSP和HTML区别
2,知道JSP在tomcat的执行原理
为什么要使用JSP:
JS:特效,简要逻辑
JAVA:业务逻辑,复杂操作
JSP:java+HTML+css+js
跨平台,业务代码相分析,组件重用,预编译
JSPJava独有,除了可以书写HTML/css/js代码,更支持书写Java代码和EL表达式等强大功能。
拓展名:.jsp
JSP和HTML区别:
HTML:静态WEB资源。
HTML+CSS+JS,处理简单业务逻辑
轻量化快速开发,减少servlet出现,HTML+AJAX 模仿JSP的效果
JSP:动态WEB资源
HTML+CSS+JS + JAVA,处理复杂业务逻辑。
重量级开发,要求效果优先。 JSP+AJAX,给用户体验极佳
找到JSP文件执行的位置
因为HttpJspPage是Servlet的子接口,所以JSP本质是一个Servlet
service
1.2:基本语法【重点】
<% java 代码 (变量,方法,语句)%>
禁用嵌套
不是脚本,变为html元素
定义的都是局部变量,都在_jspService方法内部
脚本输出:
之前:<%out.write("输出内容");%>
现在:<%=变量/输出内容%>
<% %> 放在_jspService方法中
<%! %> 放在成员位置
<%= %> 翻译为out.print();
建议JSP文件上尽量使用JSP注释
1.3:指令
1.3.1:page
Idea 会帮助咱们自动导入
<%@ page contentType="text/html;charset=UTF-8" language="java" isErrorPage="true" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>错误信息的专用页面 T T</h1>
<img src="002.png"/>
<img src="001.png"/>
<%
//当isErrorPage设置为true时,当前JSP就是一个专用的错误信息处理页面
//可以用到一个exception对象,将出错的信息进行封装
String message = exception.getMessage();
if(message.equals("/ by zero")){
out.write("001代码");
}
%>
</body>
</html>
1.3.2:include
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
String str = "字符串";
%>
<%@include file="/part.jsp"%>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%=str%>
</body>
</html>
1.3.3:taglib(JSTL标签详细)
该指令用于从外界向当前JSP导入标签库
1.4:九大内置对象【该阶段重点】
1.4.1:简述
isErrorPage=true,才会有exception对象
都在_jspService方法中
请求响应:
request
response
域对象:
pageContext
request
session
application
其他对象:
out
config
exception
page
1.4.2:pageContext
作用1:获取其他八大内置对象
作用2:作为最小域对象,操作其他作用域,作用域键值对查找【频繁】
当前页面域:pageContext,只有在当前页面有效。
<%
pageContext.setAttribute("uname","爱吃豆的土豆");
%>
<%=pageContext.getAttribute("uname")%>
以request为例,向request作用域存放数据:
<%
//效果相同
//request.setAttribute("username","爱吃豆的土豆");
pageContext.setAttribute("username","爱吃豆的土豆",PageContext.REQUEST_SCOPE);
%>
<%=pageContext.getAttribute("username",PageContext.REQUEST_SCOPE)%>
查找数据
<%
pageContext.setAttribute("pwd","123");//page
pageContext.setAttribute("pwd","456",PageContext.REQUEST_SCOPE);//request
%>
<%=pageContext.findAttribute("pwd")%>
<%=pageContext.findAttribute("pwd222222")%>
1.5:out
out对象和Servlet字符流区别:
响应体中:优先刷入的是Servlet字符流
响应体中:紧随其后 是out对象 刷入的内容
1.6:JSP四大作用域【重点】
页面范围:一般无实际应用
请求范围:指需要短暂保存的数据 / 指需要在请求转发中传递的object数据
会话范围:指浏览器开启~浏览器关闭,要保存的OBJECT数据
应用范围:指整个项目期间,所有程序/所有用户 都要共享/传递的 Object数据
Servlet:
Servlet有三大作用域:
HttpServletRequest
HttpSession
ServletContext
最后:
如果文章对您有帮助,就拿起小手赶紧给博主点赞💚评论❤️收藏💙 一下吧!
愿我们在未来的日子里。熠熠生辉!!!