请教SSH的验证问题:如果一个填写的表单不按要求输入,验证操作是在JSP页面进行(或用JavaScript),还是在ActionForm中进行?新手求教,高人指点 谢谢~~
解决方案 »
- 寻求合适的java框架,帮帮我
- Rose逆向生成不了与org包有关联的java类怎么办?
- 谁能解开这个问题谁就牛逼了!!!
- 请教struts国际化问题
- 我用htmlunit想获取js加载后的页面源码 但是不知道怎么做 求指教
- 使用hibernate进行两表关联查询,非得进行关联配置吗
- 请问 corejava+j2ee+c#+OOAD+vc#+vb.net+asp.net+sql+oracle+db2=多少工资????????
- 急啊!!!!数据层中无法实例化WebServices中的Bean对象吗????????
- 请问在java用pop3接收邮件怎样判断是新邮件???
- 所有J2EE初学者大家团结起来!问些问题吧。
- hibernate.get的问题
- 急,跪求帮忙!
但如果有人屏蔽JAVA脚本代码 你的JavaScript就不起作用了 所以action也得写验证
大哥,我问的是ActionForm里面的验证validate,不是Action
javascript可以防大部分人,但一些人可能就要服务器端验证了。
服务器端验证可以在ActionForm在validate方法中验证,也可以用validate框架
public ActionForward login(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
你不得访问action吗? 要不你怎么取actionForm
User userForm = (User) form;
他只是吧你前台页面中 Form有User属性的 放到里面 没有的还得用
String strRand=request.getParameter("strRand"); 取值验证验证是怎么写的
if(userForm.getName()==null ||userForm.getName().equals("")){
message.add("message",new ActionMessage("用户名不能为空",false));
this.saveErrors(request,message);
return mapping.findForward("index");
}else if(user==null|| user.equals("")){
message.add("message",new ActionMessage("用户名或密码错误",false));
this.saveErrors(request,message);
return mapping.findForward("index");
}else if(!strRand.equals(rand)){
message.add("message",new ActionMessage("验证码输入错误",false));
this.saveErrors(request,message);
return mapping.findForward("index");
}
然后还得sturts里面
<action attribute="userForm" parameter="method" validate="true"
name="userForm" path="/user" scope="request"
type="org.springframework.web.struts.DelegatingActionProxy">
validate 功能打开才能实现
ApplicationResources.properties
配置文件可以改变他的字体和颜色
errors.header=<font color='red' size='2'>
errors.footer=</font>
messages.header=<font color='blue'>
messages.footer=</font>
errors.prefix=<li>
errors.suffix=</li>
这回你应该明白了吧,哎无语
最安全的方法是三处处理:
一处是 js先验证二处是 actionForm , 这个可以防止网页下载到本地对js进行修改,然后再本地发起请求三处 是防止sql注入over。