当执行到<jsp:forward page="相对路径"></jsp:forward>后,会立即结束当前页面的显示,跳转到另一个页面(JSP、HTML、Servlet类)。

1、不带参数的forward标签:

定义jsp页面:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>jsp的学习</title>
</head>
<body>
今天是国庆假期的第二天。
<jsp:forward page="forward.jsp"></jsp:forward>
今天是国庆假期的第二天。
</body>
</html>.

定义要跳转到的jsp页面:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>forward</title>
</head>
<body>
<h3>我是forward跳转后的页面!</h3>
</body>
</html>

跳转后访问的地址没有改变,与请求转发类似。

注意事项:

标签:<jsp:forward page="相对路径"></jsp:forward>中间不能有空格

2、带参数的forward标签:

设置forward标签的键和值:

<%@ page contentType="text/html;charset=utf-8" language="java" %>
<html>
<head>
<title>jsp的学习</title>
</head>
<body>
<jsp:forward page="forward.jsp"><jsp:param name="" value=""></jsp:param></jsp:forward>
</body>
</html>.

由键获取值:

<html>
<head>
<title>forward</title>
</head>
<body>
<h3>我是forward跳转后的页面!</h3>
<h2>从index.jsp获取到的值为:<%=request.getParameter("")%></h2>
</body>
</html>

3、forward标签在登录界面的应用:

log.jsp实现对用户信息的收集:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body bgcolor="aqua">
<center>
<h3>登录</h3>
<form method="get" action="check.jsp">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用户名:<input type="text" name="username" size=""><br>
密&nbsp;&nbsp;码 :<input type="password" name="password" size="" ><br><br>
<input type="reset" value="取消">
<input type="submit" value="登录">
</form>
</center>
</body>
</html>

check.jsp对用户提交的信息进行校验:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>check</title>
</head>
<body>
<%
String name=request.getParameter("username");
String password=request.getParameter("password");
if(name.equals("zhai")&&password.equals("1997")){
%>
<jsp:forward page="success.jsp">
<jsp:param name="username" value="<%=name%>"></jsp:param>
</jsp:forward>
<%
}
else {
%>
<jsp:forward page="log.jsp"></jsp:forward>
<%
}
%>
</body>
</html>

此jsp实现了从log.jsp获取用户信息,并将信息封装在forward内,在页面跳转后,能够通过键获取相应的值。

success.jsp:实现登录成功后的信息显示,获取到了forward内部的信息:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>success</title>
</head>
<body>
<h3>登录成功,欢迎你:<%=request.getParameter("username")%></h3>
</body>
</html>

4、useBean标签

(1)创建一个javaBean:

public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [username=" + username + ", password=" + password + "]";
} }

用普通的方式创建User对象并对一个对象进行初始化:

<%
User user=new User();
user.setUsername("zhai");
user.setPassword("123zhi");
out.println(user.toString());
%>

用标签进行赋值并取出值:

<jsp:useBean id="user1" class="pers.zhb.domain.User" scope="page">
<jsp:setProperty property="username" name="user1" value="hello"/>
<jsp:getProperty property="username" name="user1"/>

转发标签forward的更多相关文章

  1. 请求包含(Include)和请求转发(Forward)

    定义 请求包含是指将另一个Servlet的请求处理流程包含进来. 请求转发是指将请求转发给别的Servlet处理. 实现 实现请求包含和请求转发,可以使用HttpServletRequest的getR ...

  2. c++11 标准库函数 std::move 和 完美转发 std::forward

    c++11 标准库函数 std::move 和 完美转发 std::forward #define _CRT_SECURE_NO_WARNINGS #include <iostream> ...

  3. (转发)forward与(重定向)redirect的区别

    (转发)forward与(重定向)redirect的区别 forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服 ...

  4. 重定向(redirect)与转发(forward)的区别

    重定向(redirect)与转发(forward)的区别 1.重定向时地址栏会发生改变,转发时地址栏不会发生改变 当浏览器请求资源时,服务器直接访问目标地址的URL,将URL的响应内容读取,之后再将读 ...

  5. SSH的端口转发:本地转发Local Forward和远程转发Remote Forward

    关于使用ssh portforwarding来进行FQ的操作,网络上已经有很多很好的文章,我在这里只是画两个图解释一下. 首先要记住一件事情就是: SSH 端口转发自然需要 SSH 连接,而 SSH ...

  6. 转发(forward)和重定向(sendRedirect)

    一. RequestDispatche 是一个Web资源的包装器,可以用来把当前的Request传递给该资源,或者把新的资源包括到当前的相应中.详细来说:RequestDispatch对象从客户端获取 ...

  7. 请求转发(Forward)和重定向(Redirect)的区别

    forward(转发): 是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,因为这个跳转过程实在 ...

  8. 转发细节——forward

    1)forward()方法之前的输出,如果是输出到缓冲区,再转发到其它Servlet,那么原缓冲区的数据忽略不计:2)forward()方法之前的输出,如果真正输出到浏览器,再转发到其它Servlet ...

  9. SSM-SpringMVC-22:SpringMVC中转发(forward)和重定向(redirect)

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 转发和重定向大家都熟悉,都学到框架了,怎么能不了解转发和重定向呢? 如果有不熟悉的,可以去百度搜几篇博客去看看 ...

随机推荐

  1. 5. JDBC/ODBC服务器

    Spark SQL也提供JDBC连接支持,这对于让商业智能(BI)工具连接到Spark集群上以及在多用户间共享一个集群的场景都非常有用.JDBC服务器作为一个独立的Spark驱动器程序运行,可以在多用 ...

  2. mysql 生成指定范围随机数

    生成随机数 生成0-3的随机数 SELECT RAND() * 3 最大不会超过3, SELECT FLOOR(RAND() * 3) 上面生成整数的值是0,1,2,3生成的随机整数是1,2,3的话, ...

  3. python爬虫-80电子书,爬图片

    ''' 作者:Caric_lee 日期:2018 查看图片 ''' import requests from bs4 import BeautifulSoup r = requests.get(&qu ...

  4. 结合consul raft库理解raft

    一 入口 github.com/hashicorp/consul/agent/consul/server.go func (s *Server) setupRaft() error { 状态机,用于c ...

  5. shell-基础2-字符串文本处理${}

    一.为什么使用${}引用变量 1.$a和${a}的效果与区别 因为个别特殊字符会影响正常引用,所以需要使用${}引用变量,加花括号是为了帮助解释器识别变量的边界 $a和${a}效果一样,当变量后面连接 ...

  6. @PostConstruct使用总结

    https://blog.csdn.net/qq_37636695/article/details/84791468 https://www.jianshu.com/p/aba99a49a459 @P ...

  7. Visual Studio 2019 使用.Net Core 3.0 一

    一.前言 早在很久之前微软便公布 .NET Core 3.0 将支持开发Winform应用程序等等新特性,现如今 .NET Core 3.0 预览版已经出来第八个预览版了,从 .NET Core 2. ...

  8. NEST search查询

    /// <summary> /// GET /megacorp/employee/_search /// </summary> /// <returns></ ...

  9. Unity UnityWebRequest实现与后端的交互

    一般我们与后端对接的时候会用到UnityWebRequest这里简单使用这个与后端进行交互这个是总类 using UnityEngine;using System.Collections;using ...

  10. Mac 达芬奇【Davinci Resolve】 无法添加媒体

    参考 : https://zhidao.baidu.com/question/182613491787331404.html 打开软件,点击默认的未命名项目: 点击左上角图中箭头位置: 选中系统-&g ...