ssm项目把jsp放在web-inf目录下是不是有缺陷的?登陆时如何具体提示用户是name不存在,还是password错误

时间:2021-03-13 11:32:07
我搭建了一个spring+springmvc+mybatis的web项目,据说jsp放在web-inf下比较安全。那么问题来了:

目录结构:login.jsp在WebContent下,Content文件夹放css,Scripts放js,其他视图都放在web-inf下的home里 ssm项目把jsp放在web-inf目录下是不是有缺陷的?登陆时如何具体提示用户是name不存在,还是password错误,login.jsp是纯粹的表单提交,name和password,提交到叫做login的controller: ssm项目把jsp放在web-inf目录下是不是有缺陷的?登陆时如何具体提示用户是name不存在,还是password错误,controller返回视图名Contact,是web-inf下home下的Contact.jsp,如果name和password都正确,正常跳到Contact.jsp,如果不正确,怎么正确提示呢?表单提交只能返回视图名,不用ajax是因为ajax不能根据视图名跳转,想跳转就要在success的回掉函数里location.href = '<%=path%>/home/Contact.jsp';,我Contact.jsp在web-inf下,显然不能跳转,如果视图在webContent下,完全可以用ajax,能提示能跳转;那么视图在web-inf下,怎么才能提示和跳转呢?

4 个解决方案

#1


错误一般都会request存储一个错误信息,然后在返回到login视图中去!
login视图检查是否有错误信息,有就显示错误信息!

#2


1. "表单提交只能返回视图名" 这个有问题. 可以返回modelandview 或者 在形参  中添加 Model .具体的搜索一下吧.
2.尽量不要直接跳转jsp页面 ,最好 通过controller再返回到相应 的视图
3.登录时 对于 账号密码错误 提示 还是 就单一 提示 账号或密码错误 就好. 因为 只提示密码错误的话 会被 别人不断尝试的.

#3


如果发生错误,使用ModelAndView的addObject方法设置错误信息,使用setViewName方法重新转发到登录页面

#4


感谢大家的回答,我找到自己的错误了,之前以为location.href只能跳到jsp,请求controller跳转就完全ok了

#1


错误一般都会request存储一个错误信息,然后在返回到login视图中去!
login视图检查是否有错误信息,有就显示错误信息!

#2


1. "表单提交只能返回视图名" 这个有问题. 可以返回modelandview 或者 在形参  中添加 Model .具体的搜索一下吧.
2.尽量不要直接跳转jsp页面 ,最好 通过controller再返回到相应 的视图
3.登录时 对于 账号密码错误 提示 还是 就单一 提示 账号或密码错误 就好. 因为 只提示密码错误的话 会被 别人不断尝试的.

#3


如果发生错误,使用ModelAndView的addObject方法设置错误信息,使用setViewName方法重新转发到登录页面

#4


感谢大家的回答,我找到自己的错误了,之前以为location.href只能跳到jsp,请求controller跳转就完全ok了