JavaWeb_servlet

通过 ServletContex 获得根目录下的文件路径

  • demo1
    JavaWeb_servlet(10)_ 通过 ServletContex 获得根目录下的文件路径
  • web.xml
    JavaWeb_servlet(10)_ 通过 ServletContex 获得根目录下的文件路径
  • 启动 Tomcat
  • 测试,浏览器访问
    JavaWeb_servlet(10)_ 通过 ServletContex 获得根目录下的文件路径

以上操作完整源码:
demo1

package com.wyx.servlet;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class demo1 extends HttpServlet
{
	@Override
	public void init(ServletConfig config) throws ServletException
	{
		// 获得到ServletContext对象
		ServletContext sc = config.getServletContext();
		
		// 获得工程目录 webroot 下文件的绝对路径
		// getRealPath 的参数内容不会被校验,只有真正要用这个路径的时候才知道路径对不对		
		
		//获得根目录
		String path = sc.getRealPath("/");
		System.out.println(path);
		//获得根目录后追加 /upload,不关心有没有这个文件
		String path1 = sc.getRealPath("/upload");	
		System.out.println(path1);
			
		// 获得工程目录webroot下文件的流
		InputStream in = sc.getResourceAsStream("/WEB-INF/test1.properties");
		Properties prop = new Properties();
		try
		{
			prop.load(in);
			System.out.println(prop.get("key"));
		} catch (IOException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException
	{
	}
}

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>servlet_demo</display-name>
  
  <!-- 
 	全局(ServletContext)的容器参数
  -->
  <context-param>
  	<param-name>context_key</param-name>
  	<param-value>context_value</param-value>
  </context-param>
  
   <servlet>
  	<!-- 设置servlet的名字 -->
  	<servlet-name>helloServlet</servlet-name>
  	<!-- 具体的servlet的类 -->
  	<servlet-class>com.wyx.servlet.demo1</servlet-class> 	
  </servlet>
  
  <servlet-mapping>
    <servlet-name>helloServlet</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>
  
</web-app>

工程文件下载

如有错误,欢迎指正!

相关文章:

  • 2022-01-11
  • 2022-12-23
  • 2022-01-07
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-06
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-07
  • 2022-12-23
  • 2021-11-18
相关资源
相似解决方案