Servlet:为啥获取的是这个路径getServletContext().getResource("/")

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Servlet:为啥获取的是这个路径getServletContext().getResource("/")相关的知识,希望对你有一定的参考价值。

public void init() throws ServletException
try
System.out.println(getServletContext().getResource("/"));
catch (MalformedURLException e)
e.printStackTrace();



输出的是:jndi:/localhost/Test/

这是啥啊?我以为会输出tomcap/webapps路径呢,这个是啥路径啊?也不是我本地tomcat的路径啊

参考技术A 是JNDI里面的路径。
想取磁盘路径,getClass().getResource("/")
Servlet中获得当前应用的相对路径和绝对路径
根目录所对应的绝对路径:request.getServletPath();
文件的绝对路径 :request.getSession().getServletContext().getRealPath
(request.getRequestURI())
当前web应用的绝对路径 :servletConfig.getServletContext().getRealPath("/");
(ServletContext对象获得几种方式:
javax.servlet.http.HttpSession.getServletContext()
javax.servlet.jsp.PageContext.getServletContext()
javax.servlet.ServletConfig.getServletContext()
)

Servlet_问题总结

1.Servlet转发到JSP后页面的CSS样式丢失,页面布局混乱,原来能点的链接现在失效


  原因:原来前台页面(JSP|HTML)在引用静态资源(CSS|JS|JSP页面)时使用的是相对路径,

     导致由Servlet转发到前台页面时,css的路径就是相对于这个servlet的路径而非jsp的路径了

  解决:将静态引用的路径设置为绝对路径,这样就不会有问题了

 

以上是关于Servlet:为啥获取的是这个路径getServletContext().getResource("/")的主要内容,如果未能解决你的问题,请参考以下文章

为啥 For 循环返回“尝试获取 Vector3 值的长度”

为啥在web.xml中配置过了类的路径,但在jsp页面访问时还是提示找不到呢

创建一个类去实现javax.servlet.servlet接口,为啥报错

ServletContext总结

ServletContext总结

Servlet_问题总结