















.jsp中两处注释都没有

但查看源码可发现客户端显示了html注释,没有显示jsp注释<%----%>,当单行注释或多行在<% %>片段时,客户端也无法看见。大多使用显示注释。


<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Scriptlet脚本小程序title>
head>
<body>
<%--第一种:Java脚本段。Java代码、定义局部变量、编写语句。--%>
<%
//定义局部变量
String str = "hello";
//输出内容到控制台
System.out.println(str);
//输出内容到浏览器
out.print(str);
//输出全局变量到浏览器
out.write("全局变量:"+num);
%>
<%--第二种:声明。声明全局变量、方法、类等--%>
<%!
//声明全局变量
int num = 10;
%>
<%--第三种:输出表达式,可以输出变量或字面量。注:str会在浏览器和控制台输出。--%>
<%=str%>
body>
html>
浏览器页面

控制台输出页面






动态包含文件中body里的内容


如果通过url传递路径,如下:

底部文件body中内容

特点
动态包含相当于方法的调用
动态包含会生成多个源码文件
可以定义同名变量
效率高,耦合度低
注意:当动态包含不需要传递参数时,include双标签之间不要有任何内容,包括换行和空格。
源码文件如下

源码文件内容如下

在JSP中提供了四种属性的保存范围,所谓的属性保存范围,指的就是一个设置的对象,可以在多少个页面中保存并可以继续使用

后无效
主页面body内容

跳转页面的body内容

服务端跳转(forward)时page范围的取不到,
超链接跳转时如下,服务端跳转有效,点击跳转,进行客户端跳转后失效,故request范围的值取不到

在浏览器另一窗口重新开启相同页面,session有效,关闭浏览器再次开启相同页面,无效。类似于登录一个网站后,打开多个网页,都显示已登录的情况。

login.jsp

LoginServlet.java


index.jsp

缺陷

用EL表达式后null变为空字符串,即null消失


作用:简化jsp
格式:${}
操作对象:一般是域对象,不能操作局部变量
操作范围:page范围,request范围,session范围,application范围
注意:如果EL表达式获取域对象的值为空,默认显示为就哦那个字符串;EL表达式默认从小到大范围去找,找到即可,如果四个范围都未找到,则显示空字符串。

代码

输出页面










快捷键out+insert,点箭头所示得到get和set函数,点constructor得到构造函数














