SpringMvc登录后刷新重复提交(登录成功,session失效后刷新页面发现用户名和密码仍然存在)解决方案

解决刷新重复提交的方法有很多种,如:ajax,token.

这里我用的是redirect来防止页面刷新重复提交.

适用场景:登录页面点击登录后跳转登录成功页面,等待session过期后刷新页面,重新回到登录页面.

//登录方法旧

@RequestMapping("/loginOn")

    public String login(HttpServletRequest request,HttpServletResponse response){
    String username = request.getParameter("username");

    String password = request.getParameter("password");

   //此处省去业务.....

    return "admin";   //return "admin"  跳转到admin.jsp页面

}

一开始本人使用的是上面的方法,登录成功后直接跳转到admin.jsp页面,但是session过期后刷新,用户名和密码会任然存在,并且重复了一遍提交动作.改成如下代码即可:

//登录方法新

@RequestMapping("/loginOn")

    public String login(HttpServletRequest request,HttpServletResponse response){
    String username = request.getParameter("username");
    String password = request.getParameter("password");

    //此处省去业务.....

    return "redirect:/user/loginByadmin";

}

@RequestMapping("/loginByadmin")
    public String loginByadmin(HttpServletRequest request,HttpServletResponse response){
        System.out.println("用户登录....");
        return "admin" ;
    }

ps:由于各种原因限制,有的小伙伴可能用不了我的实现代码.但是编程重要的是思路,把你原来的页面跳转方法换成redirect重定向方法,我相信一定也能解决重复提交的问题.

好的,我可以为您提供相关的指导。 首先,您可以使用Spring Boot来快速创建一个SpringMVC项目。在创建项目时,可以选择Spring Web依赖项,以便您可以使用SpringMVC框架。 在项目中,您需要创建一个Controller类来处理请求。在这个Controller类中,您需要定义一个@RequestMapping注解来处理登录页面的请求,并返回一个视图名称,用于渲染登录页面。 下面是一个简单的示例代码: ```java @Controller public class LoginController { @RequestMapping("/login") public String loginPage() { return "login"; } } ``` 在上面的代码中,我们定义了一个@RequestMapping注解来处理URL为“/login”的请求,并返回名为“login”的视图名称。 接下来,您需要创建一个login.jsp文件,用于渲染登录页面。在这个文件中,您可以包含用户名密码输入框以及登录按钮等HTML元素。 下面是一个简单的示例代码: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Login Page</title> </head> <body> <h1>Login Page</h1> <form action="/login" method="post"> <label for="username">Username:</label> <input type="text" id="username" name="username"><br><br> <label for="password">Password:</label> <input type="password" id="password" name="password"><br><br> <input type="submit" value="Login"> </form> </body> </html> ``` 在上面的代码中,我们创建了一个包含用户名密码输入框以及登录按钮的表单,并将表单的action属性设置为“/login”,以便在用户单击登录按钮时向服务器发送POST请求。 最后,您需要在应用程序的配置文件中配置视图解析器,以便将视图名称解析为JSP文件路径。 下面是一个application.properties文件的示例配置: ``` spring.mvc.view.prefix=/WEB-INF/views/ spring.mvc.view.suffix=.jsp ``` 在上面的配置中,我们将视图前缀设置为“/WEB-INF/views/”,将视图后缀设置为“.jsp”,这样当我们返回名为“login”的视图名称时,SpringMVC就会将其解析为“/WEB-INF/views/login.jsp”文件路径。 完成上述步骤后,您就可以启动应用程序,并访问“http://localhost:8080/login”URL来查看登录页面了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值