1.JSP的概述
1.JSP是简化Servlet编写的一种技术,将Java代码和HTML语句混合在同一个文件中编写。只对网页中的要动态产生的内容采用java编写。而对静态内容采用普通静态HTML页面来编写。
2.JSP简单来说就是在HTML页面中编写Java代码的页面,其文件的扩展名为.jsp
3.JSP中编写Java代码的位置
在body节点内:<% java代码 %>
Demo:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
System.out.println("hello world");
%>
</body>
</html>
4.JSP文件可以放置在WEB应用程序中的除了WEB-INF及其子目录外的其他任何目录中,JSP页面的访问路径与普通HTML页面的访问路径形式也完全一样。
2.JSP的运行原理
其本质上是一个Servlet
每个JSP页面在第一次访问时,JSP引擎将它翻译成一个Servlet源程序,然后把这个Servlet源程序编译成Servlet的class类文件,然后再由WEB容器(Servlet引擎)像调用普通Servlet程序一样的方式来装载和解释执行这个由JSP页面翻译成的Servlet程序。
3.JSP页面的隐含变量
1.含义
没声明就可以使用的对象(实际上在该jsp的对应servlet文件中自动定义了)
2.隐含变量(9个)
1.request:HttpServletRequest对象(常用)
2.response:HttpServletResponse对象(在jsp页面几乎用不到)
3.pageContext:页面上下文,是pageContext的一个对象,可以从该对象中获取其他8个对象,也可以从中获取到当前页面的其他信息(学习自定义标签时使用它)
4.session:代表浏览器和服务器的一次会话,是HttpSession的一个对象(常用)
5.application:代表当前WEB应用,是ServletContext对象(常用)
6.config:当前jsp对应的Servlet的ServletConfig对象(开发的时候几乎不使用,只做了解)
它包含了当前JSP/Servlet所在的WEB应用的配置信息,若需要访问当前jsp配置的初始化参数,需要通过映射才可以
<servlet>
<servlet-name>hellojsp</servlet-name>
<jsp-file>当前需要设置的jsp的路径</jsp-file>
</servlet>
7.out:JspWriter对象,调用out.println()
可以直接把字符串打印到浏览器上(换行不了)(常用)
要换行可以out.println(html中的换行标签)
例如out.println("<br>");
8.page:指向当前jsp对应的Servlet对象的引用,但为Object类型,只能调用Object类方法(几乎不用)
9.exception:用于捕获JSP抛出的异常。它只有在JSP页面属性isErrorPage=true
时才可用
声明方法如下:<%@ page isErrorPage = "true" %>
上述变量在jsp页面都可以直接使用。
3.作用域的范围从小到大排序
pageContext,request,session,application,out,response,config,page,exception
4.JSP语法
1. 模板元素
JSP页面中的静态HTML内容
2. JSP表达式
提供将一个java变量或表达式的计算结果输出到客户端的简化方式。它将要输出的变量或表达式直接封装在<%= 和%>
之中。
例如:
<%
Date date = new Date();
out.print(date);
out.print("<br>");
%>
<!-- JSP表达式 -->
<%= date %>
<!-- 两者是等价的-->
3. JSP脚本片段
是指嵌套在<% 和%>
之中的一条或多条Java程序代码。
多个脚本片段可以相互访问。
4. jsp声明(在jsp页面中几乎不用)
JSP声明将Java代码封装在<%! 和 %>
之中,它里面的代码将被插入进Servlet的_jspService方法的外面。
5. jsp注释
格式:<%-- 注释信息 --%>
JSP注释和HTMl注释()的区别:
JSP注释能够注释Java代码,而HTML只能注释HTML语句。
5.与属性相关的方法
1. 方法
Object getAttribute(String name):获取指定的属性
Enumeration getAttributeNames():获取所有的属性的名字组成的Enumeration对象
removeAttribute(String name):移除指定的属性
void setAttribute(String name,Object o):设置属性
2. 域对象
pageContext,request,session,application对象都有这些方法
这四个对象也称为域对象
pageContext:属性的作用范围仅限于当前JSP页面
request:属性的作用范围仅限于同一个请求
session:属性的作用范围仅限于一次会话,浏览器打开直到关闭称之为一次会话,前提是在此期间会话不失效
application:属性的作用范围仅限于当前WEB应用,是范围最大的属性作用范围,只要在一处设置属性,在其他各处的JSP或Servlet中都可以获取到
网友评论