1,SmartUpload上传文件,如果用户上传了很大的文件,SmartUpload也是先上传了才能确认大小,这样设置上传文件的大小就没意义了,客户端确认?如果用户屏蔽了浏览器JS功能呢?2,一般设计是一个表单提交到一个servlet,servlet得到提交的数据去处理,或者一个或多个连接 带不同的参数,提交到一个servlet,servlet根据不同的参数做不同的事情,那如果客人不按照套路出牌,直接去访问servlet,此时就没有参数或者 用户把表单中的提交项目的名字都修改了(firefox的debug插件都可以直接修改页面的各个html元素的------判断用户是否登录此时没任何意义的),或者用户自己设计一个页面就是要提交到你这个servlet,此时servlet就拿不到需要的参数或表单项,极容易出错误 甚至down机, 如果按照自己设计的html表单参数项逐个去判断(如用户名,密码,年龄,性别,EMAIL等等),那一个项目中 ,每个servlet都要做这样类似的大量判断,然后再取值,岂不是很麻烦?3,通常的增,删,改,查四种操作中,比如修改,通常是“修改”连接提交到一个servlet,这个servlet根据ID,查询数据库得到相关信息 封装到一个bean中(vo),然后把这个vo设为request的一个属性,然后转到编辑页面,编辑页面拿到vo,再把对应的值赋值到编辑页面的各个html表单项上,同时做个hidden 表单项 保存ID,用户修改完后 提交到一个servlet A,然后servlet A就reuqest.getParameter()得到ID,以判断需要修改哪条记录,如果用户 把这个hidden的ID修改了怎么办? 比如一个多用户的blog系统,每条blog都有一个id,如果这个用户在修改自己的一条blog时 故意把这个hidden的ID值改为其他用户的某条blog的值,那他一提交 就修改了别人的blog了。是否应该在修改前先根据用户名和这个blog ID去查询一下 看有没有符合的 然后再修改。
一般是 js 验证,不过不如 servlet 验证安全。
不过对于大量的 重复性判断,没必要一个个 servlet 自己判断。可以交给 filter
如果用了 struts,就更方便了,写一个 action 继承 actionServlet 进行安全判断,其他所有需要重复判断的 action 继承这个 action 就可以了