JSP本质就是Servlet
Java Server Pages
通常位于jsp页面的顶端,同一个页面可以拥有多个page指令
<%@ page 属性1=“属性值1” 属性2=“属性值2”...%>
属性:
language,指定jsp页面使用脚本语言,默认是java
import,通过该属性来引用脚本语言中使用到的类文件,默认值无
contentType,用来指定Jsp页面所采用的编码方式,默认值:text/html,ISO-8859-1
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="utf-8"%>
<%@ page import="java.util.*"%>
将一个外部文件嵌入到jsp页面中同时解析这个页面的jsp语句
include指令,(静态包含)被包含的文件被原封不动的插入到包含页面中使用该指令的位置,然后JSP编译器再对这个合成的文件进行编译,最终编译后的文件只有一个。 是在翻译阶段执行
<jsp:include> (动态包含)包含文件时,当该动作标识执行后,JSP程序会将请求转发到(注意不是重定向)被包含页面,并将执行结果输出到浏览器中,然后返回页面继续执行后面的代码,以为web容器执行的两个文件,所以JSP编译器会分别对这两个文件进行编译。 在请求处理阶段执行.
从表面上来看就是一个带参数一个不带参数
示例:
one.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>one</title>
</head>
<body bgcolor="<%=request.getParameter("bgcolor")%>">
这是页面1
</body>
</html>
two.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>two</title>
</head>
<body>
<jsp:include page="one.jsp">
<jsp:param name="bgcolor" value="red"/>
</jsp:include>
这是页面2
</body>
</html>
可以理解为直接插入到页面的位置
<html>
<head>
<title>two</title>
</head>
<body>
<html>
<head>
<title>one</title>
</head>
<body bgcolor="red">
这是页面1
</body>
</html>
这是页面2
</body>
</html>
使用标签库定义新的自定义标签,在jsp页面中启用定制行为
html注释<!--内容--> 客户端可见
jsp注释<%--内容--%> 客户端不可见
或者
<%
//注释
/*注释*/
%>
<%
out.println("大家好,我是个人练习生蔡徐坤!");
%>
<%!
String s="张三"; //声明变量
int add(int x,int y){ //定义函数
return x+y;
}
%>
<p>字符串内容为<%=s%></p>
<p>表达式的计算为<%=add(5,6)%></p>
用户第一次发起请求,jsp引擎将jsp转化为servlet,生成字节码文件并执行JspInit,之后执行JspService,如果不是第一次请求,则直接执行JspService
Jsp生成的Servlet常驻内存响应速度快,每一个请求生成一个新的线程来处理,要考虑线程同步的问题,并非线程安全
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。