ASPPHPJSP界面代码分离简单例子.doc_第1页
ASPPHPJSP界面代码分离简单例子.doc_第2页
ASPPHPJSP界面代码分离简单例子.doc_第3页
ASPPHPJSP界面代码分离简单例子.doc_第4页
ASPPHPJSP界面代码分离简单例子.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

很多朋友一直问我网站程序界面和代码分离有什么好处和不足,我也搜索了下,网上很多类似的说明,但很多东西写得太复杂让人看不明白,其实很多时候我们只需要知道一些基本的流程,就会大彻大悟,根本不需要太深奥的东西,所以我稍微整理了一下同时针对流行的编程语言ASP/PHP/JSP/NET都做一个简单的例子,希望你也喜欢:朝夕网 提供,转载请保留说明网站程序代码界面分离的好处,简单说就是:1、做界面的人不需要学习甚至不需要知道ASP/PHP/JSP/NET/CGI等编程语言2、做后台的人不需要知道前台如何展现,甚至不需要学习JS/CSS类似的东西分工协作,效率更高,甚至多种编程语言做后台也能轻松整合应用!当然这种模式对小程序反而是个负担和麻烦,甚至浪费时间(例如为企业做个简单企业网站,个人觉得在国内asp+access永远都是最让人开心的搭配)不过对大程序、需要经常更新的、需要多人合作的应用是非常有优势的!(以下讲解只录入body之间的内容,至于html,head,title一类代码我们不讲解)一、Jsp界面代码分离不分离区别1)不分离一个文件搞定Test.jsp 一个jsp测试页面 当前日期: 当前文件: input value= / 2)分离三步操作1编写JavaBean使用 JavaBean Property 来获取所需的日期和文件名。DemoBean.javapackage com.mycompany; import java.util.Date; import javax.servlet.jsp.*; import javax.servlet.http.*; public class DemoBean private PageContext pageContext; public void setPageContext(PageContext pageContext) this.pageContext = pageContext; public String getDate() return new Date().toString(); public String getFilename() HttpServletRequest request = (HttpServletRequest)pageContext.getRequest(); return request.getServletPath(); 在这个名叫 DemoBean 中,我们提供了setPageContext方法用来获取JSP页面的环境对象。有了该对象,我们就可以像在JSP页面中那样使用 request、response、session 甚至调用数据库等等进行相关的操作了。2创建包含文件TestInc.jsp这是个简单至极的JSP文件,第一行代码是声明使用JavaBean的语句(朝夕网提示你:网上很多教程第一行没有!),第二行代码调用了DemoBean.setPageContext()方法将当前JSP页面的pageContext对象传递到demo对象中,这下你知道DemoBean是如何获得环境对象的吧。至于为什么需要使用这个jsp文件来达到使用JavaBean实现JSP页面的目的?请继续往下看。3修改原JSP文件Test.jsp 一个jsp测试页面 Date : File : input value=/ 本文末尾还有一片“使用自定义标签实现JSP页面和Java代码分离”的源码二、Asp/php界面代码分离不分离区别1)不分离同样一个文件搞定,当然也可以读取类,asp还可以手工封装dll今天日期:好好学习,天天向上!2)分离情况两个文件1个模板1个处理页面,也可读取类,asp还可以封装dlltest.htm模板页今天日期:好好学习,天天向上!朝夕网 提供,转载请保留说明处理页面例如:1)asp用fso类似函数(php类似fopen)读取模板页test.htm2)asp用replace类似函数(php类似str_replace)将 替换成 date()Test.asp%Dim objFSO,objCountFile,FiletempDataSet objFSO = Server.CreateObject(Scripting.FileSystemObject)Set objCountFile = objFSO.OpenTextFile(Server.MapPath(“test.htm”),1,True)Html = objCountFile.ReadAllobjCountFile.CloseSet objCountFile=NothingSet objFSO = NothingHtml=replace(Html,” ”,date()Response.write html%asp和php基本都这样,读模板然后替换标签,当然做php的朋友可能还喜欢用phplib类似的封装类,asp也可以制作自己的替换类,那样就更方便啦至于标签根据自己兴趣随意,例如 testdate , testdate 没有硬性规定,当然带参数原理差不多其次还有一种模式,也用三个文件实现,1个模板,1个调用数据,1个显示数据Test.htm模板get.asp调用数据部分Show.asp显示数据三、界面代码分不分离区别1)不分离的情况都一样一个文件搞定,不过处理代码通常在头部,当然也可以像以上jsp/asp/php他们直接在页面中夹杂函数和代码:protected void Page_Load() lblMessage.Text=一个页面实现; 2.界面代码分离的,只要嵌套类红色语句(通常vs自动生成),更灵活的是可以做个简单 前台页面 然后自动生成处理代码,还能自动编译生成dllTest.aspxTest.aspx.cs后台代码using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;public partial class test : System.Web.UI.Pageprotected void Page_Load() lblMessage.Text=两个页面实现,不过可以生成dll封装; 四、js界面代码分离处理方法1、模板页面例如test.htm当前时间:系统加载中处理文件地址例如:do.asp do.php do.jsp 也就是可以各种处理语言2、处理页面do.asp(其他页面类似)Var Showinfo =”;document.getElementById(mtime).innerHTML= Showinfo;当然有兴趣的还可以使用一些流行的js库,操作就更开心了!附录:使用自定义标签实现JSP页面和Java代码分离Test.jsp 一个jsp测试页面 当前日期: 当前文件: input value= / 为了将这个这个Test.jsp改成自定义标签方法,我们分别使用简单标签和内容标签两种不同的方式实现。1. 简单标签,由于我们需要输出两个内容(日期和文件名),因此我们为标签创建一个参数。具体代码:DemoTag.javapackage com.mycompany;import java.util.Date;import javax.servlet.http.*;import javax.servlet.jsp.*;import javax.servlet.jsp.tagext.*;public class DemoTag extends TagSupport public int doStartTag() throws JspException try HttpServletRequest request = (HttpServletRequest)pageContext.getRequest(); JspWriter out = pageContext.getOut(); if (pareToIgnoreCase(filename) = 0) out.print(request.getServletPath(); else out.print(new Date(); catch (java.io.IOException e) throw new JspTagException(e.getMessage(); return SKIP_BODY; private String parameter = date; public void setParameter(String parameter) this.parameter = parameter; public String getParameter() return parameter; 接下来,我们创建标签文件 MyTagLib.tld。标签文件其实只是一个XML格式的说明文件,内容也很简单。MyTagLib.tld1.01.2 demo com.mycompany.DemoTag empty parameter false true 在这个标签文件中,我们将我们创建的标签取名 demo,并声明了类型和参数(parameter)。 当然,我们还需要将我们自定义的标签添加到 web.xml 中,否则还是无法使用。web.xml MyTagLib MyTagLib.tld 你可能在别处看到过类似的声明,只是没有外面的 jsp-config,但是我们使用的是DTD 2.4,如果不加,Eclipse 会提示出错。到此为止,我们的自定义标签算是创建完毕。接下来,我们可以开始改写那个JSP文件来分离代码了。Test.jsp 一个jsp测试页面 当前日期: 当前文件: 上面这些想必你已经很熟悉,我就不做多说了。2. 内容标签,创建过程和上面大抵相同,只是程序文件和配置内容有些差异DemoTag2.javapackage com.mycompany;import java.io.IOException;import java.util.Date;import javax.servlet.http.*;import javax.servlet.jsp.*;import javax.servlet.jsp.tagext.*;public class DemoTag2 extends BodyTagSupport public int doStartTag() throws JspTagException return EVAL_BODY_BUFFERED; public int doEndTag() throws JspTagException String body = this.getBodyContent().getString(); HttpServletRequest request = (HttpServletRequest)pageContext.getRequest(); body = body.replace($date, new Date().toString(); body = body.replace($filename, request.getServletPath(); try pageContext.getOut().print(body); catch (IOException e) throw new JspTagException(e.getMessage(); return SKIP_BODY; 我们将新的标签 DemoTag2 加入到上面的标签文

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论