JSP 动作标签:动态包含、请求转发与登录跳转实战
在 JSP 开发中除了我们熟悉的page、include指令JSP 动作标签Action Tag是实现页面复用、请求转发、参数传递的核心利器。一、JSP 动作标签核心概览JSP 动作标签是 JSP 提供的内置标签以jsp:为前缀用于在页面中实现动态逻辑无需编写复杂 Java 代码。核心常用标签如下动作标签核心作用语法jsp:include动态包含其他页面运行时合并jsp:include page文件路径/jsp:forward将请求转发到另一个页面地址栏不变jsp:forward page目标路径/jsp:param配合包含 / 转发传递参数jsp:param name参数名 value参数值/二、jsp:include动态包含实现页面复用很多人会把% include %静态包含和jsp:include动态包含搞混我们先通过实战彻底区分两者。1. 静态包含 vs 动态包含核心区别特性% include %静态包含jsp:include动态包含执行时机时机编译时合并生成一个 Servlet运行时调用生成多个 Servlet内容修改被包含文件修改后需重新编译主页面被包含文件修改后无需重新编译适用场景静态内容头部、底部、公共样式动态内容实时数据、频繁更新的模块参数传递共享主页面变量无需额外传参需通过jsp:param传参2. 动态包含实战案例创建被包含页面includedemo.jsp创建主页面testincludedemo.jsp动态包含上述页面运行效果访问http://localhost:8080/myxmall_war_exploded/unit3_2/testincludedemo.jsp页面会显示代码解析jsp:include pageincludedemo.jsp/在运行时动态调用includedemo.jsp将其输出结果嵌入主页面两个页面是独立的 Servlet修改includedemo.jsp后无需重新编译主页面即可生效三、jsp:forward请求转发实现页面跳转与参数传递jsp:forward是 JSP 中实现请求转发的核心标签它会将当前请求完全转发到目标页面浏览器地址栏不会变化同时可以通过jsp:param传递参数。1. 实战案例随机数判断与页面跳转创建转发主页面testforward.jsp创建目标页面big.jsp接收参数创建目标页面small.jsp接收参数% page contentTypetext/html;charsetUTF-8 languagejava %htmlheadtitleTitle/title /headbody% request.getParameter(num)% 小于5/body/html运行效果多次访问http://localhost:8080/myxmall_war_exploded/unit3_2/testforward.jsp页面会随机显示6 大于等于5当随机数≥5 时0 小于5当随机数 5 时浏览器地址栏始终保持testforward.jsp不会变化代码解析Math.random()*10生成 0-9 的随机数jsp:forward根据随机数判断转发到不同页面jsp:param将随机数s作为参数传递给目标页面目标页面通过request.getParameter(num)获取请求转发的核心一次请求地址栏不变共享 request 对象四、out 对象JSP 输出的核心解决页面嵌套问题在 JSP 中out是 9 大内置对象之一用于向浏览器输出内容。很多新手在写页面时会出现 HTML 标签嵌套错误我们通过一个时间显示案例彻底搞懂out的正确用法。运行效果访问页面后会显示当前时间代码解析out.print()将 Java 变量输出到 HTML 页面替代表达式% %适合复杂逻辑输出Calendar.HOUR_OF_DAY获取 24 小时制的小时避免上午 / 下午混淆规范 HTML 结构避免标签嵌套保证页面符合 W3C 标准五、核心知识点与避坑指南1中文乱码处理关键request.setCharacterEncoding(UTF-8)必须写在request.getParameter()之前否则乱码无法解决原理设置请求体的编码确保 POST 提交的中文正常解析2空值安全处理必须对username、userpass做非空判断避免直接调用equals()导致空指针异常推荐写法admin.equals(username)将常量写在前面彻底避免空指针3response.sendRedirectvsjsp:forward特性response.sendRedirectjsp:forward跳转类型客户端跳转两次请求服务器端跳转一次请求地址栏变化显示目标页面地址不变显示原页面地址数据共享不共享 request需用 session 传递共享 request可通过jsp:param传参适用场景登录成功跳转、跨域跳转同应用内页面跳转、参数传递4session 的作用session.setAttribute(username, username)将用户名存入 session在后续所有页面如首页都可以通过session.getAttribute(username)获取实现用户状态保持这是实现 “登录后显示用户名” 功能的核心原理六、总结JSP 动作标签是 JavaWeb 开发的基础核心掌握它们就能轻松实现页面复用、请求转发、登录跳转等功能jsp:include动态包含适合频繁更新的动态内容jsp:forward请求转发同应用内页面跳转共享 requestout对象页面输出解决 Java 与 HTML 的融合问题登录跳转结合request、session、response实现完整的用户认证流程
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2498784.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!