当前位置:首页 > 全部子站 > IT > 思科认证

使用Java进行Web开发的随想[2]

来源:长理培训发布时间:2017-12-13 15:03:13

  我朋友经常引用我的一句话就是:你的Java对我的Javascript是侵入的....,仿佛她比我还OO来着。

  我自己就提出了一个解决的方法:就是把Java对象写成JS对象,这样Web设计人员只要关注JS对象,用JS对象来渲染整个Web页面,这样我就不会和他的领域冲突了。

  简单来说,我们平常的WEB框架都是号称MVC的,这样它们就把V这个事情压在了JAVA程序员的身上,可怜我的审美观啊~所以我们应该把V继续往下推,推给对JAVA什么都不懂,但是却有非常丰富的WEB设计人员的身上。总不能让别人去学JAVA呀,那就只好把JAVA对象写成JS对象,这样WEB设计人员就可以轻松调用JS了。

  大体实现过程是这样的:

  1、双方先讨论项目的需求,然后确定下个个页面需要显示什么内容,怎么显示不管。讨论完后便确定了JS对象和数据库的大体结构。

  2、各自写各自的东西...

  3、双方写好后把WEB页面通过JS对象和Java连接起来,调试,完工。

  具体关键代码:

  J2J.java的代码,功能是获取scope范围内,名称为source的java对象,然后把这个java对象写成名称为distName类别为dist的JS对象。

  代码:

 

/*
*
*
* and open the template in the editor.
package net.vlinux.tag.j2j;
import javax.servlet.jsp.tagext.*; 
import java.util.*;

/** 
* @author vlinux 
public class NewObject extends TagSupport { 
private String distName; 
private String source;

 private List<Method> getGetMethods( Object aObject ) { 
List<Method> list = new ArrayList<Method>(); 
String methodName = array[i].getName(); 
list.add(array[i]); 
return list; 

private String getFieldName( Method aMethod){ 
String subName = methodName.substring(3,methodName.length()); 
}

private Object getSourceObject(String scope, String source){ 
return pageContext.getRequest().getAttribute(source); 
return pageContext.getSession().getAttribute(source); 
return pageContext.getAttribute(source); 
System.out.println("xxx"); 

public int doStartTag(){ 
Object sourceObject = getSourceObject(getScope(),getSource()); 
try{ 
out.println( "tvar " + getDistName() + " = new " + getDist() + "();"); 
try{ 
String value = ((Method)list.get(i)).invoke( getSourceObject(getScope(),getSource())).toString(); 
}catch(Exception e){ 

out.println( "</script>" ); 
// 
return (EVAL_BODY_INCLUDE); 
public int doEndTag(){ 
}

public String getDist() { 
}

public void setDist(String dist) { 
}

public String getDistName() { 
}

public void setDistName(String distName) { 
}

public String getScope() { 
}

public void setScope(String scope) { 
}

public String getSource() { 
}

public void setSource(String source) { 
} }

 

|||   具体调用的JSP页面

  代码

 

<%@ taglib uri="/WEB-INF/J2J.tld" prefix="jj"%> 
//创建一个简单对象
user.setId(new Integer(1));
user.setPassword("lovefs");
//把对象放到request中去
%>


这里要注意
distName 是目标Javascript对象实例的名,这个也是必须和web设计人月事先约定好
source 源对象,也就是java对象,标签会通过scope确定的范围搜寻source
<jj:newObject dist="User" distName="user" scope="request" source="user"/>


  这样我们就得到这样的HTML代码。

  代码:

 

<script> 
user.username = "oldmanpushcart" 
user.id = "1" 
user.class = "class net.vlinux.test.User" 


  控制页面输出代码为,JS程序员就是这样来渲染WEB页面的:

  代码:

 

<script>document.writeln(user.id);</script><br> 
<script>document.writeln(user.username);</script><br> 

 

  输出内容:

  1 vlinux 
lovefs

  JavaToJS我喜欢叫她j2j.

  j2j的优点在于:

  1、Java程序员和JS程序员相互之间不会干扰,各自干各自的。

  2、JS程序员不用依赖JAVA代码才能进行测试,相反,它们很早就可以通过构造一些JS银弹来对页面情况进行测试了,开发速度一般比JAVA部分还快。很多项目都是先弄个大体框架,然后再慢慢细调。这样效率低,而且也不方便和客户交流--客户喜欢看到实际的东西。如果是J2J就是一步到位。

  3、方便日后的维护和替换--万一有一天我死了(T_T),我的朋友还可以找其他的WEB程序员进行维护,如果找不到JAVA程序员,她甚至还可以找个ASP程序员把我的代码全部重写而不用修改页面的任何地方--也许表单的action需要改一下。

  4、天生支持AJAX

  当然,任何东西都是有缺点的,j2j的缺点在于:

  1、不适合用来改写以前的代码,因为j2j的JS对于其他页面来说是侵入的

  2、HTTP页面上会有大量的<script></script>段的存在,显得非常的不美观

  3、没有IDE支持....

责编:罗莉

发表评论(共0条评论)
请自觉遵守互联网相关政策法规,评论内容只代表网友观点,发表审核后显示!

国家电网校园招聘考试直播课程通关班

  • 讲师:刘萍萍 / 谢楠
  • 课时:160h
  • 价格 4580

特色双名师解密新课程高频考点,送国家电网教材讲义,助力一次通关

配套通关班送国网在线题库一套

课程专业名称
讲师
课时
查看课程

国家电网招聘考试录播视频课程

  • 讲师:崔莹莹 / 刘萍萍
  • 课时:180h
  • 价格 3580

特色解密新课程高频考点,免费学习,助力一次通关

配套全套国网视频课程免费学习

课程专业名称
讲师
课时
查看课程
在线题库
面授课程更多>>
图书商城更多>>
在线报名
  • 报考专业:
    *(必填)
  • 姓名:
    *(必填)
  • 手机号码:
    *(必填)
返回顶部