Java教程

Java web --- jsp技术

本文主要是介绍Java web --- jsp技术,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

      • 一、什么是JSP
        • 1.1 JSP的简介
      • 二、JSP运行原理
      • 三、三种脚本
      • 四、jsp九大内置对象
      • 五、jsp四大域对象
      • 六、jsp常用标签

一、什么是JSP

  • 为什么要引入JSP

使用Servlet技术来实现HTML页面数据的统计十分繁琐,因此推出JSP技术。

1.1 JSP的简介

  • JSP全名是Java Server Pages,建立在Servlet规范上的动态网页开发技术。
  • Java代码实现动态,HTML代码实现静态

二、JSP运行原理

  • JSP文件继承了HTTP Servlet类,它本质上就是Servlet程序
  • JSP文件 转换 -》Servlet文件(.java) 编译 -》class文件(.class) -》Servlet实例

三、三种脚本

  • 1、声明脚本
<%!
	定义变量、方法、内部类等
%>
  • 2、表达式脚本
<%=
	输出内容		
%>

注意:不能以分号结尾

  • 3、代码脚本
<%Java代码%>

2和3都在_jspService方法内可以写

注释:规定范围用规定的注释

html :<!-- -->
java :// /**/
jsp  :<%-- --%>

四、jsp九大内置对象

jsp中的内置对象,是指Tomcat在翻译jsp页面成为Servlet源代码后,内部提供的九大对象。

request		请求对象
response	响应对象
pageContext	jsp的上下文对象
session		会话对象
application	ServletContext对象
config		ServletConfig对象
out			jsp输出流对象
page		指向当前jsp的对象
exception	异常对象(在错误页中才起作用)

五、jsp四大域对象

pageContext (PageContextlmpl类) 当前jsp页面范围内有效
request   (HttpServletRequest类)  一次请求内有效
session  (HttpSession类) 一个会话范围内有效(从打开浏览器到关闭浏览器)
application (ServletContext类) 整个web工程范围内都有效(只要web工程不停止,数据一直都在)

域对象:可以像Map一样存取数据的对象,四个域对象功能一样,不同的是数据存取范围
从小到大:pageContext -> request -> session -> application
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <h1>scope.jsp页面</h1>
    <%
        //往四个域种分别保存数据
        pageContext.setAttribute("key","pageContext");
        request.setAttribute("key","request");
        session.setAttribute("key","session");
        application.setAttribute("key","application");
    %>
    pageContext域:<%= pageContext.getAttribute("key")%><br/>
    request域<%= request.getAttribute("key")%><br/>
    session域<%= session.getAttribute("key")%><br/>
    application域<%= application.getAttribute("key")%>
</body>
</html>

六、jsp常用标签

1、静态包含

头部信息<br/>
主体内容<br/>
<%--
<%@include file=""%> 静态包含
file属性指定你要包含的jsp页面的路径
地址中第一个斜杠:http://ip:port/工程路径/ 映射到代码的web目录
--%>
<%@include file="/foot.jsp"%>

2、动态包含

    <jsp:include page="/foot.jsp">
    跟静态包含差不多,区别在于:
    1、动态包含的jsp页面翻译为java代码
    2、动态包含底层代码去调用被包含的jsp页面执行输出
    3、动态包含可以传递参数
    </jsp:include>
    --%>
    <jsp:include page="/foot.jsp">
        <jsp:param name="username" value="leidaoge"/>
        <jsp:param name="password" value="111"/>
    </jsp:include>

3、请求转发

    <%--
    <jsp:forward page=""></jsp:forward>
	    请求转发标签,功能就是请求转发
	    page属性设置请求转发的路径,
	    转发过来了,但是路径没变还是原来那个路径
    --%>
    <jsp:forward page="/foot.jsp"></jsp:forward>
这篇关于Java web --- jsp技术的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!