Java Web技术:EL表达式与Filter&Listener讲解

需积分: 10 0 下载量 32 浏览量 更新于2024-07-05 收藏 1.71MB PDF 举报
"EL&Filter&Listener-授课" 在Java Web开发中,EL(Expression Language,表达式语言)是一个重要的组成部分,它与JSP和Servlet规范紧密相关。EL的主要目标是简化JSP页面中的数据访问,使得开发者能够更专注于页面的展示逻辑,而不是混杂在HTML代码中的Java代码块。EL表达式首次在JSP 2.0规范中被引入,它允许开发者以简洁的方式从请求、会话、应用等不同范围获取和操作数据。 1. EL表达式概述 EL表达式是一种声明式语言,它提供了一种简洁的方式来访问JavaBeans属性或者Java EE容器管理的对象。它的基本语法是 `${表达式内容}`,其中`表达式内容`可以是一个变量、方法调用、算术运算等。EL表达式可以在JSP页面的任何位置使用,如在JSP标签、文本或脚本元素中。 2. EL表达式的基本用法 - **变量引用**:EL表达式可以用来直接引用存储在请求、会话、应用上下文中的属性。例如 `${message}` 将会尝试从当前请求域中获取名为 `message` 的属性并输出其值。 - **方法调用**:EL支持调用对象的方法,如 `${bean.someMethod()}`,其中 `bean` 是对象引用,`someMethod()` 是该对象的方法。 - **算术运算**:EL表达式也支持基本的算术运算,如 `${a + b}`, `${a * b}` 等。 3. EL表达式与JSP表达式 `<%=` 的比较 - **JSP表达式** `<%=expression%>` 直接将Java表达式的值转换为字符串输出到页面上,而EL表达式 `${expression}` 更加灵活,它可以处理各种类型的数据,并且可以进行复杂的数据操作。 - EL表达式比JSP表达式更易于阅读和维护,因为它将业务逻辑与视图层分离,提高了代码的可维护性。 4. 入门案例 - 创建JavaWeb工程:首先,你需要创建一个标准的JavaWeb项目结构,包括WEB-INF目录、web.xml配置文件等。 - 创建JSP页面:然后创建一个JSP文件,如 `index.jsp`,并在其中编写EL表达式的示例代码。 - 存储数据:在JSP页面的Java脚本let部分,你可以使用 `request.setAttribute()` 方法将数据放入请求域。 - 显示数据:使用EL表达式 `${message}`,JSP表达式 `<%=request.getAttribute("message")%>` 和Java代码块 `<%out.print(request.getAttribute("message"));%>` 分别展示数据。尽管三种方式都能达到目的,但EL表达式最为简洁。 5. 实际开发中的应用 在实际的Java Web开发中,EL通常结合JSTL(JavaServer Pages Standard Tag Library)使用,可以进一步增强页面的可读性和可维护性。EL和JSTL的结合可以让开发者避免在JSP页面中编写过多的Java代码,实现MVC模式中的视图层解耦。 6. EL表达式的优势 - **简洁性**:EL表达式语法简洁,易于理解和编写。 - **灵活性**:可以访问不同作用域的变量,调用对象方法,进行算术运算。 - **自动类型转换**:EL会自动处理类型转换,减少手动转换的工作。 - **增强可读性**:使JSP页面更专注于呈现,降低维护难度。 EL表达式是Java Web开发中提高效率、提升代码质量的重要工具,它使得页面和业务逻辑的分离更为彻底,为开发者提供了更好的开发体验。

我用Spring5的aop应用时报这个错误Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from file [D:\ecliple\web5\WEB-INF\applicationContext.xml]; nested exception is java.nio.file.NoSuchFileException: WEB-INF\applicationContext.xml,他说我的applicationContext.xml文件不存在,可是我明明有这个文件,另外我的web.xml需要更改吗<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <context-param> <param-name>contextConfigLocation </param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </context-param> <display-name>Struts2</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter> <filter-name>OpenSessionInViewFilter</filter-name> <filter-class>org.springframework.orm.hibernate5.support.OpenSessionInViewFilter</filter-class> </filter> <filter-mapping> <filter-name>OpenSessionInViewFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/* </url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> </web-app>

2023-05-30 上传