常用语法
以下所有代码都是在<body>标签中写的:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
</body>
</html>
jsp表达式语法
<%--
jsp表达式语法: <%= 变量或表达式%>
--%>
<%=new java.util.Date() %>
脚本片段
<%
int[] sun = {1,2,3};
for(int item: sun) {
out.print("<h1>"+item+"</h1>");
}
%>
脚本片段的实现
<%
int n = 1;
%>
<p>------------</p>
<%
out.print(n);
%>
在代码中嵌入html标签
<%
for(int item : sun) {
%>
<h3><%= item%></h3>
<%
}
%>
jsp声明(定义全局方法、变量)- 最后编译它会被放到类下边,除了jsp声明,其他的都被放到
_jspService 方法里边
<body>
<%--全局方法, jsp声明的方法、变量等等都会放到类的下边,而不会放到方法中去--%>
<%!
public String getString(String name) {
return name.toLowerCase();
}
%>
<h1><%=getString("lxc")%></h1>
</body>
会存放在类的下边:
其他的都会被放到 _jspService方法里边:
常用指令
1、<%@page kay=value %> 可定制页面
<!--index.jsp-->
<!--当index.jsp页面发生错误时,会渲染error下的500.jsp页面-->
<%@page errorPage="error/500.jsp" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<h1><%=1/0%></h1>
</body>
</html>
500.jsp 页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>这是自定义500错误页面!</h1>
</body>
</html>
目录结构如下:
这里补充下,想指定某个文件是404或500,也可以在web.xml中去配置:
<!--web.xml-->
<!--
/:代表本应用web目录下
自定404或500页面,这样就不需要在每个jsp页面都指定错误页面了
-->
<error-page>
<error-code>404</error-code>
<location>/error/404.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error/500.jsp</location>
</error-page>
2、<%@page import="java.util.xxx" %> 导入java某个包
<!--导入java包-->
<%@ page import="java.util.Date" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page errorPage="error/500.jsp" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<h1><%=new Date()%></h1>
</body>
</html>
3、页面复用
写法一:会将两个页面合为一个页面;写法二:会动态的拼接页面,本质上还是3个页面。
<body>
<!--写法一-->
<%@include file="common/top.jsp"%>
<h3>页面的主体</h3>
<%@include file="common/footer.jsp"%>
<!--写法二 jsp标签语法(推荐使用)-->
<jsp:include page="/common/top.jsp" />
<h3>页面主体</h3>
<jsp:include page="/common/footer.jsp" />
</body>
jps内置对象
编译完的源码中,我们会看到几个jsp对象,在jsp页面中可以直接使用:
ctx.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<!--存储数据-->
<%
pageContext.setAttribute("name", "lxc1");
application.setAttribute("name", "lxc2");
request.setAttribute("name", "lxc3");
%>
</head>
<body>