回到首页☞
JSP就像PHP一样没落在历史长河中,目前只是了解下JSP,毕竟有些老项目可能有。
所有技术的出现都是为了解决具体问题的,Servlet是为了让静态HTML编程动态的。
但是逐行out.println()会头晕,很难编程。
JSP的出现就是借助一些API,标签可以组装HTML+Java代码,其实现在看是非常不好的,前端和逻辑做了高度耦合。
目前rest+html是主流方案,真正做到了前后端分离。
JSP是另一种形式的Servlet,执行JSP时Tomcat自动编译,对开发者透明
1、JSP概述
JSP-Java Server Page,是简化Servlet的工作而出现的替代品。
JSP包括很多技术:
- Java Bean
- 自定义标签 Custom Tags
- EL表达式 Expression Language 现在JSP不在用了,但是EL表达式随处可见。
- JSTL标准标签库 Java Standard Tag Library等。
这些强大成熟的技术使得JSP在视图层View Tier有很大优势。
2、显示问候语
<%@ page import="java.util.Calendar" %>
<%@ page import="java.util.Locale" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
Locale locale = request.getLocale();
Calendar calendar = Calendar.getInstance(locale);
int hour = calendar.get(Calendar.HOUR);
String greeting = "";
if (hour <= 6) {
greeting = "凌晨好.";
} else if (hour <= 9) {
greeting = "早晨好.";
} else if (hour <= 12) {
greeting = "上午好.";
} else if (hour <= 18) {
greeting = "下午好.";
} else if (hour <= 24) {
greeting = "晚上好.";
}
%>
<html>
<head>
<title>My First Page</title>
</head>
<body>
<center><h3><%=greeting%>
</h3></center>
</body>
</html>
一个技术的核心说白了就包含几个点:
- 语法 例如上面的 <%%>和普通java的不同点。
- API或者工具
- shell 宿主,运行或者编译环境
JAVA技术的核心问题,还是需要哪些jar,版本对应关系和各个组件如何配置问题。
从上面看JSP特色就是 JAVA+大段的HTML,书写起来确实方便了很多。
工作原理
C:\Users\Administrator.IntelliJIdea2018.2\system\tomcat\index_jsp_HelloWorld\work\Catalina\localhost\FirstWeb\org\apache\jsp
- index_jsp.class
- index_jsp.java
看下运行地址,会发现不同,JSP是先部署后编译。
在第一次请求的时候编译。
生命周期
几乎和servlet一样,因为它也是特殊的Servlet。