介绍

本章我们主要了解JSP的用途和基本语法

  • 了解JSP的用途
  • 了解JSP执行原理
  • 掌握JSP基本语法

JSP 全称是(Java Server Pages),Java服务器页面,JSP是J2EE的功能模块,有Web服务器执行,JSP的作用就是降低动态网页开发难度.

为什么要用到JSP,主要解决Servlet的痛点,我们知道Servlet在响应时,返回html是需要进行拼接,而这种拼接,会相当麻烦.JSP解释解决这种痛点,继续往下看.

Servlet 痛点

image.png

在上述的代码中,我们请求Servlet,如果我们要返回一个html页面,那么就需要out.println各种拼接,甚至会出现混乱,无法维护的情况,试想一下,如果我们要用上述的形式写一个淘宝首页,你是不是会直接崩溃掉,,,,……

Servlet的缺点

  • 静态HTML与动态Java代码混合在一起,难以维护
  • Servlet利用out.println()语句输出,开发效率低下
  • Eclipse很难在开发过程中发现错误,调试困难

将静态的脚本和动态的代码,区分开使程序更加容易维护

JSP的特点

  • JSP使用简单,学习成本低
  • JSP可将Java代码与HTML分离,降低开发难度
  • JSP的本质就是Servlet

我们现看一下JSP的执行过程,如下图:

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

<%= %>标签内不需要添加分号
<% %>代码脚本中需要语句后面需要增加分号
image.png
如下代码,在WebContent下面创建一个jsp文件,如下基本的jsp代码,其实和我们写Java和Html没有什么区别

  1. <%@page contentType="text/html; charset=UTF-8" %>
  2. <%
  3. int x = -5;
  4. int y = 0;
  5. if(x < 0){
  6. y = -1;
  7. }else if(x == 0){
  8. y = 0;
  9. }else{
  10. y = 1;
  11. }
  12. %>
  13. <div style="text-align: center;">
  14. <p>当x<0时,输出</p>
  15. <p>x=<%=x %></p>
  16. <p>y=<%=y %></p>
  17. </div>

我们还可以在JSP中声明方法,调用变量,以及导入其他JSP文件复用相同的页面等.

  1. <%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <%
  4. List<String> list = new ArrayList<>();
  5. list.add("JSP基础入门");
  6. list.add("Servlet视频详解");
  7. list.add("EL表达式初识");
  8. list.add("JSTL标签库初识");
  9. %>
  10. <% for(int i=0;i<list.size();i++){ %>
  11. <p>第 <%=i+1 %> 条: <%=list.get(i) %></p>
  12. <% } %>
  13. <%@ include file="prime.jsp" %>
  14. <%! public void test(){
  15. }
  16. %>

综上所述,JSP方便了我们将HTML代码独立出来,而不用在Servlet中手撕HTML代码了. 其实JSP就是将这个过程给省掉了,JSP在内部转换成了Servlet,而不用我们在手动去创建Servlet和手撕HTML拼接代码了.