理解JSP

2017-02-04  本文已影响205人  maxwellyue
jsp.png

1、JSP基本概念

1.1 JSP是什么

1.2 JSP的组成

1.3 JSP的语法

<!--JSP指令-->
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>JSP示例</title>
  </head>
  
  <body>
<!-- java语句:不会输出到客户端,而是在服务器端的控制台打印 -->
    <%
        String s1 = "hello jsp";
        System.out.println(s1);
    %>

<!--在类中添加方法或成员-->
    <%!
        private String name;
        public String hello() {
            return "hello JSP!";
        }
    %>

<!-- Java表达式 :直接输出到客户端浏览器上-->
    <br/>
    <%="你好" %><br/>
    <br/>
  </body>
</html>

也可以在JSP页面中使用html注释:``,但这个注释在JSP编译成的.java中是存在的,它不会被忽略,而且会被发送到客户端浏览器。

2、JSP的原理

jsp页面第一次被访问→服务器jsp编译成java文件(servlet类)→.java编译成.class→创建该类对象
→调用该类service()方法→第二次请求同一jsp时,直接调用service()方法。

3、JSP指令

3.1、page指令的属性

3.2、include指令

3.3、taglib指令

JSP页面中使用第三方的标签库时,需要使用taglib指令来导包。例如:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
其中prefix表示标签的前缀,这个名称可以随便起。uri是由第三方标签库定义的。

4、JSP九大内置对象

在JavaWeb中一共四个域对象,其中Servlet中可以使用的是request、session、application三个对象,而在JSP中可以使用pageContext、request、session、application四个域对象。pageContext的范围是当前页面,它的范围也是四个域对象中最小的!

5、JSP动作标签

include指令是在编译级别完成的包含,即把当前JSP和被包含的JSP合并成一个JSP,然后再编译成一个Servlet。
include动作标签是在运行级别完成的包含,即当前JSP和被包含的JSP都会各自生成Servlet,然后在执行当前JSP的Servlet时完成包含另一个JSP的Servlet。它与RequestDispatcher的include()方法是相同的!

6、EL表达式

EL(Expression Language)是一门表达式语言,它对应<%=…%>。在JSP中,表达式会被输出,所以EL表达式也会被输出。

7、JSTL标签库

JSTLapacheEL表达式的扩展(也就是说JSTL依赖EL),JSTL是标签语言,JSTL标签的使用与JSP动作标签一样,只不过它不是JSP内置的标签,需要我们自己导包,以及指定标签库而已!

7.1 JSTL标签库

JSTL一共包含四大标签库:

7.2 core标签库常用标签

7.3 自定义标签(待补充)

8、常见问题

JSP是Servlet技术的扩展,是Servlet的简易实现方式。JSP编译后是类servlet。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。实际应用中采用Servlet来控制业务流程,而采用JSP来生成动态网页

上一篇 下一篇

猜你喜欢

热点阅读