当执行到<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. shell中通过eval执行一个字符串命令

    #!/bin/bash echo "Switch Directory : /home/pktgen-2.9.0" dir="/home/pktgen-2.9.0" ...

  2. 每周分享五个 PyCharm 使用技巧(六)

    大家好,今天我又来给大家更新 PyCharm 的使用技巧. 从今年3月24号开始一直到今天,将近四个月的时间.包括本篇,一共更新了6篇文章,每篇 5 个小技巧,总计 30 个. 这30个使用技巧,全部 ...

  3. 兴奋与沮丧并存spider爬取拉勾网

    兴奋的开发除了爬取拉勾网的爬虫信息,可是当调试都成功了的那一刻,我被拉钩封IP了. 下面是spider的主要内容 import reimport scrapy from bs4 import Beau ...

  4. 【洛谷 P4137】 Rmq Problem / mex(主席树)

    题目链接 容易发现,可能答案只有\(0\).每个数,每个数\(+1\) 于是把这\(2n+1\)个数建立一个权值线段树,可持久化一下,每个节点记录这个子树中最后加入数加入的时间的最小值\(latest ...

  5. Python_爬虫小实例

    爬虫小实例 一.问题描述与分析 Q:查询某一只股票,在百度搜索页面的结果的个数以及搜索结果的变化. 分析: 搜索结果个数如下图: 搜索结果的变化:通过观察可以看到,每个一段时间搜索结果的个数是有所变化 ...

  6. 【面试突击】- Mybatis-#{}和${}的区别

    原文链接:mybatis中#{}和${}的区别 1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #user_id#,如果传入的值是111,那么解析成sql时 ...

  7. vue 全局挂载组件

    <!-- plugin.js --> import someComponent from './components/someComponent' export default { ins ...

  8. Java 之 web 相关概念

    一.软件架构 1.C/S:客户端/服务器端 2.B/S:浏览器/服务器端(目前常用) 二.网络资源 1.静态资源 静态资源:所有用户访问后,得到的结果都是一样的,称为静态资源,静态资源可以直接被浏览器 ...

  9. mysql基础指令知识

    桌面指令(cmd)进入mysql客户端 第一步:安装mysql,配置环境变量 第二步:手动开启服务 第三步:输入如下指令: mysql [-h localhost -P 3306] -u  用户名 - ...

  10. 学习python的日常4

    偏函数: 偏函数是functools模块提供的一个功能,偏函数可以通过设定参数的默认值,降低函数调用的难度 其中设定的参数默认值实际上是可以被传入为其他值的,最后创建偏函数时可接收函数对象.*args ...