猿问

java重定向与转发的问题

  1. 描述你的问题
    最近在做一个论坛的小项目,用户登录后会返回论坛主页面,并由游客身份变为普通用户。登录页面存放在论坛页面中,框架使用的是spring MVC ,在用户提交登录信息后,后台验证完毕向论坛主页面返回登录的用户信息。这里如果使用重定向的话,数据不能返回到主页面,所有改成了转发。但是使用转发存在用户提交完数据后点浏览器刷新或点后退之后产生重复提交的问题,怎么解决这个问题?

  2. 贴上相关代码

@RequestMapping("/login.do")

public String checkLogin(String code,String pwd,ModelMap data){

    

    System.out.println("admincode="+code+",pwd="+pwd);

    try {

            User user = service.checkLogin(code, pwd);

        

    } catch (Exception e) {

        e.printStackTrace();

        if(e instanceof ApplicationException){

            data.addAttribute("msg",e.getMessage());

            data.addAttribute("code", code);

            return "main";

        }else{

            return "error";

        }

    }

    data.addAttribute("username", code);

    return "main";

}

这里采用的是转发的方式。将用户名返回给主页面。但是刷新页面或后退会产生重复提交,这样的话不是应该使用重定向来防止这样的问题么。但是重定向没办法返回数据,所以应该使用session来存放用户的登录信息返回给主页面,对么?

叮当猫咪
浏览 357回答 1
1回答

LEATH

登录成功之后用户信息不是应该放到session吗,没必要通过request进行传递,你这里最好还是使用重定向,而非转发,重定向之后获取用户名可以通过session获取
随时随地看视频慕课网APP

相关分类

Java
我要回答