2.1 JSP指令
既然我们发现JSP文件被转换成了一个普通的servlet,那你就可以在里面写普通的Java代码了。在此 Java 代码中,您可以使用各种类(示例中的数学)。这更好!但是我们可以看到所有的代码都被移到了一个doGet()
servlet 方法中。这立即引发了几个问题:
- 如何使代码移动到方法中
doPost()
? - 如何将自己的代码添加到方法中
init()
? - 到底如何注册类导入?
很好的问题,当然,他们有答案 - JSP 指令。JSP 中的所有非 HTML 代码都必须用特殊的方括号<%
和%>
. 所有 JSP 指令都由一个模板给出:
<%@ directive %>
以下是最流行的页面指令属性列表:
例子 | 描述 | ||
---|---|---|---|
1个 | 进口 | <%@ page import="java.util.Date" %> |
导入一个类 |
2个 | 内容类型 | <%@ page contentType=text/html %> |
设置内容类型 |
3个 | 延伸 | <%@ page extends="Object" %> |
您可以设置基类 |
4个 | 信息 | <%@ page info="Author: Peter Ivanovich; version:1.0" %> |
为 getServletInfo() 设置数据 |
5个 | 缓冲 | <%@ page buffer="16kb" %> |
设置响应缓冲区的大小 |
6个 | 语言 | <%@ page language="java" %> |
指定语言,默认为Java |
7 | 被忽略 | <%@ page isELIgnored="true" %> |
允许您禁用 EL 脚本 |
8个 | 是线程安全的 | <%@ page isThreadSafe="false" %> |
指向线程安全 |
9 | 自动冲洗 | <%@ page autoFlush="false" %> |
管理缓冲区写入 |
10 | 会议 | <%@ page session="false" %> |
您可以禁用该页面的会话 |
十一 | 页面编码 | <%@ page pageEncoding="UTF-8"%> |
可以设置页面编码 |
12 | 错误页面 | <%@ page errorPage="errorpage.jsp" %> |
你可以设置一个错误页面 |
2.2 进口
为了好玩,让我们向 JSP 文件添加一些导入并定义一个基类。
JSP 文件示例:
<%@ page import="java.util.Date" %>
<%@ page import="java.lang.Math" %>
<%@ page extends="com.codegym.MyHttpServlet" %>
<html>
<body>
<%
double num = Math.random();
if (num > 0.95) {
%>
<h2>You are lucky, user!</h2><p>(<%= num %>)</p>
<%
}
%>
</body>
</html>
这就是它的结果:
import java.util.Date;
import java.lang.Math;
public class HelloServlet extends com.codegym.MyHttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws Exception {
PrintWriter out = response.getWriter();
out.print("<html> ");
out.print("<body> ");
double num = Math.random();
if (num > 0.95) {
out.print("<h2> You're lucky, user! </h2> <p> (" + num + ")</p> ");
}
out.print("</body> ");
out.print("</html> ");
}
}
作品。伟大的!
GO TO FULL VERSION