JSP 技术:页面作用域、XML 语法与组件复用解析
1. JSP 页面作用域理解
在 JSP 开发中,页面作用域是一个重要的概念。以登录流程为例, login.jsp
页面会将一个 User
对象添加到请求作用域中,然后将请求转发到 authenticate.jsp
。 authenticate.jsp
会根据数据库验证用户信息,根据验证结果,要么将对象转移到会话作用域并将请求转发到 account.jsp
,要么将请求转发到 loginError.jsp
,后者会使用 User
对象生成适当的响应。为避免请求转发后向输出流写入内容而抛出 IllegalStateException
,在转发请求后会调用 return;
。
1.1 页面作用域
页面作用域中的对象仅在定义它们的翻译单元内可访问,在单个翻译单元内的单个请求处理之外不存在。这些对象由 PageContext
抽象类的具体子类实例以属性 - 值对的形式维护。在 JSP 页面中,这个实例以隐式对象 pageContext
的形式存在。
要在页面作用域中共享对象,可以使用 PageContext
定义的两个方法,如下表所示:
| 方法 | 描述 |
| — | — |
| void setAttribu