JSP是什么?
1.JSP(JavaServer Page) java服务器页面,所以这个是一个类似html页面的文件,但又不是,后缀为index.jsp
可以干啥?
1.首先可以写html静态页面的代码,其次使用标识符可以书写Java代码(很牛逼),还有就是jsp标记,这三部分组成.所以我们猜到这个jsp可以实现动态网页技术,因为内嵌了java代码,所以十分灵活的动态生成html元素,也就可以和后台实现数据绑定显示.
JSP运行机制
1.为什么html页面可以写java代码呢?首先当你编写好一个index.jsp文件时,tomcat服务器内置的jsp编译器会将其编译成.java的java源文件,然后通过javac编译成字节码文件,最后运行到jvm虚拟机上(原来如此)如果你想看这个jsp生产的java文件和字节码文件,可以去tomcat安装目录下的work下寻找.
2.当你看其生成的java代码时,你会发现这个类继承了HttpJspBase这个类,这个类继承了HttpServlet类,所以jsp本质上就是servlet程序,因为都实现了Servlet接口,而且jsp中有_jspService()方法来处理请求和响应,servle中有service(),也有生命周期方法
我们怎么去使用
1.书写Java代码—> 使用<% java代码%>就行了
<h1><% System.out.println("程序逸最帅!!!")%></h1>
2.如果我们想显示值怎么办?
继续贴代码:
<% String s="你今天学java了吗?"%>
<h1><%=s%></h1>
这里使用<%= 有返回值的表达式%>
3.如果想定义方法呢?来吧,继续满足你:
<%! public void m1(){System.out.println("你好,程序逸")}%>
使用<%! 定义的方法%>
如果你去看那生产的java代码,会发现这个声明的方法和变量会被定义成成员方法和变量.
JSP还有三大指令
1.page指令:
指令名称 | 作用 |
---|---|
page | 用来描述当前jsp文件的页面信息属性解析 |
language=“java” | 代表Jsp文件内嵌入的脚本语言为java |
contentType=“text/html; charset=UTF-8” | 最终Jsp文件中的内容会在编译后的java类中,通过流的形式响应出去,所以需要指定响应数据的类型及编码格式 |
pageEncoding=“UTF-8” | 代表当前页面的编码格式 |
import | 用于在Jsp文件内部导入外界的Java类或者接口 |
errorPage | 指定跳转的错误页面路径。这个属性的作用很大程度上其实就是为了代码调试!错误页面需要设置isErrorpage=true |
session | 代表当前的jsp页面是否支持会话,默认值为true,如果改为了false,代表不支持会话,那么该页面将无法获取会话中存储的共享数据! |
2.include指令:可以实现页面包含,一个jsp页面内可以包含另外一个jsp文件中的内容!如果学过C#的话,类似,模板页和子页
3.taglib指令:导入在Jsp中操作页面需要用到的标签库!
prefix:为标签设置一个前缀别名,来区分标签的
uri:导入的标签库的路径.
JSP中的El表达式
1.使用El表达式让jsp书写更简单
2.使用方法:
${表达式}
3.注意事项:当我们获取域对象时,首先判断其范围:
域对象名称和对应使用的对象 | 作用范围依次变大 |
---|---|
pageContext—>(pageScope) | 1 |
request—>requestScope | 2 |
session—>sessionScope | 3 |
application—>applicationScope | 4 |
因为当我们要获取多个域对象中设置的相同关键字的值时,没有指定域对象类型,那么会先从小的访问进行查找.