① 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
② web中的路径与跳转
绝对路径:
绝对路径就是文件或目录在硬盘上真正的路径,例如: C:xyz est.txt 代表了test.txt文件的绝对路径。还有 http://localhost/learnjsp/login.jsp 也是绝对路径。
相对路径:
相对与某个基准目录而言的路径。
其一,在jsp和servlet中, / 代表web应用的根目录(以web应用为基准),如 /login.jsp 代表 localhost:8080/myBlog/login.jsp 。
其二,在html中, / 代表服务器的根目录(以web服务器为基准), /login.jsp 代表 localhost:8080/login.jsp 。
其三,参照物理路径的相对表示。例如: ./ 代表当前目录, ../ 代表上级目录。这种类似的表示,也是属于相对路径。
在jsp中,因为其包裹了html,大多数情况下我们是要写html里面的路径。 使用相对路径,因为没有意义也无法取得绝对路径 。
使用表单时,要提交给 servlet 进行处理,使用相对路径:
这里的 <%=request.getContextPath()%> 的值为: /webapp 。
一般情况下,在JSP/HTML页面等引用的CSS,Javascript.Action等属性前面最好都加上 <%=request.getContextPath()%> ,以确保所引用的文件都属于Web应用中的目录。
无论是表单的 form 还是css、js的引入路径,都应该尽量 避免使用 类似 . 、 ./ 、 ../../ 等类似的相对该文件位置的相对路径,否则当文件移动时,很容易出问题。
在servlet中,我们经常要将请求转发或者重定向到另一个地方。我们 只能使用相对路径 。
使用 request.getRequestDispatcher(address) 进行请求转发,或者是 sendRedirect:response.sendRedirect(address) 进行重定向。
注意: 在这里,请求转发是相对于服务器而言,因此其 / 代表了 /webapp ;而重定向是相对于客户端而言,因此其 / 代表了 localhost 。
使用 getRealPath() 来获取完整的物理路径, 主要是在 servlet 中经常需要使用 。
下面的3个例子,是在jsp页面中使用举例。
这里, / 代表了web应用的根目录 。
当path为 / 时,代表的是web应用;当path为 /toPost/post.jsp 时,代表的web应用下的某一个文件;当path为 request.getRequestURI() 时,代表发出请求的jsp文件。
1、jsp页面使用,一般使用不到(没有意义)
2、servlet中使用
③ 追踪从PC-A到Web服务器的路径
将test.txt替换成对应成相应的类名和文件名。
java项目中的文件是相对于项目的根目录,web项目中的文件路径视不同的web服务器不同而不同(tomcat是相对于tomcat安装目录in)。
二类加载目录的获得(即当运行时某一类时获得其装载目录)通用的方法一(不论是一般的java项目还是web项目,先定位到能看到包路径的第一级目录)(test.txt文件的路径为项目名src est.txt;类TestAction所在包的第一级目录位于src目录下)上式中将TestAction,test.txt替换成对应成相应的类名和文件名字即可。
④ 如何获取web应用的部署路径
在java中获得文件的路径在我们做上传文件操作时是不可避免的。
web 上运行
1:this.getClass().getClassLoader().getResource("/").getPath();
this.getClass().getClassLoader().getResource("").getPath(); 得到的是 ClassPath的绝对URI路径。
如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/WEB-INF/classes/
System.getProperty("user.dir");
this.getClass().getClassLoader().getResource(".").getPath(); 得到的是 项目的绝对路径。
如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war
2:this.getClass().getResource("/").getPath();
this.getClass().getResource("").getPath(); 得到的是当前类 文件的URI目录。
如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/WEB-INF/classes/com/jebel/helper/
this.getClass().getResource(".").getPath(); X 不 能运行
3:Thread.currentThread().getContextClassLoader().getResource("/").getPath()
Thread.currentThread().getContextClassLoader().getResource("").getPath() 得到的是 ClassPath的绝对URI路径。
如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/WEB-INF/classes/
Thread.currentThread().getContextClassLoader().getResource(".").getPath() 得到的是 项目的绝对路径。
如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war
在本地运行中
1:this.getClass().getClassLoader().getResource("").getPath();
this.getClass().getClassLoader().getResource(".").getPath(); 得到的是 ClassPath的绝对URI路径。
如:/D:/myProjects/hp/WebRoot/WEB-INF/classes
this.getClass().getClassLoader().getResource(".").getPath(); X 不 能运行
2:this.getClass().getResource("").getPath();
this.getClass().getResource(".").getPath(); 得到的是当前类 文件的URI目录。
如:/D:/myProjects/hp/WebRoot/WEB-INF/classes/com/jebel/helper/
/D:/myProjects/hp/WebRoot/WEB-INF/classes/ 得到的是 ClassPath的绝对URI路径。
如:/D:/myProjects/hp/WebRoot/WEB-INF/classes
3:Thread.currentThread().getContextClassLoader().getResource(".").getPath()
Thread.currentThread().getContextClassLoader().getResource("").getPath() 得到的是 ClassPath的绝对URI路径。。
如:/D:/myProjects/hp/WebRoot/WEB-INF/classes
Thread.currentThread().getContextClassLoader().getResource("/").getPath() X 不 能运行
最后
在Web应用程序中,我们一般通过ServletContext.getRealPath("/")方法得到Web应用程序的根目录的绝对路径。
还有request.getContextPath(); 在Weblogic中要用request.getServletContext().getContextPath();但如果打包成war部署到Weblogic服务器,项目内部并没有文件结构的概念,用这种方式是始终得到null,获取不到路径,目前还没有找到具体的解决方案。
⑤ 怎么用eclipse修改web工程的访问路径
1、首先在电脑上打开eclipse,找到自己要修改的项目,鼠标右键点击。
⑥ web访问路径是网页路径吗(新手小白!)
1、访问到的可能是虚拟路径(非真实路径、映射路径)
2、访问到可能就是真实路径(物理路径)、整体上最终访问到的还是真实路径。
⑦ JAVA Web获取路径几种方式
1、获取项目根路径
req.getSession().getServletContext().getRealPath("/");
2、获取类路径
this.getClass().getResource("/").getPath();
⑧ web防火墙有什么作用
1.包过滤
具备包过滤的就是防火墙?对,没错!根据对防火墙的定义,凡是能有效阻止网络非法连接的方式,都算防火墙。早期的防火墙一般就是利用设置的条件,监测通过的包的特征来决定放行或者阻止的,包过滤是很重要的一种特性。虽然防火墙技术发展到现在有了很多新的理念提出,但是包过滤依然是非常重要的一环,如同四层交换机首要的仍是要具备包的快速转发这样一个交换机的基本功能一样。通过包过滤,防火墙可以实现阻挡攻击,禁止外部/内部访问某些站点,限制每个ip的流量和连接数。
2.包的透明转发
事实上,由于防火墙一般架设在提供某些服务的服务器前。如果用示意图来表示就是 Server—FireWall—Guest 。用户对服务器的访问的请求与服务器反馈给用户的信息,都需要经过防火墙的转发,因此,很多防火墙具备网关的能力。
3.阻挡外部攻击
如果用户发送的信息是防火墙设置所不允许的,防火墙会立即将其阻断,避免其进入防火墙之后的服务器中。
4.记录攻击
如果有必要,其实防火墙是完全可以将攻击行为都记录下来的,但是由于出于效率上的考虑,目前一般记录攻击的事情都交给IDS来完成了,我们在后面会提到。
以上是所有防火墙都具备的基本特性,虽然很简单,但防火墙技术就是在此基础上逐步发展起来的。