天天看点

JavaWeb学习笔记 | 关于JSP

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中都可以获取到

继续阅读