大家好,又见面了,我是你们的朋友全栈君。
作用:主要作用是代替Servlet程序回传html页面的数据。因为Servlet程序回传html页面数据是一件非常繁琐的事情,开发成本和维护成本都很高。
一般的Servlet回传页面如下
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=UTF-8");
PrintWriter writer = resp.getWriter();
writer.write("<!DOCTYPE html>\r\n");
writer.write("<html lang=\en\">\r\n");
.....
writer.write("</html>\r\n");
}
可以看见非常的麻烦
访问jsp页面和html页面一样 jsp本质是一个servlet程序 当我们第一次访问jsp页面的时候。tomcat服务器会帮我们把jsp页面翻译成一个java源文件。并且对它进行编译成为.class文件
page指令 <%@ page attribute=“value” %>
buffer 指定out对象使用缓冲区的大小 autoFlush 控制out对象的 缓存区 contentType 指定当前JSP页面的MIME类型和字符编码 errorPage 指定当JSP页面发生异常时需要转向的错误处理页面 isErrorPage 指定当前页面是否可以作为另一个JSP页面的错误处理页面 extends 指定servlet从哪一个类继承 import 导入要使用的Java类 info 定义JSP页面的描述信息 isThreadSafe 指定对JSP页面的访问是否为线程安全 language 定义JSP页面所用的脚本语言,默认是Java session 指定JSP页面是否使用session isELIgnored 指定是否执行EL表达式 isScriptingEnabled 确定脚本元素能否被使用
include指令
<%@ include file=“文件相对 url 地址” %> JSP可以通过include指令来包含其他文件。被包含的文件可以是JSP文件、HTML文件或文本文件。包含的文件就好像是该JSP文件的一部分,会被同时编译执行。
target <%@ taglib uri=“uri” prefix=“prefixOfTag” %> JSP API允许用户自定义标签,一个自定义标签库就是自定义标签的集合。 Taglib指令引入一个自定义标签集合的定义,包括库路径、自定义标签。
jsp脚本(不常用) 作用:可以给jsp翻译出来的java类定义属性和方法甚至是静态代码块,内部类等
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %><%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2021/1/16
Time: 12:45
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%!
private Integer id;
private String name;
private static Map<String,Object> map;
static {
map = new HashMap<String,Object>();
map.put("a",1);
}
public int abc(){
return 12;
}
public static class A{
private Integer id = 12;
private String abc = "abc";
}
%>>
</body>
</html>
jsp表达式脚本(常用) <%%=表达式> 特点
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %><%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2021/1/16
Time: 12:45
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%!
private static Map<String,Object> map;
%>
<%=12%><br>
<%=12.12%><br>
<%="我是字符串"%><br>
<%=map%>
<%=request.getParameter("passoword")%>
</body>
</html>
jsp代码脚本 作用:可以在jsp页面中,编写我们自学需要的功能。 代码脚本的特点是:
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %><%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2021/1/16
Time: 12:45
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body >
<table border="1" cellspacing="0">
<%
for(int i = 0;i < 10;i ++){
%>
<tr>
<td>第<%=i%>个数字</td>
</tr>
<%
}
%>
</table>
</body>
</html>
JSP隐含对象
jsp四大域对象
域对象是可以像Map一样存取数据的对象。四个域对象功能一样,不同的是他们对数据的存取范围。
使用顺序 pageContext->request->session->application
静态请求和动态请求 静态请求: 动态请求:<jsp:include page=“相对 URL 地址” flush=“true” />
动态请求原理:JspRuntimeLibrary.include(request,response,”/include/footer.jsp”,out,false)
它是在JSP文件被转换成Servlet的时候引入文件,而这里的jsp:include动作不同,插入文件的时间是在页面被请求的时候。
监听器
ServletContextListener监听器 可以坚挺ServletContext对象的创建和销毁 ServletContext对象在web工程启动的时候创建,在web工程停止的时候销毁 监听到创建和销毁之后都会分别调用ServletContextListener监听器的方法反馈
使用步骤如下
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/168816.html原文链接:https://javaforall.cn