栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java EE (JSP 入门)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java EE (JSP 入门)

目录
  1. 概述
  2. 页面元素及内置对象的概念
  3. Servlet 与 JSP 作用总结
  4. 登录案例
一、概述内容 1.1 动态网页的执行原理
  • 使用 Servlet 生成动态网页,任何网页的内容都可以通过 out.priintln() 一行一行的实现
  • 执行步骤:
    • 容器初始化 Servlet实例。根据网页相对应的请求方法,调用与之对应的 doXXX 方法,并初始化请求和响应对象,作为 doXXX 方法的参数使用
    • 执行 doXXX 方法后,将响应对象的数据流写到客户端
    • 游览器将收到的数据进行解析,显示给用户

问题提出?

Servlet 生成动态页面太麻烦了,其实大部分静态内容都是一行一行的输出

解决方案:

Java EE 提供了新的动态页面组件 JSP,可以更加便捷的生成动态网页

1.2 JSP 功能与特性 1.2-1 JSP 功能与特性
  • JSP (Java Server Page)是 JavaEE 规范中的 Web 组件,用来编写动态页面
  • JSP 运行在服务端,本质是 Servlet
  • JSP 文件以 .jsp 为后缀,存放在项目下的 WebContent 目录下
  • JSP 文件游览器可以直接访问
  • JSP 文件的内容是 HTML + Java 代码,静态部分使用 HTML 和 文本即可,动态部分使用 Java 代码
1.2-2 JSP 功能与特性

一个标准的 JSP 页面如下

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
 



Insert title here



这里就是 JSP 的静态文本结构,比Servlet 简单多

<% System.out.println("Hello World")%> 


特别强调,在 JSP 中, 动态部分是写 Java 代码为主<%%> 为脚本片段,<%=%> 为输出表达式

1.3 JSP 的执行流程解析

JSP 的执行流程主要分为三个部分:

首先我们编写好了一个 index.jsp 文件是打开游览器运行,这时候进行了如下过程

  1. Web 服务器找到了 index.jsp,然后会对其进行翻译,生成 index_jsp.java 文件,然后进入工作空间
.metadata.pluginsorg.eclipse.wst.server.coretmp0workCatalinalocalhost
  1. 编译、服务器(tomcat服务器) 会将 index_jsp.java 编译成 class 文件(类文件),翻译和编译过程遵守 Servlet规范,因此说 JSP 的本质也是 Servlet
  2. 运行:实例化并提供服务:服务器实例化类,调用类中的_jspService方法提供服务

我们可以在 生成的 index_jsp.java 文件中下的 _jspService 文件下可以看到一行行我们在 HTML 中编写的代码,全部都在这个文件中变成了 out.println(xxx)。静态内容都是用 out 输出,和 Servlet中输出的是一样的,而且
所有的 Java代码都直接翻译到相对应的位置。

总结一句话,JSP 的本质就是一个 Servlet,不过是服务器翻译生成了 Java 类,不用我们编写而已。但是也并不是 Servlet 没有任何用了,它还可以用来写一些后台逻辑等问题

提问 与 总结
  1. 为什么要用 JSP 组件?

答:Servlet 生成动态页面比较繁琐,使用 JSP生成动态页面比较便捷,其中静态内容可以使用 HTML 生成

  1. JSP 执行的流程是什么?

答:JSP 的执行过程 翻译—>编译—>实例化—>提供服务

JSP 的本质就是 Servlet,不过服务器是将 JSP 进行了翻译和编译,可以说 JSP 也是Java 类

二、页面元素及内置对象概念

知识点:

  1. 脚本元素
  2. 表达式元素
  3. 模板元素
  4. 声明元素
  5. 内置对象概念
2.1 脚本元素
  • 脚本元素可以包含 Java 代码
  • 基本格式: <%Java代码%>
<%System.out.println("我是脚本元素")%>
  • 服务器翻译脚本元素的时候,将其中的 java 代码直接翻译到 _jspService中,如果语法错误,游览器就会显示对应的错误
2.2 表达式元素
  • 表达式元素用来向叶面输出动态内容
  • 格式为:<%=Java代码%>,例如
<%=request.getRemoteAddr() %> 获取当前的端口
  • 服务器翻译表达式元素时,将把其中Java代码部分的返回值使用out.write语句输出,例如:
out.write("您的IP地址:");
out.print(request.getRemoteAddr() );
2.3 模板元素