JavaBean实现JSP页面和代码分离

在JSP编程中,Struts一般只是用来处理form和业务逻辑,很多时候我们还是需要使用 "<% java code %>" 这样的语句来操作一些输出。这样的方式和ASP很类似,非常不便于程序代码和页面设计维护,网上有很多种分离的解决方案,本文只是我个人推荐的一种简单方式。

首先看我们要进行分离操作的原文件

Test.jsp

 
 
 
  1.  
  2.  
  3.  
  4.    
  5.  
  6.     My JSP 'Test.jsp' starting page title> </li> <li> </li> <li>   head> </li> <li> </li> <li>   </li> <li> </li> <li>  <body> </li> <li> </li> <li>    This is my JSP page. <br> </li> <li> </li> <li>    Date : <%= new java.util.Date().toString() %> <br> </li> <li> </li> <li>    File : <input value="<%= request.getServletPath() %>" />   </li> <li> </li> <li>   body> </li> <li> </li> <li> html> </li> </ol></pre><p>这个JSP文件中包含了两段JSP代码,分别用来输出当前时间和文件路径。虽然简单,但很有代表性,进行文本输出和HTML控件赋值是我们在JSP文件中写Java代码最主要的原因。接下来,我们开始我们的分离过程。</p><p><strong>1. 编写JavaBean</strong></p><p>使用 JavaBean Property 来获取所需的日期和文件名。</p><p>DemoBean.java </p> <pre> <ol> <li>package com.mycompany;  </li> <li> </li> <li>import java.util.Date;  </li> <li> </li> <li>import javax.servlet.jsp.*;  </li> <li> </li> <li>import javax.servlet.http.*;  </li> <li> </li> <li>public class DemoBean {  </li> <li> </li> <li>  private PageContext pageContext;  </li> <li> </li> <li>    </li> <li> </li> <li>  public void setPageContext(PageContext pageContext) {  </li> <li> </li> <li>    this.pageContext = pageContext;  </li> <li> </li> <li>  }  </li> <li> </li> <li>    </li> <li> </li> <li>  public String getDate() {  </li> <li> </li> <li>    return new Date().toString();  </li> <li> </li> <li>  }  </li> <li> </li> <li>    </li> <li> </li> <li>  public String getFilename() {  </li> <li> </li> <li>    HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();  </li> <li> </li> <li>    return request.getServletPath();  </li> <li> </li> <li>  }  </li> <li> </li> <li>} </li> </ol></pre><p>在这个名叫 DemoBean 中,我们提供了setPageContext方法用来获取JSP页面的环境对象。有了该对象,我们就可以象在JSP页面中那样使用 request、response、session 进行相关的操作了。</p><p><strong>2. 创建包含文件</strong></p><p>TestInc.jsp </p></p><p><% demo.setPageContext(pageContext); %></p><p>这是个简单至极的JSP文件,***行代码是声明使用JavaBean的语句,第二行代码调用了DemoBean.setPageContext()方法将当前JSP页面的pageContext对象传递到demo对象中,这下你知道DemoBean是如何获得环境对象的吧。至于为什么需要使用这个jsp文件来达到使用JavaBean实现JSP页面的目的?请继续往下看。</p><p><strong>3. 修改原JSP文件</strong></p><p>Test.jsp </p> <pre> <ol> <li><%@ include file="TestInc.jsp" %> </li> <li> </li> <li>> </li> <li> </li> <li><html> </li> <li> </li> <li>  <head> </li> <li> </li> <li>    <title>My JSP 'Test.jsp' starting page title> </li> <li> </li> <li>   head> </li> <li> </li> <li>  <body> </li> <li> </li> <li>    This is my JSP page. <br> </li> <li> </li> <li>    Date : <jsp:getProperty name="demo" property="date" /> <br> </li> <li> </li> <li>    File : <input value="<jsp:getProperty name="demo" property="filename" />"/>   </li> <li> </li> <li>   body> </li> <li> </li> <li> html> </li> </ol></pre><p>请注意修改后的JSP文件***行,我们使用了一个include语句,将我们刚才创建的 TestInc.jsp 文件包含了进来。下面有关日期和文件名的语句也是使用JavaBean的标准语法。运行一下,看看是不是和原来的Test.jsp一样。</p><p>include 指令所包含的 jsp 文件,会在***次运行时和原文件合并,被编译成一个完整的 servlet。</p><p>jsp:getProperty 的 property 值从 "getFilename" 变成了 "filename",一定要注意,很多人正在为这个郁闷着呢。</p><p>好了,我们总结一下这种使用JavaBean实现JSP页面方式的好处:</p><p>1. 修改后的JSP文件不再包含java代码,JavaBean Class更利于程序代码的维护。</p><p>2. 程序开发人员使用简单的空白页就可以进行开发,待页面设计人员提交目标页后,只需简单的编辑即可完成替换。</p><p>3. html代码变得非常干净,页面设计人员修改页面文件时,不用担心误删除程序代码了。</p><p>4. 使用INC文件,可以包含多个JavaBean的声明,利于将不同的任务分解成多个JavaBean,多个程序员可以独立、不受干扰地工作。</p><p>5. 开发人员甚至可以直接在该包含文件内部直接创建 Java 方法,就像你原来所熟悉的那样。</p><p>【编辑推荐】</p> <ol> <li>JavaBean与MBean详解</li> <li>Servlet与Javabean配置</li> <li>JavaBean使用技巧 </li> <li>JavaBean实现多文件上传的两种方法</li> <li>JavaBean与MBean详解 </li> </ol> <p> 分享题目:<a href="http://www.kswsj.com/qtweb/news28/363678.html">JavaBean实现JSP页面和代码分离</a> <br> 路径分享:<a href="http://www.kswsj.com/qtweb/news28/363678.html">http://www.kswsj.com/qtweb/news28/363678.html</a> </p> <p> 网站建设、网络推广公司-成都快上网,一家网站设计、网站制作公司;服务项目有等 </p> <p class="adpic"> <a href="https://www.cdcxhl.com/service/ad.html" target="_blank" class="ad">广告</a> <a href="" target="_blank" class="adimg"><img src=""></a> </p> <p class="copy"> 声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: <a href="http://www.kswsj.com/" target="_blank">成都快上网</a> </p> </div> <div class="newsmorelb"> <p>成都快上网科技猜您喜欢</p> <ul> <li> <a href="/qtweb/news27/363677.html">在终端中优雅地编写Python</a> </li><li> <a href="/qtweb/news26/363676.html">xmanager怎么用?xmanager远程windows</a> </li><li> <a href="/qtweb/news25/363675.html">在线ps如何优化渐变颜色的混合模式</a> </li><li> <a href="/qtweb/news24/363674.html">域名注册流程和费用?(如何注册.us域名)</a> </li><li> <a href="/qtweb/news23/363673.html">服务器如何选型?(服务器怎么选型java)</a> </li><li> <a href="/qtweb/news22/363672.html">20 个新的且值得关注的 Vue 开源项目</a> </li><li> <a href="/qtweb/news21/363671.html">windowsapps文件夹恢复?(windowsapps文件夹恢复默认权限)</a> </li><li> <a href="/qtweb/news20/363670.html">windows7释放磁盘空间方式介绍</a> </li><li> <a href="/qtweb/news19/363669.html">网站优化的方法有哪些?</a> </li> </ul> </div> </div> <div class="col-lg-3 noneb"> <div class="bkright" style="margin-top: 0"> <p><a href="https://www.cdcxhl.com/news/python/">python知识</a></p> <ul> <li> <a class="text_overflow" href="/qtweb/news28/336978.html">利用Redis提升内存碎片率(redis统计内存碎片率)</a> </li><li> <a class="text_overflow" href="/qtweb/news48/41298.html">服务器上传文件方法是怎样的?</a> </li><li> <a class="text_overflow" href="/qtweb/news26/306226.html">vi的网格怎么做,vi展示效果怎么做</a> </li><li> <a class="text_overflow" href="/qtweb/news11/351911.html">有服务器一台做什么能赚钱?做卖服务器的</a> </li><li> <a class="text_overflow" href="/qtweb/news42/326342.html">服务器cdn加速测试的方法是什么</a> </li><li> <a class="text_overflow" href="/qtweb/news39/468589.html">python如何旋转图片</a> </li><li> <a class="text_overflow" href="/qtweb/news37/39037.html">网站优化公司靠谱吗?一般怎么收费?</a> </li><li> <a class="text_overflow" href="/qtweb/news20/499770.html">中科启程是国企还是私企?(转让海南科技公司网站地址)</a> </li><li> <a class="text_overflow" href="/qtweb/news38/35038.html">为什么B2C电子商务平台如此流行,B2C电子商务平台的优势与发展趋势</a> </li><li> <a class="text_overflow" href="/qtweb/news34/219034.html">租用美国独立服务器需要有哪些需要注意的</a> </li><li> <a class="text_overflow" href="/qtweb/news13/364963.html">想做一个平台怎么做,如何自己做一个平台</a> </li><li> <a class="text_overflow" href="/qtweb/news42/237592.html">三个字母的域名值多少钱</a> </li><li> <a class="text_overflow" href="/qtweb/news41/1841.html">x86都跑不了:Intel平台SMM漏洞门事件</a> </li><li> <a class="text_overflow" href="/qtweb/news12/295962.html">shell正确的描述?(基本的shell语法有哪些)</a> </li><li> <a class="text_overflow" href="/qtweb/news44/392244.html">linux下jdk安装不成功怎么解决</a> </li> </ul> </div> <div class="bkright tag"> <p><a href="https://www.cdcxhl.com/hangye/" target="_blank">同城分类信息</a></p> <ul> <li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/caihui/" target="_blank">墙体彩绘</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/swzbw/" target="_blank">三维植被网</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/vr/" target="_blank">VR全景</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/zbljbc/" target="_blank">自拌料搅拌车</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/hangkongxiang/" target="_blank">航空箱</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/renzaowu/" target="_blank">人造雾</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/fengyangtai/" target="_blank">封阳台</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/bxgds/" target="_blank">不锈钢雕塑</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/bdfhw/" target="_blank">被动防护网</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/lajitong/" target="_blank">垃圾桶</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/zkj/" target="_blank">公路钻孔机</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/hntjbg/" target="_blank">混凝土搅拌罐</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/shipenji/" target="_blank">湿喷机</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/zdfhw/" target="_blank">主动防护网</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/shiliangting/" target="_blank">石凉亭</a> </li><li class="col-lg-6 col-md-6 col-sm-6 col-xs-6"> <a href="https://www.cdcxhl.com/hangye/boligeduan/" target="_blank">玻璃隔断</a> </li> </ul> </div> </div> </div> <div class="carousel-inner linkbg" style="background: #fff"> <div class="container"> <a href="http://www.idckuai.cn/" target="_blank">云服务器</a>    <a href="http://www.4006tel.net/" target="_blank">app网站建设</a>    <a href="http://www.ndjierui.cn/" target="_blank">南部网站建设</a>    <a href="http://www.cdxwcx.cn/tuoguan/xibuxinxi.html" target="_blank">西信服务器托管</a>    <a href="https://www.cdxwcx.com/city/leshan/" target="_blank">乐山网站建设</a>    <a href="https://www.cdxwcx.com/city/suining/" target="_blank">遂宁做网站</a>    <a href="http://www.cdkjz.cn/fangan/jtss/" target="_blank">上市企业网站建设方案</a>    <a href="http://chengdu.cdweb.net/weixinkaifa/qiyeweixin.html" target="_blank">企业微信定制</a>    <a href="https://www.cdcxhl.com/xiangyingshi.html" target="_blank">响应式网站建设</a>    <a href="https://www.cdcxhl.com/idc/ershu.html" target="_blank">电信成都枢纽中心</a>    <a href="http://seo.cdkjz.cn/" target="_blank">关键词优化</a>    <a href="https://www.cdxwcx.com/jifang/ershu.html" target="_blank">中国电信成都枢纽中心</a>    <a href="http://www.cdxwcx.cn/tuoguan/meishan.html" target="_blank">眉山托管服务器</a>    <a href="http://www.ledlianghua.cn/" target="_blank">LED亮化工程</a>    <a href="http://www.cdkjz.cn/fangan/education/" target="_blank">教育培训网站建设方案</a>    <a href="http://www.dmvi.cn/ser/baozhuang/" target="_blank">成都包装盒设计</a>    <a href="http://www.cdkjz.cn/small/" target="_blank">成都微信小程序开发</a>    <a href="https://www.xwcx.net/zuyong.html" target="_blank">成都主机租用</a>    <a href="http://www.tjjierui.cn/" target="_blank">什邡做网站</a>    <a href="https://www.cdxwcx.com/jifang/mianyang.html" target="_blank">四川绵阳机房</a>     </div> </div> <footer> <div class="carousel-inner footjz"> <div class="container"> <i class="icon iconfont zbw"></i> 品质网站建设 <i class="icon iconfont"></i> 多平台展现 <i class="icon iconfont"></i> 600元建站 <i class="icon iconfont"></i> 高效快速 <i class="icon iconfont"></i> 专业用心服务 <button type="button" class="btn btn-default btn-lg" onClick="window.location.href='tencent://message/?uin=631063699&Site=&Menu=yes'"> 立即开始600元网站建设</button> <button type="button" class="btn btn-default btn-xs" onClick="window.location.href='tencent://message/?uin=631063699&Site=&Menu=yes'"> 600元企业网站建设</button> </div> </div> <div class="carousel-inner bqsy"> <div class="container"> <div class="lxfs"> <h4 class="yutelnone">028-86922220 13518219792</h4> <h4 class="yutelblock"><a href="tel:02886922220">028-86922220</a> <a href="tel:13518219792">13518219792</a></h4> <a class="btn btn-default" href="tencent://message/?uin=532337155&Site=&Menu=yes" role="button">网站建设<span>QQ</span>:532337155</a> <a class="btn btn-default" href="tencent://message/?uin=631063699&Site=&Menu=yes" role="button">营销推广<span>QQ</span>:631063699</a> <a class="btn btn1 btn-default" href="mqqwpa://im/chat?chat_type=wpa&uin=532337155&version=1&src_type=web&web_src=oicqzone.com" role="button">网站制作<span>QQ</span>:532337155</a> <a class="btn btn1 btn-default" href="mqqwpa://im/chat?chat_type=wpa&uin=631063699&version=1&src_type=web&web_src=oicqzone.com" role="button">营销推广<span>QQ</span>:631063699</a> <a class="btn btn-default nonea" href="tencent://message/?uin=1683211881&Site=&Menu=yes" role="button">售后QQ:1683211881</a> <div class="dz">成都快上网专注: <a href="http://www.kswsj.com/" target="_blank">成都网站制作</a> <a href="http://www.kswsj.com/" target="_blank">网站设计</a> <a href="http://www.kswsj.com/" target="_blank">成都网站建设</a> <address>地址:成都太升南路288号锦天国际A幢10楼</address> </div> </div> <div class="bzdh dz"><img src="https://www.cdcxhl.com/imges/bottom_logo.png" alt="创新互联"> <p><a href="https://www.cdcxhl.com/menu.html" target="_blank">成都创新互联科技有限公司</a><br> Tel:028-86922220(7x24h)</p></div> </div> </div> </footer> </body> </html> <script> $.getJSON ("../../qtwebpic.txt", function (data) { var jsonContent = { "featured":data } var random = jsonContent.featured[Math.floor(Math.random() * jsonContent.featured.length)]; $(".adpic .adimg").attr("href",random.link) $(".adpic img").attr("src",random.pic); }) </script>