<jsp:forward>用于jsp服务器端跳转,保持请求数据且url不变;需置于html输出后、页面结束前,支持无参跳转、<jsp:param>传参及request.setattribute()传对象,条件跳转须避免提前输出。

要在JSP中用jsp:forward>完成服务器端页面跳转,且确保请求数据不丢失、地址栏URL不变,就必须严格遵循其语法结构和执行时机——它不是普通输出语句,而是立即中断当前页面后续执行并转发整个request对象的指令。
基础跳转:无参转发到目标页面
第一步:在当前JSP页面(如login.jsp)末尾或逻辑判断分支内,插入
第二步:设置page属性为相对路径,例如
第三步:保存文件并部署运行。这一步操作起来很简单,直接把标签写进去就行,但【必须确保该标签位于所有HTML输出之后、页面结束之前】,否则会因响应已提交而抛出IllegalStateException异常。
带参跳转:传递用户名与状态信息
方法一:使用
方法二:用request.setAttribute()预设属性再转发
先执行request.setAttribute("user", "admin");
再执行
目标页通过获取——这种方式比param更灵活,能传任意Java对象,且不受URL编码限制。
条件跳转:登录验证后定向分流
① 在checklogin.jsp中接收表单参数:String username = request.getParameter("username");<br>String password = request.getParameter("password");
② 判断是否匹配admin/123456:
若成立,调用
若失败,调用<forward page="login.jsp"><br> <param name="error" value="用户名或密码错误">
<br></forward>
③ 在login.jsp中用显示提示信息。
【转发前不能有任何out.print()或HTML输出,否则会触发响应已提交异常】









