#JSP 热更新

之前写 Java Servlet 的时候,每写一个就要重新启动一次tomcat,麻烦死,终于到jsp这里可以热更新了。

Deployment的界面里选带exploded后缀的。

Deployment界面

然后在Server界面,把On 'Update' action:On frame deactivation:改掉,重启就可以了。

Server界面

我这样配了之后不生效,找了半天原因,发现重启就可以了,唉 ╮(╯▽╰)╭

#JSP 语法

1
2
3
4
<%----%>
<%%>
<%=%>
<%!%>

#JSP 指令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<%--
Created by IntelliJ IDEA.
User: onns
Date: 2020/9/10
Time: 12:11 AM
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>
<%@include file="common/header.jsp"%>
<h1>Main!</h1>
<%@include file="common/footer.jsp"%>
</body>
</html>

#相关错误页

1
2
3
4
5
6
7
8
<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>

#JSP 本质

JSP的本质是,在访问某一个比如hello.jsp页面的时候,tomcathello.jsp文件生成了hello.java文件,并编译成hello.class文件,最终被tomcat所解析,然后返回给浏览器。

#JSP 内置对象

  • PageContext 存东西
  • Request 存东西
  • Response
  • Session 存东西
  • Application (ServletContext) 存东西
  • Config (ServletConfig)
  • Out
  • Page
  • Exception
1
2
3
4
pageContext.setAttribute("nameCon","Con"); // 保存的数据只会在一个页面中有效
request.setAttribute("nameReq","Req"); // 保存的数据只会在一次请求中有效,请求转发会携带这个数据
session.setAttribute("nameSes","Ses"); // 保存的数据只会在一次会话中有效,从打开浏览器到关闭浏览器
application.setAttribute("nameApp","App"); // 保存的数据会在服务器运行时一直有效,从打开服务器到关闭服务器

#相关链接