zili_zq
zili_zq
2018-12-02 13:58
采纳率: 40%
浏览 911
已采纳

webservlet在doGet中 不执行 req.getRequestDispatcher(USER_VIEW).forward(req,resp),一直在doget里面循环

 @WebServlet(
        urlPatterns = {"/user/*"},
        initParams = {
                @WebInitParam(name = "USER_VIEW",value = "user.jsp")
        }
)

public class User extends HttpServlet {
    private String USER_VIEW;

    public void init(){
        USER_VIEW = getServletConfig().getInitParameter("USER_VIEW");
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        UserService userService = (UserService) getServletContext().getAttribute("userService");

        String usrname = req.getPathInfo().substring(1);
        if(userService.isUerExisted(usrname)){
            Blah blah = new Blah();
            blah.setUsername(usrname);
            List<Blah> blahs = userService.getBlahs(blah);
            req.setAttribute("blahs",blahs);
        }
        req.setAttribute("username",usrname);
        req.getRequestDispatcher(USER_VIEW).forward(req,resp);
    }

USER_VIEW 是 user.jsp 页面.
在浏览器请求:http://localhost:8080/wbojsp/user/liming
请求大神支援!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • qiangchen1990
    qiangchen1990 2018-12-03 03:00
    已采纳

    图片说明

    从图中看得出来,当path不是/开头时,会自动添加当前请求的路径。所以你的请求会一直被servlet拦截处理而不到页面。

    截图只是httpservlet的一个实现类。

    点赞 评论
  • devmiao
    devmiao 2018-12-02 14:15
    点赞 评论
  • qq_16127313
    爱码少年 2018-12-02 14:19

    doGet 加一句,你就知道原因了
    System.out.println(req.getRequestURI());

    点赞 评论

相关推荐