JSP

JSP

JSP全称为JAVA Servlet Page,即Java服务器页面,是J2EE的功能模块由Web服务器执行。JSP的使用使得Java代码与HTML分离并降低Servlet对前台页面的开发难度,但是JSP的本质还是Servlet。

JSP的执行过程

在这里插入图片描述
JSP在本质上是Servlet,所以在浏览器发起访问请求后,会将JSP页面转译为Java代码,在Java文件转译为Class文件,最后将输出的结果返回给浏览器。
通过查看idea编译之后的文件可以发现,写好的JSP文件会直接转译为_jsp.java文件。
在这里插入图片描述
打开该文件查看_jspService()方法,可以看到在JSP中书写的HTML标签会自动转为out.write(...),JSP中的Java代码依旧保持不变。
在这里插入图片描述
_jsp.java文件通过编译成为字节码文件,最后将结果返回给浏览器,从而实现对页面的输出。

idea编译后的文件路径可查看控制台中打印的日志
Using CATALINA_BASE: "C:\Users\Administrator\.IntelliJIdea2018.3\system\tomcat\Tomcat_8_5_0_myJSP"

JSP基本语法

JSP代码块

用于书写Java逻辑,语法与Java相同,以<%开始,%>结束。例如:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>sum</title>
</head>
<body>
    <%
        int sum = 0;
        for (int i = 1; i <= 100; i++) {
            sum += i;
        }
    %>
    <%="<p>sum=" + sum + "</p>"%>
</body>
</html>

JSP声明构造块

用于声明变量或方法,以<%!开始,%>结束。

JSP输出指令

用于在JSP页面中显示JAVA代码的执行效果,以<%=开始,%>结束。

JSP处理指令

用于提供JSP执行过程中的辅助信息,以<%@开始,%>结束。
常用的指令有:

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

JSP中的注释

  • <%-- --%>:JSP注释,被注释语句不做任何处理
  • //、/*...*/:用于注释JSP代码块中的Java代码,被注释的代码不执行
  • <!-- -->:HTML注释,被注释的语句不会被浏览器解析

示例:获取1000以内的素数并打印在页面上

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>JSPTest</title>
</head>
<body>
	<!-- 声明代码块,声明isPrime()函数 -->
	<%!
		boolean isPrime(int num){
			boolean flag = true;
			for(int j = 2 ; j < num ; j++){
				if(num % j == 0){
					flag = false;
					break;
				}
			}
			return flag;
		}	
	%>
	<%
		// JSP代码块,用于处理Java逻辑
		List<Integer> primes = new ArrayList();
		for(int i = 2 ; i<=1000 ; i++){
			boolean flag = isPrime(i);
			
			if(flag == true){
				primes.add(i);
			}
		}
	%>
	<%
		for(int p : primes){
	%>
		<%-- JSP输出代码块,将p输出到页面 --%>
		<h1 style="color:red;"><%=p %>是质数</h1>
	<%
		}
	%>
</body>
</html>

应为JSP本质上是Servlet,所以Java代码逻辑可以断开,中间再书写HTML代码,使得代码的可维护性大大提高。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值