`
kgd924
  • 浏览: 43841 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

JS 服务端编程 + JSTL 的留言板例子

阅读更多

最近要做一个WEB的小工具, 已有的代码都是用JSP写的。 又想用我自己实现的js-web,所以就想到了用javascript写后台的代码,用JSTL来表现。 javascript在服务器端运行的问题前面解决了,但是用JSTL来输出javascript的对象和在JSP中如何调用服务端的JS是这次才实现的。

 

1。 在JSP中调用服务器端的javascript使用了一个自自定义标签:

 

<%@ taglib uri="http://www.jsweb.org/tag/js-web" prefix="js" %>

<!--运行一个服务器端 javascript -->
<js:exec file="/js/jstl.js" />

 

2。 如何将JavaScript的对象转换为,JSTL能识别的Java对象呢? 定义了一个JavaScriptMap和JavaScriptCollection分别实现了Map和Collection两个接口。 可以将任意的Javascript对象以MAP/Collection方式传到JSP上面。

 

//取一个HTTP的参数,
var username = web.param('name');

//保存到HTTPRequest 的attribute中。
web.attr('username', username);

web.attr('map', {foo:'foo value', foo2:'foo2 value'});

//保存到Session中。
web.session('list', ['one', 'two', 'three', 'four']);

print("Hello, this a javascript running server side");

 3。 再看JSP中的代码:

<%@ taglib uri="http://www.jsweb.org/tag/js-web" prefix="js" %>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>

<div>
<h1><js:exec file="/js/jstl.js" /></h1>
<div>
<div>
<h1>Request parameter</h1>
Hello, <c:out value="${username}" />
<div>
<div>
<h1>Javascript map</h1>
Map:<br/>
foo-><c:out value="${map.foo}" /><br/>
foo2-><c:out value="${map.foo2}" /><br/>
<div>
<h1>Javascript list</h1>
<c:forEach items="${list}" var="e">
    <c:out value="${e}" /><br/>
</c:forEach>
<div>
 

4。如何实现JavaScript服务器端访问数据库:

 

function init_connection(){
    if (!dbd){
                //导入数据操作Library, 在js-shell项目中实现。
                var dbd = __import__('DB', null, {})
		dbd.driver('org.sqlite.JDBC');
	}
	
	return dbd.connect("jdbc:sqlite:" + web.realpath("/WEB-INF/") + "/message.db");
}

//一个查询的例子
function list_message(){
    var conn = init_connection();
    .....
        //the two lines can combine to one,
        //var list = conn.select_list("select * from messages");
		var rs = conn.select("select * from messages");
		var list = rs.fetch_rows();
        	
     ......
    
    return list;    
}

//一个插入纪录的例子
function add_message(){
    var conn = init_connection();
     ....        
        conn.insert("messages", web.param(), ['title', 'message', 'username']);
      conn.close()   
}
 

5。 完整的代码下载地址:  http://js-web.googlecode.com/files/message-board.war

 

最先在考虑数据库操作的时候,想调用JPA,发现相关联的包太多了。最后使用了简单的JDBC方式操作。最近兴趣转移了,很久没有更新了,前几天需要做一个小工具的时候,才又想起了js-shell。加入了一些新的功能,包括数据库操作和Logging方面的Library.

 

 

 

4
0
分享到:
评论
2 楼 kgd924 2009-01-12  
jindw 写道

想法不错,只是,有那些运用场景呢?我最近也在搞一个基于js表达式语法的模板引擎:http://www.xidea.org/project/lite/有空多多交流。

没有考虑什么应用场景,使用js作服务端编程也就是个人的想法而已。

前段时间做js-web的时候就是没有找到好的js模板引擎,所以停止了一段时间。本来想用common-template的,没有想到js对象到java对象转换的办法。现在还是在考虑用common-template了。
1 楼 jindw 2009-01-11  
想法不错,只是,有那些运用场景呢?
我最近也在搞一个基于js表达式语法的模板引擎:
http://www.xidea.org/project/lite/
有空多多交流。

相关推荐

    基于jsp+Servlet+jstl写的考勤系统源码.zip

    基于jsp+Servlet+jstl写的考勤系统源码.zip基于jsp+Servlet+jstl写的考勤系统源码.zip基于jsp+Servlet+jstl写的考勤系统源码.zip基于jsp+Servlet+jstl写的考勤系统源码.zip基于jsp+Servlet+jstl写的考勤系统源码.zip...

    jsp+jstl实现分页

    jsp+jstl实现分页,简单的分页

    BOOK(Servlet+EL+JSTL技术)

    在这个项目中,JSP页面结合了EL和JSTL,减少了大量的脚本代码,提高了代码的可读性和维护性。通过EL,可以直接在JSP中引用后台传递的数据,而JSTL标签则用于处理页面逻辑,如循环遍历图书列表,根据条件显示或隐藏...

    EL+JSTL+分页

    通过使用JSTL,我们可以使JSP页面更符合MVC(Model-View-Controller)架构,降低代码的复杂性,提高可维护性。例如,`&lt;c:forEach&gt;`标签用于遍历集合,`&lt;c:if&gt;`用于条件判断,`&lt;c:set&gt;`用于设置变量。 **分页** 在...

    网上书店 jsp+jstl1.1+el+sql2000+javabean

    网上书店 jsp jstl1.1+el+sql2000+javabean 网上书店 jsp jstl1.1+el+sql2000+javabean 网上书店 jsp+jstl1.1+el+sql2000+javabean 网上书店 jsp+jstl1.1+el+sql2000+javabean 网上书店 jsp+jstl1.1+el+sql2000+...

    fileup.jar+json.jar+js.jar+jstl.jar四合一jar包

    在IT行业中,Java开发是广泛使用的编程语言,而jar(Java Archive)文件是Java平台特有的归档文件格式,用于集合多个类文件和其他资源,形成一个单一的可执行文件,便于分发和运行。"fileup.jar+json.jar+js.jar+...

    el+jstl jar包 jstl.jar和standard.jar

    总的来说,`el+jstl jar包`是Java Web开发中不可或缺的一部分,它们极大地简化了JSP页面的编程,提高了开发效率,同时也使得XML数据在网络传输和展示过程中更加便捷。这两个库的合理使用,能帮助开发者构建更加高效...

    JSP+Struts+JSTL技术的MVC架构

    **JSP+Struts+JSTL技术的MVC架构详解** 在Web应用程序开发中,MVC(Model-View-Controller)架构模式被广泛采用,它有效地分离了业务逻辑、数据处理和用户界面,提高了代码的可维护性和可扩展性。JSP(JavaServer ...

    Tomcat+JavaWeb+JDBC+JSTL+jQuery.7z

    《深入理解Tomcat+JavaWeb+JDBC+JSTL+jQuery技术栈》 在现代互联网应用开发中,JavaWeb以其稳定性和强大的功能占据了一席之地。本集合文件"Tomcat+JavaWeb+JDBC+JSTL+jQuery.7z"涵盖了构建Web应用程序的关键技术,...

    Struts+Servlet+jstl 图书管理

    总结来说,"Struts+Servlet+jstl 图书管理"是一个基于Java技术的图书管理系统,利用Struts框架实现MVC模式,Servlet处理请求和响应,JSP展示内容并结合JSTL简化页面编程。这个系统对于学习和理解Java Web开发有很好...

    基于SSM+ECharts+jquery+bootstrap+jstl的高校科研管理系统

    基于Java的SSM框架+ECharts+jquery+bootstrap+jstl编写的高校科研管理系统,适用于ssm的初学者的参考项目,系统包含了个人信息,教师管理,项目管理,奖励管理和出版物管理模块。 运用到的知识点主要有,spring创建...

    servlet+jstl+mysql

    JSTL(JavaServer Pages Standard Tag Library)是Java服务器页面的标准标签库,提供了丰富的标签来简化JSP页面的编程。它将复杂的Java代码从JSP页面中移除,使得页面更加清晰,易于维护。JSTL的核心标签库(c芯)用于...

    JavaWeb有机果蔬商城系统有机蔬菜水果商城系统(分前后台javaWeb+jsp+jstl+css+js+mysql)

    javaWeb+jsp+jstl+css+js+mysql 三、开发运行环境 jdk1.8 Tomcat8及其以上版本 Mysql5.5及以上版本 # 四、系统功能 系统分为两种用户:管理员,普通会员 前台: 首页 用户登录 用户注册 商品类别展示 查看商品...

    JSP+Struts+JSTL+EL学习实例

    使用JSTL可以减少JSP页面中的脚本代码,使得页面更加整洁,易于维护。JSTL的核心部分包括Core、JSTL SQL、JSTL XML和JSTL Functions四个标签库。 EL(Expression Language)是Java EE的一部分,提供了一种简洁的...

    standard.jar+jstl.jar

    JSTL提供了一套标准的标签,用于替代JSP页面中的脚本元素,使代码更加简洁、易读且易于维护。 **standard.jar** 是一个包含JSTL核心库的JAR文件,它提供了处理控制流程、迭代、条件判断等功能的标签。例如,`&lt;c:if&gt;...

    泽风留言本(JSP+Struts+JSTL)

    【泽风留言本(JSP+Struts+JSTL)】是一个基于MVC设计模式的Web应用程序,它利用了Java服务器页面(JSP)、Struts框架和JavaServer Pages Standard Tag Library(JSTL)来构建一个功能完善的留言系统。这个项目的核心...

    基于jsp+Servlet+jstl写的考勤系统.zip

    3. jstl:jstl是JSP的一种标签库,它提供了丰富的标签供开发者使用,简化了JSP页面的代码结构,使得页面更加清晰易读。在考勤系统中,jstl可以用于数据处理,如条件判断、循环、数据格式化等,比如使用`&lt;c:forEach&gt;`...

    学生选课 javaweb+jstl

    **JSTL(JavaServer Pages Standard Tag Library)**是JavaWeb中的一个标准标签库,提供了许多预定义的标签,可以简化JSP页面的编程,提高可读性和维护性。在"学生选课"项目中,JSTL可能用于以下几个方面: 1. 数据...

    hibernate+dwr+spring+jstl的demo

    【标题】"hibernate+dwr+spring+jstl的demo"揭示了这是一个结合了四个关键技术的示例项目,主要用于展示如何在Web开发中整合这些技术。这些技术分别是Hibernate(对象关系映射框架)、Direct Web Remoting (DWR)(一...

Global site tag (gtag.js) - Google Analytics