晶. 2022-05-21 21:53 采纳率: 92.1%
浏览 34
已结题

无论输入什么网址一直是同一个页面

http://localhost:8080/ 后面无论加什么内容,一直显示main.jsp这个页面,

img

输入账号密码点登录还是这个页面,没变化,网址变成http://localhost:8080/login


```java
package controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import pojo.User;

import javax.servlet.http.HttpSession;

@Controller
public class UserController {
    @RequestMapping("/main1")
    public String main(){

        return "main";
    }

    @RequestMapping("/toLogin")
    public String toLogin(){

        return "login";
    }

    @RequestMapping("/toOrderInfo")
    public String toOrderInfo(){

        return "orderinfo";
    }

    //登录
    @RequestMapping("/login")
    public String login(User user, Model model,HttpSession session){

        //判断用户名和密码
        String username = user.getUsername();
        String password = user.getPassword();
        if (username!=null&&"李硕".equals(username)&&password!=null&&"123456".equals(password)){
            //登录成功
            session.setAttribute("user",user);

            return "redirect:main";
        }else{
            //登陆失败
            model.addAttribute("msg","用户名或者密码错误");
            return "login";
        }
    }


    //退出成功,需要跳转到登陆页面
    @RequestMapping("/logout")
    public String logOut(HttpSession session){

        session.invalidate();

        return "login";
    }
}


package interceptor;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class LoginInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        //针对登录和跳转到登录页面的进行放行
        String requestURI=request.getRequestURI();
        if (requestURI.indexOf("/login")>0||
        requestURI.indexOf("/toLogin")>0){
            //直接放行
            return true;
        }
        //其他请求需要做登陆权限拦截判断
        HttpSession session = request.getSession();
        Object user = session.getAttribute("user");
        if (user!=null){
            //登录成功,放行
            return true;
        }
        //没有登录,跳转到登录页面
        request.setAttribute("msg","您还没有登录,请先登录");
        //此处视图解析器不生效,原生Javweb技术;
        request.getRequestDispatcher("/WEB-INF/jsp/login.jsp")
                .forward(request,response);

        return false;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {

    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

    }
}


```

img

img

  • 写回答

1条回答 默认 最新

  • 学习日记 后端领域新星创作者 2022-05-21 22:31
    关注

    那就是一直没登录上呗,你试试把登录拦截先取消一下,或者直接调试看看是不是没有登录上,然后一直拦截着呢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月28日
  • 已采纳回答 6月20日
  • 修改了问题 5月21日
  • 创建了问题 5月21日

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘