Feb 10

WOJ-Land 不指定

felix021 @ 2010-2-10 01:08 [IT » 其他] 评论(1) , 引用(0) , 阅读(6987) | Via 本站原创
决定了毕设做这个东西。WOJ3.0。
起名Land,不是我自己想出来的,忘了是谁贡献的了。之所以叫做Land,看如下的woj名字的演化就知道原因了:D
noah(v1.0) -> oak(ark?)(v1.1) -> flood(v2.0) -> land(v3.0)

去年暑假还写了个不成器的judge然后就荒了,不过也算是打个基础。

这次要更详细地考虑具体的OJ系统架构了。

前端就apache+php吧。如果有空可以试试加一层lighttpd。需要完成的基本功能就是题目相关(包括统计数据),比赛(虚拟比赛?),站内信,题目讨论,后台管理。模板尽量参考Noah的,保持风格统一。这个是代码量最大的,但是应该不难。主要是要实现容易扩展的架构,使得将来增加新功能比较方便,不再需要重写OJ了。

数据库还是MySQL,比较熟。得有个数据转换工具,把noah的数据转过来。

Daemon可以用java,我给oak重写的那个版本拿来改改就能用。

希望有一个judge wrapper负责数据库相关的处理,让judge只负责judge。看起来用php挺好的。

Judge可以在hustoj和之前那个oj的基础上写一个,不过还得有进一步的拆分。每个语言一个judge,因为编译、执行、监控可能都有较大区别。把判断AC/PE/WA的功能和SPJ的功能也独立出来,由wrapper来组装使用。

可能还需要一个补单的,有可能数据库中存在一些还没有judge并且不会再被自动judge的item。

此外有点想搞一个memcached,减轻在比赛时mysql的负担。

目前想到这些,这两天再仔细考虑考虑,就要动手做了。希望有人多提意见和建议。

p.s. 祈祷这个项目不会烂尾...
Feb 9

jsp学习小记 不指定

felix021 @ 2010-2-9 21:23 [IT » 网络] 评论(1) , 引用(0) , 阅读(5625) | Via 本站原创
这几天简单学习了一下jsp的使用(主要是看《jsp开发web应用系统参考书籍》系列pdf),大致做一下记录。

首先是环境,jdk是必须的,服务器我用tomcat,因为以前搞noah/oak的时候整过,熟悉些。具体的配置不赘述了,网上很多,无非是JAVA_HOME CLASSPATH CATALINA_HOME之类的环境变量。此外为了连上mysql,还要去下个jar,比如mysql-connector-java-5.0.8-bin.jar,可以在网上搜到。这个要放在tomcat/shared/lib/下面。当然,也是可以放在jsp的WEB-INF/lib下面,但是这个我没研究过,不太了解细节。

最简单地写JSP,其实和写ASP/PHP很像,把java当成一个面向过程的语言填上去就行了。比如经典的hello world:
<html>
<body>
<%
    out.println("Hello, world!\n"); //在jsp里输出就用out啦,不是System.out。
%>
</body>
</html>

因为这里的java和普通的*.java程序不一样,所有有些语句也得变,比如import不能直接用了,必须这么写:
引用
<%@ page import="java.sql.*" %>

格式为 <%@ page oo="xx" %> 这样的oo和xx有很多个,比如session开关就是通过这种方式控制,详情参考那些pdf。包含文件则用<%@ include file="xxxx" %>这样的格式。


在编写的过程中要获取GET/POST等请求的数据以及客户端IP等信息的时候,可以使用默认import进来的request对象,有getParameter()、getMethod()、getRequestURI()、getRemoteADDR()....等方法。相当于php的$_GET/$_POST/$_SERVER等变量的大杂烩。

要控制输出,比如HTTP Header或者具体的Cookie字段,则使用response对象的addCookie()、addHeader()等方法。

Session,则是使用session对象。但是要先<%@ page session="true" %>开启session。

此外还有一个和ASP同样性质也同名的Application对象。看起来像是抄ASP的。就是一个和服务器同生死的全局变量。

以上就是最简单的jsp开发需要的一些东西了。至少开发一个留言板什么都OK了 :)

至于Java Beans,这个是第六章,我还没看...
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]