jsp 基本语法和指令
使用之前要先要在maven 导入依赖包
<dependencies> <!-- Servlet依赖 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency> <!-- JSP依赖 --> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>javax.servlet.jsp-api</artifactId> <version>2.3.3</version> <scope>provided</scope> </dependency> <!-- JSTl表达式的依赖 --> <dependency> <groupId>javax.servlet.jsp.jstl</groupId> <artifactId>jstl-api</artifactId> <version>1.2</version> </dependency> <!-- standard标签库的依赖 --> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency> </dependencies>
1.jsp表达式和脚本片段:
代码:
<html> <body> <%-- jsp表达式 作用:用来将程序的输出,输出到客户端 <%= 变量或表达式%> --%> <%= new java.util.Date()%> <%--打印时间--%> <%--jsp脚本片段 作用:可以编写java程序 --%> <% int a = 10; String name = "xiaofu"; for (int i = 0; i < 10; i++) { } %> <%--在代码中嵌入html元素--%> <% for (int i = 0; i < 3; i++) { %><h1>666 <%=i%></h1><% } %> </body> </html>
2.jsp声明:
用法:<%! 代码 %>
<%--jsp声明--%> <%! static { System.out.println("loading servlet"); } private int NUM = 0; public void Max(){ System.out.println("进入了 Max方法"); } %>
jsp声明:会被编译到jsp生成的java的类中 其他的 就会被编译到jspService方法中 简单的来说就是作用域更高
3.jsp指令:
3.1.page指令
指定页面编码格式
<%@ pagecontentType="text/html;charset=GBK"%>
导入java包
<%@ pageimport="java.util.*, java.sql.*"%>
使用的语言
<%@ page language="java"%>
session管理
<%@ pagesession="true"%>
缓冲设置处理
<%@ pageisAutoFlush="true"%> <%@buffer="8kb"%>
3.2.include 指令:
包含文件: 设置统一的网站页面的格式:页脚,菜单,页眉
<%--包含了index.jsp文件 它的内容将会被加载--%>
<%@include file="index.jsp"%>
<h1>网页主体</h1>
<%--包含了xiao.jsp文件 它的内容将会被加载--%>
<%@include file="xiao.jsp"%>
可以包含任意文件(不区分文件后缀)的内容, 但在一个jsp中文件中只能有一 个 <html>,<head>,<body>, 只是将页面的内容静态的包含进来.
jsp标签 处理包含(一般用这个):
<jsp:includepage="uri"/>:先处理后包含 或者 <jsp: include page ="uri>
<%--包含了index.jsp文件 它的内容将会被加载--%> <jsp:include page="index.jsp"> <h1>网页主体</h1> <%--包含了xiao.jsp文件 它的内容将会被加载--%> <jsp:include page="xiao.jsp">
jsp标签包含 跟上面的区别在于 <jsp:include page="index.jsp"> 会加载<html>相当于嵌套了一个一个新的文件进去 而 <%@include file="index.jsp"%> 不会加载<html>标签 所以 相当于嵌套了也是整体的一个
页面转发: 页面内容跳转 , 地址栏没有跳转,这种跳转也属于服务器端跳转
<jsp:forward page= "uri">
<%--跳转到index.jsp这个页面--%> <jsp:forward page= "index.jsp">