初识JSP
1.jsp的组成元素
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
</body>
</html>
2.指令include和动作include的区别
指令:<%@include file="getrequest.jsp"%>
动作:<jsp:include page="getrequest.jsp"/>
我们只需了解他的传参形式不同
因为指令<%@include 会导致两个jsp合并成为同一个java文件,所以就不存在传参的问题,在发出hello.jsp 里定义的变量,直接可以在footer.jsp中访问。
hello.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
你好jsp
<%
String s="mm";
%>
<%@include file="footer.jsp"%>
</body>
</html>
footer.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<hr>
<%=s%>
</body>
</html>
而动作<jsp:include />其实是对footer.jsp进行了一次独立的访问,那么就有传参的需要。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
你好jsp
<jsp:include page="footer.jsp">
<jsp:param name="mm" value="2017"/>
</jsp:include>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<hr>
<p style="text-align:center">copyright@<%=request.getParameter("mm")%>
</p>
</body>
</html>
3.jsp跳转(和Servlet的跳转一样,JSP的跳转也分服务端跳转和客户端跳转。)
jsp的客户端跳转和Servlet中是一样的。
<%response.sendRedirect("hello.jsp");%>
服务端跳转:
与Servlet的服务端跳转一样,也可以使用
request.getRequestDispatcher("hello.jsp").forward(request, response);
或者使用动作,简化代码
<jsp:forward page="jump.jsp"/>
redirect:可以改变地址 重定向请求两次 A找B帮忙,B说帮不了并且说C可以帮忙 则最后声明为C
请求转发:请求一次,A找B帮忙,B接下了(不管其中B找C帮忙还是找了什么)最后声明还是B