Web问题总结
ajax请求中重定向,前台页面并没有跳转
答: ajax只是局部刷新,所以不能在后台接口直接进行页面的跳转,只能在ajax的回调函数中进行页面的跳转。在ajax的success中window.location.href=”跳转的路径”; 利用页面做跳转。
一个request怎么在tomcat里,映射到controller的过程。起因:访问一个不存在的路径比如http://loclhost:8080/aaa,其中/aaa没有路径映射,拦截器也没有进,直接转到/error页面了
答:待解决。已经确认的是,如果访问的路径不存在,过滤器可以拦截到,拦截器不执行。可以确定过滤器在拦截器之前触发。具体的触发流程要根据servlet容器,
tomcat –>server—>service(connector + container)
container (Engine –> host –> context –> wrapper)
参考资料:
拦截器和过滤器的区别:
https://blog.csdn.net/zxd1435513775/article/details/80556034
过滤器: https://www.cnblogs.com/coderland/p/5902878.html
https://blog.csdn.net/lsgqjh/article/details/55804165
(其中执行顺序仅描述了正常情况)
forword和Redirect的区别
?
答:forword:直接转发,不需要浏览器只发出一个请求。
一般方式:request.getRequestDispatcher(“定向资源路径”).forward(request,response);
Redirect:间接转发(重定向)。需要浏览器请求两次。
一般方法:response.sendRedirect(“资源的URL”);
参考资料:https://www.cnblogs.com/selene/p/4518246.html
页面路径'#'号的作用,比如http://localhost:8080/aaa#abc
答: 总的理解是前端用于定位的符号,后端没有用。但是如果在 url中错误的使用了#,#后面的参数不会被传递到后台
参考资料: https://blog.csdn.net/sodaslay/article/details/51222053