1.web-info:
WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。
如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。
WEB-INF文件夹下除了web.xml外,还存一个classes文件夹,用以放置 .class文件,这些 .class文件是网站设计人员编写的类库,实现了jsp页面前台美工与后台服务的分离,使得网站的维护非常方便。web.xml文件为网站部署描述XML文件,对网站的部署非常重要。
Web-Inf文件夹中除了有classes文件夹和一个web.xml文件外、还有lib文件夹(用于存放需要的jar包)(用于配置,比如说用来配置过滤器等。)
后面有个例子访问,web-info目录下的文件
2.eclipse web项目中的source folder:
Source Folder在eclipse中就是放入class文件的路径,大家都熟悉的src就是Source Folder。
当我们发布程序时,src下面的.Java文件都编译成了.class文件放入WEB-INF\classes文件夹下(也就是上面那个web-info目录中的.class文件夹下)。
你也可以建一个Source Folder,名字随便起,但记得它里面的内容最终发布时在被放在了WEB-INF\classes文件夹下。
大家注意一点,Source Folder本来只能放.java文件的,最后发布时编译成class文件放到WEB-INF\classes下.
3.
web项目根目录
项目根目录其实就是你的项目下的wepapp目录或者webcontent目录,不管是哪个目录,部署以后,就会将webapp或者webcontent改成你的项目名称,变成你的项目根目录。在项目根目录下的东西(也就是在webapp或者webcontent下直接建的目录或文件)都能被浏览器直接访问,
访问web-info目录下页面文件案例:
http://localhost:8080/myapp/select.jsp
select.jsp(放在webapp或者webcntent目录下):
Html代码 收藏代码
<a href="/myapp/upload">上传</a>
<a href="/myapp/listfile">下载</a>
web.xml:
Xml代码 收藏代码
<servlet>
<servlet-name>MyTest</servlet-name>
<servlet-class>MyTest</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyTest</servlet-name>
<url-pattern>/listfile</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>MyTest</servlet-name>
<url-pattern>/upload</url-pattern>
</servlet-mapping>
MyTest.java:
Java代码 收藏代码
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyTest extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
if(request.getServletPath().equals("/listfile")){
getServletContext().getRequestDispatcher("/WEB-INF/listFile.jsp").forward(request,response);
}else if(request.getServletPath().equals("/upload")){
getServletContext().getRequestDispatcher("/WEB-INF/upload.jsp").forward(request,response);
}
}
}