选择文件或上传文件

  现在要给考题录入模块添加一个“选取服务端目录下已有源文件”的功能。假如一道题目的题干是这样的:请在相应的地方填写表达式,使程序最终输出为4,或者5,等等。又或许会有这样的题干:请在相应的地方填写表达式,使列表按从小到大/从大到小的顺序排列。

  这种情况下,就可以让多道考题都对应同一个源文件,这样通过为不同的考生抽取不同却又类似的考题,可以在一定程度上实现防替考的功能。为了实现这一需求,就必须获取服务端现存的所有源文件,然后以下拉列表的形式显示出来,供教师选择。

  考虑到“获取目录下所有文件”这一操作,除了考题录入外,可能还会在别的地方被用到,所以写成一个独立的servlet,谁要用它,就调用它。

 

 

  第46行使用"/"作为各个文件名的分隔符。通过在window XP系统下验证得知,文件名不得包含若干字符,包括"/",其它系统就不清楚了。

 

  在客户端页面定义两个按钮,分别是“选择已有文件”和“上传新文件”。除了初始状态以外,这两个按钮中只能有一个可用。例如,“上传新文件”按钮点击事件部分代码如下:

 

  “获取服务端已有文件”操作请求,可利用$.post()方法提交给后台。

 

  post方法第二个参数是一系列键/值对,由于此处无需提交任何请求信息,故设为空。第三个参数是处理反馈结果的函数,包括创建下拉列表控件,并填入服务端返回的信息,随后插入到dom显示列表中。

 

  如果选择上传新文件,那么创建相应控件如下:

 

 

  刚才在编码的过程中,系统意外发生蓝屏崩溃了。reset重启后,发现tomcat目录里,项目目录下的一些文件,包括上传的程序源文件,以及数据库连接池配置文件和日志文件,都丢失不见了。这是个潜在的缺陷,原因不得而知,暂时也不清楚如何防范。

 

  在servlet中如何读取encType="multipart/form-data",这样的表单提交的内容,目前不得而知。直接利用HttpServletRequest读取只能获得null,网上也只说利用cos、struct这类组件,不太清楚如何利用原生的Java实现这些。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值