JSP入门笔记

JSP概述及执行流程

Servlet的缺点

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

JSP介绍

  • JSP的全程为(Java Server Pages) 为Java服务器页面
  • JSP是J2EE的功能模块,由Web服务器执行
  • JSP将静态的HTML和动态的Java解耦,降低了***页开发的难度

JSP的特点

  • JSP使用简单
  • JSP将Java代码与HTML分离,降低了开发难度
  • JSP的本质就是Servlet
  • 所有JSP页面的扩展名必须是.jsp
  • JSP页面应该放在web应用程序目录下

JSP页面示例

要求:
A公司的薪资底薪为1500元,
工作五年内的员工每年工资上浮150元
工作五到十年的员工从第六年起每年工资上浮300元
工作十年以上的员工从第十一年起每年工作上浮450元
要求罗列出30年以内的员工基本薪资状况

JSP程序如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<table>
    <tr>
        <th>year</th>
        <th>salary</th>
    </tr>
    <%
        for (int i = 0; i <= 30; i++) {
            out.println("<tr>");
            out.println("<td>" + i + "</td>");
            int sal = 1500;
            if (i <= 5) {
                sal = sal + 150 * i;
            } else if (i > 5 && i <= 10) {
                sal = sal + 150 * 5 + (i - 5) * 300;
            } else {
                sal = sal + 150 * 5 + 5 * 300 + (i - 10) * 450;
            }
            out.println("<td>" + sal + "</td>");
            out.println("</tr>");
        }
    %>
</table>
</body>
</html>

显示结果为:


JSP的执行过程


当浏览器客户端向Tomcat服务器发出请求,首先会将JSP转译为Servlet源代码,然后和Servlet的执行过程就一样了。JSP的转译过程实际上就是将JSP页面中的HTML代码转变为out.println()输出出去,所以我们说JSP的本质就是Servlet。

JSP基本语法

JSP的语法十分简单,按照功能可以分为以下四种:

  1. JSP代码块
  2. JSP生命构造块
  3. JSP输出指令
  4. JSP处理指令
JSP代码块
  • JSP代码块用于在JSP中嵌入Java代码
  • JSP代码块语法:<%Java代码%>
JSP声明构造块
  • JSP声明构造块用于声明变量或方法
  • JSP声明构造块语法:<%! 声明语句%>
  • 例如:<%! public int add(int a,int b){return a + b;} %>
JSP输出指令
  • JSP输出指令用于在JSP页面中显示Java代码执行结果
  • JSP输出指令语法:<%= Java代码%>
  • 例如:<%= "<b>" + name + "</b>" %>
JSP处理指令
  • JSP处理指令用于提供JSP执行过程中的辅助信息
  • JSP处理指令语法:<%@ jsp指令%>
  • 例如:<%@ page import="java.util.*" %>

JSP常用的处理指令:

  • <%@ page %> 定义当前JSP页面全局设置
  • <%@ include %> 将其他JSP页面与当前JSP页面合并
  • <%@ taglib %> 引入JSP标签库

JSP中的注释

  • <%-- 注释 --%> JSP注释,被注释的语句不做任何处理
  • // 、 /*...*/ 用于注释<%%>java代码,被注释的代码不被执行
  • 普通的HTML注释,被注释的语句不会被浏览器解释

综合案例

列出1000以内的质数
要求一:使用List保存所有有效的质数
要求二:将结果打印到页面,格式为"<h1>x为质数</h1>"

代码如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.util.List,java.util.ArrayList" %>
<%!
    public boolean isPrime(int num) {
        for (int i = 2; i < num; i++) {
            if (num % i == 0) {
                return false;
            }
        }
        return true;
    }
%>
<%
    List<Integer> list = new ArrayList<>();
    for (int i = 2; i <= 1000; i++) {
        if (isPrime(i)) {
            list.add(i);
        }
    }
%>
<%
    for (int p : list) {
%>
<h1 style="color:lightpink"><%= p%>是质数</h1>
<%
    }
%>

部分结果显示如下:


JSP页面重用

使用<%@include file="filePath"%> 可以达到JSP页面复用的效果;
示例:
web目录下创建include目录

include目录下的header.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
要闻|推荐|财经|娱乐

include目录下的footer.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<hr>
Copyright 1999-3000

复用了header与footer的news.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@include file="include/header.jsp"%>
<%
    out.println("<h1>好好学习,天天向上</h1>");
    out.println("<p>小明的妈妈告诉小明要好好学习,天天向上</p>");
%>
<%@include file="include/footer.jsp"%>

复用了header与footer的news2.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@include file="include/header.jsp"%>
<%
    out.println("<h1>天下无敌</h1>");
    out.println("<p>切格瓦拉偷电瓶天下无敌</p>");
%>
<%@include file="include/footer.jsp"%>
全部评论

相关推荐

SHC2:春招先狠狠投递,然后你看看能不能申请香港新加坡的一年制master,花不了多少钱,或者现在赶紧去刷一段实习。HR专业考研没必要
点赞 评论 收藏
分享
03-04 07:14
门头沟学院 C++
后测速成辅导一两个月...:老板:都给工作机会了还想要工资,哪来这么多好事
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
8359次浏览 76人参与
# 你的实习产出是真实的还是包装的? #
1545次浏览 39人参与
# MiniMax求职进展汇总 #
23601次浏览 305人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7292次浏览 40人参与
# 简历第一个项目做什么 #
31444次浏览 320人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
186719次浏览 1118人参与
# 米连集团26产品管培生项目 #
5419次浏览 213人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152195次浏览 887人参与
# 研究所笔面经互助 #
118827次浏览 577人参与
# 重来一次,我还会选择这个专业吗 #
433235次浏览 3926人参与
# 简历中的项目经历要怎么写? #
309862次浏览 4177人参与
# 面试紧张时你会有什么表现? #
30458次浏览 188人参与
# 你今年的平均薪资是多少? #
212899次浏览 1039人参与
# AI时代,哪些岗位最容易被淘汰 #
63173次浏览 784人参与
# 我的求职精神状态 #
447918次浏览 3128人参与
# 你最满意的offer薪资是哪家公司? #
76344次浏览 374人参与
# 正在春招的你,也参与了去年秋招吗? #
363045次浏览 2635人参与
# 你怎么看待AI面试 #
179691次浏览 1216人参与
# 牛客AI文生图 #
21390次浏览 237人参与
# 职能管理面试记录 #
10773次浏览 59人参与
# 网易游戏笔试 #
6422次浏览 83人参与
# 腾讯音乐求职进展汇总 #
160527次浏览 1109人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务