JSP(Java Server Pages)

发布于:2023-01-16 ⋅ 阅读:(700) ⋅ 点赞:(0)

目录

1.JSP概述

1.1什么是JSP

1.2JSP的组成

2.JSP语法

2.1 JSP脚本 

2.2 内置对象out

2.3 多个<%...%>可以通用

3.JSP的原理  

3.1JSP是特殊的Servlet

3.2JSP注释

4.JSP指令

4.1JSP指令概述

4.2page指令

4.3taglib指令

5.JSP九大内置对象

6.JSP动作标签

6.1JSP动作标签概述

6.2常用的JSP动作标签


1.JSP概述

1.1什么是JSP

  JSP(Java Server Pages)是JavaWeb服务器端的动态资源 。它与html页面的作用是相同的,显示数据和获取数据 。

1.2JSP的组成

JSP = html + Java脚本(代码片段) + JSP动态标签

 

 

2.JSP语法

2.1 JSP脚本 

  JSP脚本就是Java代码片段,它分为三种:

  • <%...%>:Java语句;

  • <%=…%>:Java表达式;

  • <%!...%>:Java定义类成员;

<%@ page language="java"   import="java.util.*"   pageEncoding="UTF-8"  %>
<!DOCTYPE HTML>
<html> 
    <head>	
        <title>JSP演示</title> 
    </head>  
    <body>  
        <h1>JSP演示</h1>  
        <%  	
           // Java语句  	
           String s1 = "hello jsp";  	
           // 不会输出到客户端,而是在服务器端的控制台打印  	
           System.out.println(s1);  
         %> 
          <!-- 输出到客户端浏览器上 -->  
          输出变量:<%=s1 %><br/>  
          输出int类型常量:<%=100 %><br/>  
          输出String类型常量:<%="你好" %><br/>  <br/> 
       </body>
</html>

2.2 内置对象out

  out对象在JSP页面中无需创建就可以使用,它的作用是用来向客户端输出。

 <body>  
     <h1>out.jsp</h1>	
     <%
        //向客户端输出		
        out.print("你好!");	
     %> 
</body>

其中<%=…%>与out.print()功能是相同的!它们都是向客户端输出,例如:

<%=s1%>等同于<% out.print(s1); %>

<%=”hello”%>等同于<% out.print(“hello”); %>,也等同于直接在页面中写hello一样。

2.3 多个<%...%>可以通用

  在一个JSP中多个<%...%>是相通的。

<body>  
    <h1>表格</h1>		
    <table border="1" width="50%">		
        <tr>			
            <th>序号</th>			
            <th>用户名</th>			
            <th>密码</th>		
        </tr>	
        <%		    
           for(int i = 0; i < 10; i++) {
        %>		
        <tr>			
            <td><%=i+1 %></td>			
            <td>user<%=i %></td>			
            <td><%=100 + 1 %></td>		
        </tr>	
        <%		
           }	
        %>	
  </table> 
</body>

(多个 <%...%>是相通循环打印表格。)

3.JSP的原理  

3.1JSP是特殊的Servlet

  JSP是一种特殊的Servlet,当JSP页面首次被访问时,容器(Tomcat)会先把JSP编译成Servlet,然后再去执行Servlet。所以JSP其实就是一个Servlet!

 

3.2JSP注释

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

4.JSP指令

4.1JSP指令概述

JSP指令的格式:<%@指令名 attr1=”” attr2=”” %>,一般都会把JSP指令放到JSP文件的最上方,但这不是必须的。

JSP中有三大指令:page、include、taglib,最为常用,也最为复杂的就是page指令了。

4.2page指令

page指令是最为常用的指定,也是属性最多的属性!

page指令没有必须属性,都是可选属性。例如:

<%@page %>,没有给出任何属性也是可以的!

 在JSP页面中,任何指令都可以重复出现!

<%@ page language=”java”%>
<%@ page import=”java.util. ”%>
<%@ page pageEncoding=”utf-8”%>

4.3taglib指令

  在JSP页面中使用第三方的标签库时,需要使用taglib指令来“导包”。例如:

<%@ taglib prefix="c" uri="Oracle Java Technologies | Oracle" %>

其中prefix表示标签的前缀,这个名称可以随便起。uri是由第三方标签库定义的.

5.JSP九大内置对象

在JSP中无需创建就可以使用的9个对象,它们是:

  • out(JspWriter):等同与response.getWriter(),用来向客户端发送文本数据;

  • config(ServletConfig):对应“真身”中的ServletConfig;

  • page(当前JSP的真身类型):当前JSP页面的“this”,即当前对象;

  • pageContext(PageContext):页面上下文对象,它是最后一个没讲的域对象;

  • exception(Throwable):只有在错误页面中可以使用这个对象;

  • request(HttpServletRequest):即HttpServletRequest类的对象;

  • response(HttpServletResponse):即HttpServletResponse类的对象;

  • application(ServletContext):即ServletContext类的对象;

  • session(HttpSession):即HttpSession类的对象,不是每个JSP页面中都可以使用,如果在某个JSP页面中设置<%@page session=”false”%>,说明这个页面不能使用session。

四大域: pageContext, request,session,application

响应对象: response

异常对象: exception

jsp配置: config

this: page

响应输出流: out

6.JSP动作标签

6.1JSP动作标签概述

  动作标签的作用是用来简化Java脚本的!

JSP动作标签是JavaWeb内置的动作标签,它们是已经定义好的动作标签,我们可以拿来直接使用。

6.2 常用的JSP动作标签

6.2.1<jsp:include> 

  jsp:include标签的作用是用来包含其它JSP页面的!

include标签与include指令的区别:

include指令是在编译级别完成的包含,即把当前JSP和被包含的JSP合并成一个JSP,然后再编译成一个Servlet。

include动作标签是在运行级别完成的包含,即当前JSP和被包含的JSP都会各自生成Servlet,然后在执行当前JSP的Servlet时完成包含另一个JSP的Servlet。

6.2.2<jsp:forward>

  forward标签的作用是请求转发!forward标签的作用与RequestDispatcher#forward()方法相同。

6.2.3<jsp:param>

  还可以在<jsp:include><jsp:forward>标签中使用<jsp:param>子标签,它是用来传递参数的。下面用<jsp:include>来举例说明<jsp:param>的使用。


网站公告

今日签到

点亮在社区的每一天
去签到