m0_64404016 2023-03-16 18:17 采纳率: 100%
浏览 18
已结题

action=in&id=1&pw=123请问要如何利用Servlet过滤器对这种行为进行过滤呢

现在用JAVAEE制作了一个登录系统
一般而言需要手动登录才能进入系统
使用Servlet过滤器进行初步加权限(限制未登录直接访问)后发现用户在网址窗口明文输入用户名和密码也能直接登录系统
例如:
oa?action=in&id=1&pw=123
请问要如何利用Servlet过滤器对这种行为进行过滤呢?

  • 写回答

3条回答 默认 最新

  • 追cium 2023-03-16 19:10
    关注

    参考GPT和自己的思路:

    若想通过Servlet过滤器来过滤输入的用户名和密码,需要进行以下步骤:

    1. 在过滤器中获取请求的参数,即用户名和密码;
    2. 进行校验,如判定用户名和密码是否为空,是否符合规范等;
    3. 如果校验通过,将请求传递给下一个过滤器或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文件中配置过滤器即可达到对输入的用户名和密码进行过滤的目的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月24日
  • 已采纳回答 3月16日
  • 创建了问题 3月16日

悬赏问题

  • ¥15 运动想象脑电信号数据集.vhdr
  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目