Java Web应用开发

侯玉香,聂军,雷秦川,骆丽华,陈道敏,苗莹莹,刘叶

目录

  • 1 Java Web概述
    • 1.1 任务导引
    • 1.2 动态网页技术介绍
    • 1.3 JSP的运行环境
    • 1.4 JSP的运行原理
    • 1.5 JSP程序开发模式
    • 1.6 JSP开发工具
    • 1.7 任务实施:搭建项目环境及公司主页设计
    • 1.8 学习测验
  • 2 JSP基本语法
    • 2.1 任务导引
    • 2.2 JSP的基本组成
    • 2.3 脚本元素
    • 2.4 指令元素
    • 2.5 动作元素
    • 2.6 任务实施
    • 2.7 学习测验
  • 3 服务器交互
    • 3.1 任务导引
    • 3.2 课堂实录
    • 3.3 JSP内置对象概述
    • 3.4 out对象
    • 3.5 request对象
    • 3.6 response对象
    • 3.7 session对象
    • 3.8 application对象
    • 3.9 其他内置对象
    • 3.10 任务实施:使用JSP内置对象实现登录和注销功能
    • 3.11 学习测验
  • 4 JavaBean技术
    • 4.1 任务引导
    • 4.2 JavaBean概述
    • 4.3 JavaBean的应用
    • 4.4 JavaBean的作用域
    • 4.5 任务实施
    • 4.6 JSP中的文件操作
    • 4.7 学习测验
  • 5 Servlet技术
    • 5.1 任务引导
    • 5.2 Servlet基础
    • 5.3 Servlet开发
    • 5.4 Servlet常用API
    • 5.5 任务实施
    • 5.6 章节测验
  • 6 第6章 过滤器和监听器
    • 6.1 任务导引
    • 6.2 Servlet过滤器
    • 6.3 过滤器创建与配置
    • 6.4 Servlet监听器
    • 6.5 Servlet3.0新特性
    • 6.6 任务实施
    • 6.7 学习测验
  • 7 Java Web的数据库操作
    • 7.1 任务导引
    • 7.2 JDBC技术
    • 7.3 使用JDBC驱动程序访问数据库
    • 7.4 数据库连接的JavaBean
    • 7.5 JDBC对事务的操作
    • 7.6 连接池技术
    • 7.7 任务实施
    • 7.8 扩展阅读
    • 7.9 章节测验
  • 8 JSP高级技术
    • 8.1 任务导引
    • 8.2 EL概述
    • 8.3 JSTL标签库简介
    • 8.4 JSTL核心标签
    • 8.5 JSP与Ajax
    • 8.6 任务实施
    • 8.7 扩展阅读
    • 8.8 学习测验
  • 9 JSP实用组件技术
    • 9.1 任务导引
    • 9.2 上传与下载组件
    • 9.3 发送E-mail
    • 9.4 JSP动态图表
    • 9.5 在线编辑器
    • 9.6 任务实施
  • 10 教学过程材料
    • 10.1 2024-2025学年第一学期
      • 10.1.1 教学大纲
      • 10.1.2 授课计划
      • 10.1.3 实训指导书
      • 10.1.4 教案
      • 10.1.5 课件PPT
    • 10.2 2024-2025学年第二学期
      • 10.2.1 教学大纲
      • 10.2.2 授课计划
      • 10.2.3 实训指导书
      • 10.2.4 教案
      • 10.2.5 课件PPT
    • 10.3 2025-2026学年第一学期
      • 10.3.1 教学大纲
      • 10.3.2 授课计划
      • 10.3.3 实训指导书
      • 10.3.4 教案
      • 10.3.5 课件PPT
    • 10.4 2025-2026学年第二学期
      • 10.4.1 教学大纲
      • 10.4.2 授课计划
      • 10.4.3 实训指导书
      • 10.4.4 教案
      • 10.4.5 课件PPT
  • 11 课外资料
    • 11.1 电子书
      • 11.1.1 JavaWeb从入门到精通
      • 11.1.2 JavaWeb开发详解
      • 11.1.3 JavaWeb开发之道
      • 11.1.4 深入体验JavaWeb开发内幕-核心基础
      • 11.1.5 学通JavaWeb的24堂课
      • 11.1.6 Java Web 程序设计
      • 11.1.7 Java Web程序设计教程
      • 11.1.8 Java Web设计与应用教程
      • 11.1.9 Java_Web编程新手自学手册
      • 11.1.10 Tomcat and Java Web 开发技术详解
      • 11.1.11 Spring Boot 2+Thymeleaf企业应用实战
      • 11.1.12 Spring Boot+Vue全栈开发实战
      • 11.1.13 Spring实战
      • 11.1.14 JavaEE 8+Tomcat 9
    • 11.2 教学视频
      • 11.2.1 JDBC基础教学视频
      • 11.2.2 JDBC高级应用教学视频
EL概述

请同学们先浏览PPT,这是一个任务点哈!完成后有惊喜哟!


表达式语言(EL)是JSP2.0版本之后引入的新功能,该语言是一种简单,容易使用的语言。可以使用标签快速的访问JSP的隐含对象和JavaBean组件,简化对对象、对象属性、集合元素、请求参数等的访问。它可以非常方便的操作各种算术、关系、逻辑或空值测试运算符,从而提高运算效率。 


1.EL语法结构 

调用EL表达式的一般格式如下: 

${expression}

expression代表一个合法的EL表达式或者变量名,$和{}不要漏写,它是组成EL表达式不可缺少的一部分。功能是在JSP页面中输出该表达式或变量对应的值。

2.EL运算符


EL提供“.”和“[ ]”两种运算符来存取数据。当要存取的属性名称中包含一些特殊字符,如“*”或“?”等非字母或数字的符号,就一定要使用“[ ]”;或者如果要动态取值时,也要用“[ ]”来做,“.”无法做到动态取值。例如:

${user.My-Name}应当改为${user["My-Name"] }

${sessionScope.user[data]}中data是一个变量。

3.变量

EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。

因为我们并没有指定哪一个范围的username,所以它会依序从page、request、session、application范围查找。属性范围在EL中的名称:

page: pageScope

request:requestScope

session:sessionScope

application:applicationScope

4.EL隐含对象

(1)与范围有关的隐含对象

与范围有关的EL 隐含对象包含以下四个:pageScope、requestScope、sessionScope 和applicationScope

在EL中则使用下列方法, ${sessionScope.username}

(2)与输入有关的隐含对象

与输入有关的隐含对象有两个:param和paramValues

在EL中则可以使用param和paramValues两者来取得数据:

${param.name}

${paramValues.name}

5.其他隐含对象

(1)cookie

EL并没有提供设定cookie的动作,例:要取得cookie中有一个设定名称为userCountry的值,可以使用${cookie.userCountry}来取得它。

(2)header和headerValues

header 储存用户浏览器和服务端用来沟通的数据

有可能同一标头名称拥有不同的值,此时必须改为使用headerValues 来取得这些值。

(3)initParam

initParam取得设定web站点的环境参数(Context)

(4)pageContext

pageContext取得其他有关用户要求或页面的详细信息。                                                   

 

类别

 

隐含对象

 

描述

JSP页面pageContext代表此JSP页面的pageContext对象
作用范围pageScope用于读取page范围内的属性值
requestScope用于读取request范围内的属性值 
sessionScope用于读取session范围内的属性值
applicationScope用于读取application范围内的属性值
请求参数param用于读取请求参数中的参数值,等同JSP中的request.  getParameter(String name)
paramValues用于取得请求参数中的参数值数组,等同JSP中的request.  getParameterValues(String name)
请求头header用于取得指定请求头的值,等同JSP中的request.  getHeader(String name)
headerValues
用于取得指定请求头的值数组,等同JSP中的request.  getHeaders(String name)
Cookie cookie用于取得request中的cookie集,等同JSP中的request.  getCookies()
初始化参数initParam用于取得Web应用程序上下文初始化参数值,等同JSP中的: application. getInitParameter(String name)

                                                                    EL内建对象


【案例8-1】EL简化JSP开发(注册页面)

  8_1.jsp

<%@ page  language="java" import="java.util.*" pageEncoding="utf-8"%><%@ tagliburi="http://java.sun.com/jsp/jstl/core"  prefix="c"  %><!DOCTYPE HTML PUBLIC  "-//W3C//DTD HTML 4.01 Transitional//EN">
 

<html>

     <head>
       <title>JSTL标签库</title>
     </head>
     <body>

     <%    

           String  username="admin";

          //将变量添加到作用域中

          request.setAttribute("username",username);

          request.setAttribute("student.name","lanmin");

          ArrayList <String> list=new ArrayList<String>();

          list.add("水果");

          list.add("核桃");

          //将集合添加到作用域中

          request.setAttribute("list", list);    

     %>

         <!--  访问变量 -->  ${username}<br>

         <!--  含有特殊字符的变量 -->

         ${requestScope["student.name"]}<br>

         <!--  访问集合 -->  ${list[1]}

   </body>

</html>


6.EL运算符

(1)算术运算符有五个:+、-、*或$、/或div、%或mod

(2)关系运算符有六个:==或eq、!=或ne、<或lt、>或gt、<=或le、>=或ge

(3)逻辑运算符有三个:&&或and、||或or、!或not

(4)其它运算符有三个:Empty运算符、条件运算符、()运算符

例:${empty param.name}、${A?B:C}、${A*(B+C)}

上述条件运算符中,如果A表达式为真,则计算表达式C,否则计算表达式C。EL表示式中的条件运算符功能还是比较弱,一般可以用JSTL(见下一节)。