寒假生活指导 16
JSP 内置对象:无需声明直接使用的核心组件
JSP在转换为 Servlet 时自动生成九大内置对象,开发者可直接调用这些对象处理请求、响应和会话管理。以下是关键对象的解析:
-
请求响应对象
request(HttpServletRequest)
获取请求参数:request.getParameter("name")
获取请求头:request.getHeader("User-Agent")
作用域:当前请求周期
response(HttpServletResponse)
设置响应头:response.setContentType("text/html")
重定向:response.sendRedirect("newPage.jsp") -
会话与全局对象
session(HttpSession)
存储用户会话数据:
<% session.setAttribute("user", "Admin"); %>
<%= session.getAttribute("user") %>
生命周期:浏览器会话期间
application(ServletContext)
全局共享数据:
<% application.setAttribute("counter", 0); %>
<% application.getAttribute("counter") %>
生命周期:服务器运行期间
- 输出与配置对象
out(JspWriter)
输出内容到页面:
<% out.print("
Hello JSP
"); %>config(ServletConfig)
获取Servlet配置参数:
<%= config.getInitParameter("dbUrl") %>
- 其他实用对象
pageContext(PageContext)
访问所有作用域:
<% pageContext.setAttribute("msg", "Hello", PageContext.REQUEST_SCOPE); %>
exception(Throwable)
仅在错误页(isErrorPage="true")中可用:
<%= exception.getMessage() %>
实际应用示例
用户登录验证:
<%
String username = request.getParameter("username");
String password = request.getParameter("password");
if("admin".equals(username) && "123456".equals(password)){
session.setAttribute("loginUser", username);
response.sendRedirect("dashboard.jsp");
} else {
out.print("登录失败!");
}
%>
注意事项
避免过度使用session(占用服务器内存)
application对象多线程访问需同步处理
优先使用EL表达式(${param.name})替代脚本片段
JSP 2.0+ 推荐使用JSTL标签库替代Java代码
JSP内置对象是传统Java Web开发的核心工具,现代开发中建议结合Servlet+MVC框架(如Spring)使用,以提升代码可维护性。理解这些对象的作用域与生命周期,是掌握JSP技术的关键基础。

浙公网安备 33010602011771号