JavaWeb(三)-关于web项目中的路径问题及URL编码问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a592381841/article/details/85223798

一、web项目中的路径问题

1-1获得资源路径

1-1-1class类获得资源

InputStream in= this.getClass().getResourceAsStream("...");

class类中的ResourceAsStream;

                               以“/”开头,相对于classes路径

                               不以“/”开头,则相对于当前的class文件所在的路径

1-1-2 ClassLoader获得资源

InputStream in= this.getClass().getClassLoader().getResourceAsStream("...");

classLoader类是相当于当前的classes路径

1-1-3 ServletContext获得资源

  1. 使用ServletContext的getResourceAsStream方法:返回资源文件的读取字节流。
  2. 使用ServletContext的getRealPath方法,获得文件的完整绝对路径path(除了可以获取数据,还可以获取资源文件的名称)

1-2:web.xml下的<url-pattern>路径

  1.    以 *   开头 用于过滤器
  2.    以 / 开头 当前项目路径 开始 (http://localhost:8080/项目名/)

 1-3:转发/包含路径(服务器<--->服务器)

  1. 以 /  开头,则相当于当前项目路径 (http://localhost:8080/项目名/)
  2. 不以  /   开头,则相当于当前Servlet路径  (http://localhost:8080/项目名/Aservlet/)

1-4:重定向路径(客户端路径)

只能以/ 开头,相当于当前主机。  (http://localhost:8080/)

resp.sendRedirect(req.getContextPath()+"/EServlet");

1-5:页面中的超链接

  1. 以/ 开头,相当于当前主机。  (http://localhost:8080/)
  2. 不以 /开头,则相当于当前页面的所在路径

二、URL编码问题

由于表单类型是content-Type:application/x-www-form-urlencoded。可以直接把中文进行URL编码(%+两位16进制);

然而GET中,的中文无法直接进行URL编码

方法

java中URL 的编码和解码函数
java.net.URLEncoder.encode(String s)和java.net.URLDecoder.decode(String s);

String u=URLEncoder.encode("好的","UTF-8");
		String uu=URLDecoder.decode(u,"UTF-8");
		

      

猜你喜欢

转载自blog.csdn.net/a592381841/article/details/85223798
今日推荐