开发者社区> 问答> 正文

Servlet中根目录重定向的问题:配置报错

第一次在社区发问题,
初学Servlet,碰到一个有关更目录重定向的问题:
1.配置web.xml
  <servlet>         <servlet-name>LoginServlet</servlet-name>         <servlet-class>com.servlet.LoginServlet</servlet-class>   </servlet>   <servlet-mapping>         <servlet-name>LoginServlet</servlet-name>         <url-pattern>/</url-pattern>
  </servlet-mapping>

2 在LoginServlet的doGet方法中,重定向到/blog/blog.html
resp.sendRedirect("/blogStudy/blog/blog.html"); return;
【通过以上1,2步,浏览器会提示网站有“重定向循环”的错误】
要如何实现像weibo.com那样,会根据登陆信息来实现访问根目录重定向到自己的主页上呢?

展开
收起
kun坤 2020-06-04 10:23:01 548 0
1 条回答
写回答
取消 提交回答
  • 如果是使用 “/” 这种 拦截所有请求的 Servlet ,就必须:
    1)自己处理类似 *.html, *.jsp ... 等等所有请求
    2)在 web.xml 的 servlet 配置中,添加参数  <load-on-startup>1</load-on-startup> 。将 *.html, *.jsp ..等等静态文件交由 Tomcat 的 DefaultServlet 处理。
    如果你不想自己手动处理静态文件。。就要添加<load-on-startup>1</load-on-startup>
    例如 web.xml 这样配置:
    <servlet>         <servlet-name>LoginServlet</servlet-name>         <servlet-class>com.servlet.LoginServlet</servlet-class>
            <load-on-startup>1</load-on-startup>   </servlet>
    多个 servlet 对同一个 URL 映射时,Tomcat 会根据 servlet 的先后顺序来处理,将你自己的 servlet 的顺序设置为 1 ,那么 tomcat 在接收到例如 *.html, *.jsp 等之类的映射时,会先分派给 DefaultServlet (优先级就会比你的 Servlet 高)处理。当然,如果你自己有一套 *.html等的处理机制,就不必加 load-on-startup,自己进行处理。
    ######O(∩_∩)O谢谢!

    2020-06-04 11:20:52
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载