include使用:
在jsp中用<%@include file=”“>来引入其他jsp页面。
先写foot.jsp
<body>
<hr>
<a>copyRight@2017-2019</a>
</body>
再写test.jsp
<body>
<h1>this is the test of foot include</h1>
<h3>i found a girl</h3>
<%@include file ="foot.jsp" %>
</body>
结果如下:
超级easy!
如果改变foot.jsp的值,包含这个jsp的jsp文件不会发生相应改变,因为目标jsp在将foot.jsp编译并转换成servlet,只是一次进行,下次还是会用第一次转换的serverlet。jsp提供了动态机制:
<jsp:include page = "foot.jsp" flush="true">
MVC结构
对于一个应用程序来说,页面之间切换,页面显示,数据处理等等业务混在一起对于维护是极为不利的,因而出现了这样的jsp结构用来组织web应用中的逻辑和显示的关系。
这样Model 就是javabean处理逻辑或者数据,View 用来显示对应页面,Controller 用来控制请求到对应视图和做相应逻辑处理及处理数据。三者分开降低耦合。
实践
表示用户登录的html页面,提供用户输入,将数据发送给控制器:
<body>
<form action="Controller.jsp" method=post>
<table>
<tr>
<td>ID:</td>
<td><input type=text name="id"></td>
</tr>
<tr>
<td>passWord:</td>
<td><input type="text" name="password"></td>
</tr>
</table>
<input type="submit" value="submit" id="user1"/>
</form>
</body>
控制器根据request里面parameter的数据进行控制转发给指定页面:
<body>
<%
String id = request.getParameter("id");
String pw = request.getParameter("password");
out.println(id+" "+pw);
if(id.equals("mtdsq")&&pw.equals("123qwe")){
%>
<jsp:forward page="welcome.jsp">
<jsp:param value="<%=id %>" name="id"/>
</jsp:forward>
<%}else{%>
<jsp:forward page="wrong.jsp"/>
<%}%>
</body>
分别添加正确和错误页面:
welcome页面
<body>
<h1>WELCOME "<%=request.getParameter("id") %>"</h1>
</body>
wrong页面
<body>
<h1>GET OUT</h1>
</body>
一个简单的MVC模型就有了。这里有个<jsp:forward>
是用来转发页面的,直接跳转到指定页面当前负责转发的页面是不显示的。里面也有<jsp:param>
参数,用以传递数据。