什么是 jsp,它有什么用?

jsp 的全换是 java server pages。Java 的服务器页面。
jsp 的主要作用是代替 Servlet 程序回传 html 页面的数据。
因为 Servlet 程序回传 html 页面数据是一件非常繁锁的事情。开发成本和维护成本都极高。

jsp的本质是什么。

jsp 页面本质上是一个 Servlet 程序。
当我们第一次访问 jsp 页面的时候。Tomcat 服务器会帮我们把 jsp 页面翻译成为一个 java 源文件。并且对它进行编译成为.class 字节码程序。

jsp的三种语法

jsp头部的 page指令

jsp 的 page 指令可以修改 jsp 页面中一些重要的属性,或者行为。

  1. <%@ **page contentType**="**text/html;charset=UTF-8**" **language**="**java**"%>

i. language属性 表示jsp翻译后是什么语言文件。暂时只支持java。
ii. contentType属性 表示jsp返回的数据类型是什么。也是源码中response.setContentType()参数值
iii. pageEncoding属性 表示当前jsp页面文件本身的字符集。
iv. import属性 跟java源代码中一样。用于导包,导类。

========================两个属性是给out输出流使用=============================
v. autoFlush属性 设置当out输出流缓冲区满了之后,是否自动刷新冲级区。默认值是true。
vi.buffer属性 设置out缓冲区的大小。默认是8kb
i. errorPage属性 设置当jsp页面运行时出错,自动跳转去的错误页面路径。
i. isErrorPage属性 设置当前jsp页面是否是错误信息页面。默认是false。如果是true可以获取异常信息。

ii.session属性 设置访问当前jsp页面,是否会创建HttpSession对象。默认是true。
iii. extends属性 设置jsp翻译出来的java类默认继承谁。
<%—isErrorPage=”true”开启就打内置对象中的exception对象—%>
出错了
<%
out.println(exception.getMessage());
%>

jsp中的常用脚本

<%—声明脚本—%>
<%!
private int age = 20;
private String name = “张三”;
private static Map map;
%>

<%!
static {
map = new HashMap<>();
map.put(“a”, “10”);
map.put(“b”, “20”);
map.put(“c”, “30”);
}
%>
<%!
public int abc() {
return 12;
}
%>

<%!
public static void show() {
int a = 10;
String b = “hello”;
}
%>

<%—表达式脚本—%>
<%=12.12 %>

<%=”dijia” %>

<%=”我是字符串” %>

<%=map%>

<%=request.getParameter(“username”)%>
<%=100 * 10%>

<%
int i = 12;
if (i == 12) {
%>

小明好帅


<%
} else {
%>

小明又骗人


<%
}
%>

<%—2.代码脚本——for 循环语句—%>


<%
for (int j = 0; j < 10; j++) {
%>



<%
}
%>
第 <%=j + 1%>行

<%—3.翻译后java 文件中_jspService 方法内的代码都可以写—%>
<%
String username = request.getParameter(“username”);
System.out.println(“用户名的请求参数值是:” + username);
%>