JavaBean实现JSP页面和代码分离

开发 后端
本文向您介绍使用JavaBean实现JSP页面,作者采用一种简单的方式,通过代码示例实现了JSP页面的代码分离,并总结了自己的一些经验。

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

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

Test.jsp

  1. > 
  2.  
  3. <html> 
  4.  
  5.   <head> 
  6.  
  7.     <title>My JSP 'Test.jsp' starting pagetitle> 
  8.  
  9.   head> 
  10.  
  11.    
  12.  
  13.   <body> 
  14.  
  15.     This is my JSP page. <br> 
  16.  
  17.     Date : <%= new java.util.Date().toString() %> <br> 
  18.  
  19.     File : <input value="<%= request.getServletPath() %>" />   
  20.  
  21.   body> 
  22.  
  23. html> 

这个JSP文件中包含了两段JSP代码,分别用来输出当前时间和文件路径。虽然简单,但很有代表性,进行文本输出和HTML控件赋值是我们在JSP文件中写Java代码最主要的原因。接下来,我们开始我们的分离过程。

1. 编写JavaBean

使用 JavaBean Property 来获取所需的日期和文件名。

DemoBean.java

  1. package com.mycompany;  
  2.  
  3. import java.util.Date;  
  4.  
  5. import javax.servlet.jsp.*;  
  6.  
  7. import javax.servlet.http.*;  
  8.  
  9. public class DemoBean {  
  10.  
  11.   private PageContext pageContext;  
  12.  
  13.     
  14.  
  15.   public void setPageContext(PageContext pageContext) {  
  16.  
  17.     this.pageContext = pageContext;  
  18.  
  19.   }  
  20.  
  21.     
  22.  
  23.   public String getDate() {  
  24.  
  25.     return new Date().toString();  
  26.  
  27.   }  
  28.  
  29.     
  30.  
  31.   public String getFilename() {  
  32.  
  33.     HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();  
  34.  
  35.     return request.getServletPath();  
  36.  
  37.   }  
  38.  

在这个名叫 DemoBean 中,我们提供了setPageContext方法用来获取JSP页面的环境对象。有了该对象,我们就可以象在JSP页面中那样使用 request、response、session 进行相关的操作了。

2. 创建包含文件

TestInc.jsp

<% demo.setPageContext(pageContext); %>

这是个简单至极的JSP文件,***行代码是声明使用JavaBean的语句,第二行代码调用了DemoBean.setPageContext()方法将当前JSP页面的pageContext对象传递到demo对象中,这下你知道DemoBean是如何获得环境对象的吧。至于为什么需要使用这个jsp文件来达到使用JavaBean实现JSP页面的目的?请继续往下看。

3. 修改原JSP文件

Test.jsp

  1. <%@ include file="TestInc.jsp" %> 
  2.  
  3. > 
  4.  
  5. <html> 
  6.  
  7.   <head> 
  8.  
  9.     <title>My JSP 'Test.jsp' starting pagetitle> 
  10.  
  11.   head> 
  12.  
  13.   <body> 
  14.  
  15.     This is my JSP page. <br> 
  16.  
  17.     Date : <jsp:getProperty name="demo" property="date" /> <br> 
  18.  
  19.     File : <input value="<jsp:getProperty name="demo" property="filename" />"/>   
  20.  
  21.   body> 
  22.  
  23. html> 

请注意修改后的JSP文件***行,我们使用了一个include语句,将我们刚才创建的 TestInc.jsp 文件包含了进来。下面有关日期和文件名的语句也是使用JavaBean的标准语法。运行一下,看看是不是和原来的Test.jsp一样。

include 指令所包含的 jsp 文件,会在***次运行时和原文件合并,被编译成一个完整的 servlet。

jsp:getProperty 的 property 值从 "getFilename" 变成了 "filename",一定要注意,很多人正在为这个郁闷着呢。

好了,我们总结一下这种使用JavaBean实现JSP页面方式的好处:

1. 修改后的JSP文件不再包含java代码,JavaBean Class更利于程序代码的维护。

2. 程序开发人员使用简单的空白页就可以进行开发,待页面设计人员提交目标页后,只需简单的编辑即可完成替换。

3. html代码变得非常干净,页面设计人员修改页面文件时,不用担心误删除程序代码了。

4. 使用INC文件,可以包含多个JavaBean的声明,利于将不同的任务分解成多个JavaBean,多个程序员可以独立、不受干扰地工作。

5. 开发人员甚至可以直接在该包含文件内部直接创建 Java 方法,就像你原来所熟悉的那样。

 

【编辑推荐】

  1. JavaBean与MBean详解
  2. Servlet与Javabean配置
  3. JavaBean使用技巧
  4. JavaBean实现多文件上传的两种方法
  5. JavaBean与MBean详解
责任编辑:佚名 来源: 网易博客
相关推荐

2009-07-01 11:05:18

页面与代码分离JSP源码

2009-06-29 17:09:49

JavaBeanJSP

2009-09-02 09:44:01

JSP和JavaBea

2009-06-25 14:26:07

JSPJavaBeanServlet

2009-07-03 10:06:50

JSP JavaBeaJSP Servlet

2009-06-30 08:55:21

JSP和javabea

2009-01-18 10:56:27

JSTLEL表达式JSP标准标记库

2009-07-03 17:33:06

JSP中调用JavaB

2009-07-02 09:25:41

JSP实现页面跳转

2009-07-06 18:23:56

Struts和JSPJSP页面

2009-07-02 10:13:47

ASP和JSPJSP页面

2009-02-01 10:04:44

JSPJavaBeanJavaBean应用

2009-07-06 17:07:11

JSP实例

2009-07-07 15:57:29

JSP购物车

2009-07-02 13:36:24

动态页面JSP技术

2009-03-05 10:10:52

饼图数据库JSP

2009-07-03 18:12:49

JSP页面

2009-07-14 11:15:35

MyEclipse 单

2009-07-03 17:41:47

JavaBean Se

2009-06-30 10:33:00

JSP JavaBeaServlet
点赞
收藏

51CTO技术栈公众号