JSP中的动态包含和静态包含的区别

JSP中有两种包含:

静态包含:<%@ include file="被包含页面"%>

动态包含:<jsp:include page="被包含页面" flush="true">

它们有什么区别,都知道,JSP在WEB服务器中都要转换成一个java文件,java文件再编译成一个class文件。当请求JSP页面的时候,实际上运行的是这个class文件。

从这个方面来说:

静态包含发生在:JSP---->java文件阶段。动态包含发生在:执行class文件阶段。动态加入。

静态包含:只生成一个java文件,动态包含:生成多个class文件。

值得庆幸的是无论是动态包含还是静态包含,其request对象都是相同的。也就是同一个request对象。


什么都没例子来的实在:

index.jsp页面:静态和动态包含其他页面。

主要代码:

 静态包含页面:
  <%@include file="static.jsp" %><br>
 动态包含页面 
 <jsp:include page="dynamic.jsp" flush="true"/>


static.jsp被静态包含的页面。

dynamic被动态包含的页面。

经过编译以后生成的效果:


打开index_jsp.java

可以看到被静态包含的页面中的内容全部包含在了里面。而被动态包含的页面使用了:

org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "dynamic.jsp", out, true);

而被动态包含的页面,生成了一个新的java文件。


再看代码:为什么说动态包含和静态包含的request是相同的,静态被包含页面和包含它的页面共享request是毋庸置疑的,而动态包含通过上面一行代码也就一目了然了。


以上都是个人总结,如有错误,希望能指正。

发布了31 篇原创文章 · 获赞 4 · 访问量 16万+
展开阅读全文

jsp动态包含jsp文件后,被包含jsp文件中的js获取不到值

04-19

RT,使用jsp:include包含了一个JSP后,被包含的jsp文件中的js获取不到值,请问怎么办 被包含的jsp文件: ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>登录页_房屋中介网站</title> <link rel="stylesheet" href="${pageContext.request.contextPath}/ui/bs/css/bootstrap.min.css"> </head> <body> <div class="container-fluid" id="login_frame"> <div class="row"> <div class="col-md-3"></div> <div class="col-md-6"> <h1 style="text-align: center">登录</h1> <form class="form-horizontal" id="login_form" method="post" <%-- action="${pageContext.request.contextPath}/userBiz?action=login" --%> style="padding-top: 50px; padding-bottom: 100px"> <div class="form-group"> <label for="user_account" class="col-sm-2 control-label"> 用户名 </label> <div class="col-sm-10"> <input type="text" class="form-control" id="user_account" name="user_account" /> </div> </div> <div class="form-group"> <label for="user_password" class="col-sm-2 control-label"> 密码 </label> <div class="col-sm-10"> <input type="password" class="form-control" id="user_password" name="user_password" /> </div> </div> <div class="form-group"> <label class="col-sm-2 control-label"> </label> <div class="col-sm-10"> <div class="form-group"> <div class="col-sm-4"> <input type="checkbox" name="set_login_cookies" /> 下次自动登录 </div> <div class="col-sm-7"> <div class="form-group"> <div class="col-sm-10"> </div> <div class="col-sm-2"> <button class="btn btn-primary" id="login_button" onclick="login()">登录</button> <!-- <input type="submit" class="btn btn-primary" id="login_button" value="登录"> --> </div> </div> </div> </div> </div> </div> </form> </div> <div class="col-md-2"></div> </div> </div> <script src="${pageContext.request.contextPath}/ui/bs/js/jquery.min.js"></script> <script src="${pageContext.request.contextPath}/ui/bs/js/bootstrap.min.js"></script> <script> $(function() { $('#login_button').unbind("click").bind("click",function() { alert($("#user_account").val()); alert($("#user_password").val()); $.ajax({ type : 'POST', url : '${pageContext.request.contextPath}/userBiz', dataType : 'json', data : "user_account="+$("#user_account").val()+"&user_password="+$("#user_password").val()+"&action=login", //data: "user_account=admin&user_password=admin&action=login", success : function(msg){ if(msg.result==1){ alert("登陆成功"); location.reload(); }else{ alert(msg.msg); } } }) }) }) </script> </body> </html> ``` 问答

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览