jsp动作指令基本概念
- jsp动作指令:客户端在请求时期动态被执行的,也就是说每次客户端请求时都可能被重新执行一次。
1.jsp:forward
页面转发,将请求转发到下一个页面(url不变)
例子效果是先访问第一个页面,直接重定向到第二个页面
- 无参
先创建一个index.jsp文件和login.jsp文件。
将index.jsp中的代码除了编译指令外的代码全部删除,添加以下代码:<jsp:forward page="login.jsp"></jsp:forward>
在login.jsp的body体内输入一行文本:“登录界面”
运行结果:
如图可以看出,在login.jsp中输入的那句话可以输出,但是上面的链接还是显示的index.jsp。
- 有参
在index.jsp文件中的forward指令中添加以下代码
<jsp:param value="liang" name="userName"/>
<jsp:param value="123456" name="password"/>
这里使用param指令传递参数
在login.jsp中获取到参数需要使用以下代码:(使用request对象中的getParameter方法接收传递的参数)
<%
String name = request.getParameter("userName");
String password = request.getParameter("password");
out.println(name);
out.println("</br>");
out.println(password);
%>
运行结果:
注意:在forward指令下面的代码是不会被执行的,也不会被输出到客户端。浏览器就当做没有看到那些东西一样,直接就转移到重定向的那些文件中去了。
2.jsp:include
- 无参
创建一个index.jsp文件,创建一个header.html文件
用index.jsp中的 < head > 标签内容替换header.html中的全部内容,删除index.jsp中< head >标签内容
在index.jsp中原来< head >标签的位置写 jsp:include 指令
<jsp:include page="header.html"></jsp:include>
结果为
运行结果
根据图片可以得出,index.jsp文件没有任何报错,而且在查看源代码时还是可以看到< head >标签中的内容。
- 带参数
接下来我们再看看带参数的写法。
首先也是创建一个body.jsp这个文件,并且将文件中的全部内容删除。
将index.jsp中< body >标签内容剪切粘贴到body.jsp文件中。如图:
在index.jsp中< body >标签的原来的位置写上jsp:include指令,并使用param传递参数(这里传递一个背景颜色为红色的值)
<jsp:include page="body.jsp">
<jsp:param value="red" name="bgcolor"/>
</jsp:include>
在body.jsp中使用bgcolor属性和jsp的内置对象request传递接收参数
<body bgcolor="<%=request.getParameter("bgcolor")%>">
</body>
运行结果:
如图所示,网页的背景颜色变成了红色,而且在查看源代码时也可以看到在< body >标签中有内联属性bgcolor=”red”。