现在用JAVAEE制作了一个登录系统
一般而言需要手动登录才能进入系统
使用Servlet过滤器进行初步加权限(限制未登录直接访问)后发现用户在网址窗口明文输入用户名和密码也能直接登录系统
例如:
oa?action=in&id=1&pw=123
请问要如何利用Servlet过滤器对这种行为进行过滤呢?
action=in&id=1&pw=123请问要如何利用Servlet过滤器对这种行为进行过滤呢
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 追cium 2023-03-16 19:10关注
参考GPT和自己的思路:
若想通过Servlet过滤器来过滤输入的用户名和密码,需要进行以下步骤:
- 在过滤器中获取请求的参数,即用户名和密码;
- 进行校验,如判定用户名和密码是否为空,是否符合规范等;
- 如果校验通过,将请求传递给下一个过滤器或Servlet进行后续处理;否则,返回错误信息或者跳转到错误页面。
具体实现方式可以参考以下代码:
public class LoginFilter implements Filter { public void init(FilterConfig filterConfig) throws ServletException { } public void destroy() { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse res = (HttpServletResponse) response; String id = req.getParameter("id"); String pw = req.getParameter("pw"); if (id == null || pw == null || id.trim().isEmpty() || pw.trim().isEmpty()) { res.sendRedirect("error.html"); // 校验失败,跳转到错误页面 } else { chain.doFilter(request, response); // 校验成功,将请求传递给下一个过滤器或Servlet进行后续处理 } } }
参照上述代码实现过滤器,并在web.xml文件中配置过滤器即可达到对输入的用户名和密码进行过滤的目的。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 对于相关问题的求解与代码
- ¥15 ubuntu子系统密码忘记
- ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
- ¥15 保护模式-系统加载-段寄存器
- ¥15 电脑桌面设定一个区域禁止鼠标操作
- ¥15 求NPF226060磁芯的详细资料
- ¥15 使用R语言marginaleffects包进行边际效应图绘制
- ¥20 usb设备兼容性问题
- ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
- ¥15 安装svn网络有问题怎么办