A. 在java中怎么访问web-inf 目录下的jsp页面。
外部访问来说,web-inf下的文件都是不可见的(即不能通过url获得web-info下的任何文件),所以,直接访问jsp是不可能的。可以使用view层框架(如struts)来提供jsp服务,将jsp文件放到web-info下避免客户直接访问到页面,同时使用struts来进行jsp文件提取,并将编译好的结果发送到客户端。
WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。
(1)javaweb访问路径扩展阅读:
WEB-INF 目录的作用:
/WEB-INF/web.xml
Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。
/WEB-INF/classes/
包含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中(是该目录不能包含在.jar文件中)。
/WEB-INF/lib/
存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件。
/WEB-INF/src/
源码目录,按照包名结构放置各个java文件。
/WEB-INF/database.properties
数据库配置文件
/WEB-INF/tags/
存放了自定义标签文件,该目录并不一定为 tags,可以根据自己的喜好和习惯为自己的标签文件库命名,当使用自定义的标签文件库名称时,在使用标签文件时就必须声明正确的标签文件库路径。
例如:当自定义标签文件库名称为 simpleTags 时,在使用 simpleTags 目录下的标签文件时,就必须在 jsp 文件头声明为:<%@ taglibprefix="tags" tagdir="/WEB-INF /simpleTags" % >。
/WEB-INF/jsp/
jsp 1.2 以下版本的文件存放位置。改目录没有特定的声明,同样,可以根据自己的喜好与习惯来命名。此目录主要存放的是 jsp 1.2 以下版本的文件,为区分 jsp 2.0 文件,通常使用 jsp 命名,当然你也可以命名为 jspOldEdition 。
/WEB-INF/jsp2/
与 jsp 文件目录相比,该目录下主要存放 Jsp 2.0 以下版本的文件,当然,它也是可以任意命名的,同样为区别 Jsp 1.2以下版本的文件目录,通常才命名为 jsp2。
META-INF
相当于一个信息包,目录中的文件和目录获得Java 2平台的认可与解释,用来配置应用程序、扩展程序、类加载器和服务
manifest.mf文件,在用jar打包时自动生成。
B. java web怎么访问服务器指定路径
可以把文件目录配置在web.xml文件的初始化参数中, 通过ServletAPI读取文件目录
比如
定义一个Properties文件保存相关配置
#可以上传文件的后缀名
extensions=pptx,docx.doc,txt,jpg,jar
#单个文件的大小1M
fileMaxSize=1048576
#总共上传文件大小5M
totalFileMaxSize=5242880
#文件保存路径
filePath=z:/temp
#临时文件路径
tempDir=z:/temp/temp
使用Listener在服务器启动时加载配置信息
1
2
3
4
5
6
7
8
9
10
11
ServletContext context = event.getServletContext();
InputStream inputStream = context
.getResourceAsStream("/WEB-INF/classes/file/upload/commons/uploadConfig.properties");
Properties properties = new Properties();
try {
properties.load(inputStream);
context.setAttribute("fileConfig", properties);
System.out.println("properties = " + properties.size());
} catch (IOException e) {
e.printStackTrace();
}
在你上传文件时通过配置文件读取路径保存
String filePath = ((Properties) this.getServletContext().getAttribute("fileConfig"))
.getProperty(FileUploadConstants.FILE_PATH);
C. javaWeb项目路径问题
你先搞清楚一个标准的 Java Web application 的目录结构
所谓的 webroot 下面是可以放任何的可以展示的内容,包括 jsp 和图片、css 之类的
WEB-INF 目录下的内容是禁止最终用户直接访问的,里面会有 classes 和 lib 目录。分别放执行用到的 class 和 jar 包。标准来说执行的时候,是没有 src 目录的。
另外,也不明白你为啥需要获取这些路径
D. 关于java web href中地址两边加号
你得你的项目的访问路径名称,有的项目是无路径访问,即直接h
t
t
p://ip:端口号/add.action,有的项目带路径发布,h
t
t
p://ip:端口号/路径/add.action,所以你第一步得知道这个。
假如你的项目路径叫test,你在html中a标签就写href="/test/add.action?id=1"
亲,这么辛苦的回答,记得采纳哦!
E. Java web项目访问路径问题。求解啊!
images的url写成src="${pageContext.request.contextPath}/images/logo.jpg"
一般会把${pageContext.request.contextPath}这部分提取出来,在jsp写成:
<% String path = request.getContextPath();%>
如图:
则images路径可以写成src="<%=path%>/images/logo.jpg"
访问login.jsp页面的话,写成http://ip:端口号/CityInfo/pages/login.jsp
F. java web项目 相对路径怎么写
servlet里面通过String basePath=session.getServletContext().getRealPath("/");获取webRoot目录真实路径。
比如d:\tomcat 6\webapps\项目名
webRoot下面的resources目录通过File path = new File(basePath, "resources");获取
其它同理
如果是jsp的话,获取resources目录直接通过“<%=request.getContextPath()%>/resources”获取
G. java web中的路径问题
如果我没猜错,楼主应该建的是dynamic web project。这个和你在tomcat里面的配置有关。
如果楼主用myeclipse建立dynamic web project,然后自动部署,它实际上是在
<Host name="localhost" debug="0" appBase="webapps"
unpackWARs="true" autoDeploy="true">
</Host>
里面添加了个上下文环境即:
<Context path="/工程访问名(并不一定和你的工程名一致,url访问时需采用此访问名)" reloadable="true" docBase="你的工程目录" />,这样你的工程访问的时候,如果是在jsp的话,"/"就代表了工程所在的上下文环境localhost,此时你的工程就相当于localhost里面的一级目录而已,这个工程没有独立的访问域名。
另外你tomcat里面还有一种配置方式就是直接给你的工程创建一个独立的访问域名。
<Host name="工程域名" debug="0" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="" reloadable="true" docBase="你的工程所在的目录" />
</Host>。这样你的工程就可以通过一个独立的域名访问到,在jsp中,"/"依然是工程所在的上下文环境,但是由于你配置的工程不在依赖于其他Host的上下文环境,所以此时的"/"也就代表了你的工程根目录,此时和struts里面的"/"是一样的用法。
再来说说struts里面的"/",struts为了防止由于在上述tomcat配置中不同所导致的不同的访问方式,它特地将"/"解析成当前工程,而不是获取当前工程所在的上下文环境。
H. java web工程,读取配置文件路径问题
读取配置文件 , xxx.properties放在webroot/WEB-INF/classes/目录下
首先将配置文件转换成InputStream,有两种方式,原理一样,都是通过类加载器得到资源:
(1)InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("xx.properties");
(2) InputStream inputStream =
this.getClass() .getClassLoader().getResourceAsStream( "xx.properties" );
调用对象的getClass()方法是获得对象当前的类类型,这部分数据存在方法区中,
而后在类类型上调用 getClassLoader()方法是得到当前类型的类加载器,我们知道在Java中所有的类都是通过加载器加载到虚拟机中的,而且类加载器之间存在父 子关系,就是子知道父,父不知道子,这样不同的子加载的类型之间是无法访问的(虽然它们都被放在方法区中),所以在这里通过当前类的加载器来加载资源也就 是保证是和类类型同一个加载器加载的。
最后调用了类加载器的getResourceAsStream()方法来加载资源。
(3) 然后加载配置文件,读取属性值
Properties prop = new Properties();
prop.load(input);
String value = prop.getProperty("PropertyName");
input.close();
I. java web project 路径问题
1、“/”表示网站的根目录
2、"/"并非等于http:\\localhost:8080\工程名\WebRoot\ ,而是等于http://localhost:8080/(http://域名:端口号/)
3、对于WebRoot 而言,只是myeclipse的一个虚拟目录,在编译之后根本不存在
4、你不应该从myeclipse中看目录结构,而是应该在tomcat中看目录结构,因为tomcat中目录的结构才真正是网站目录结构的。