求好看的耽美小说虐文 不要虐的(微虐可以)最好是HE的 如果方便的话给一下百度云链接 蟹蟹

JSP Servlet 路径解析 路径设置 - 独上高楼 - ITeye技术网站
博客分类:
在用JSP和Servlet编写Web应用时,经常遇到的问题就是找不到.do路径,或者.do路径不能解析,其实归根到底就是Servlet路径设置的问题,本文将结合实例来进行讲解。
首先,web应用名为MyApp,应用部署容器为Tomcat。
目录结构如下所示:
—WEB-INF/
—classes/
—login.classes
—login.java
—index.jsp
—login.jsp
web.xml 中配置
&servlet-name&loginhandle&/servlet-name&
&servlet-class&/login&/servlet-class&
&/servlet&
&servlet-mapping&
&servlet-name&loginhandle&/servlet-name&
&url-pattern&/login.do&/url-pattern&
&/servlet-mapping&
首先,介绍一下相对路径的概念。
所有相对路径都是由"/"开头的。如:/image/a.gif,/user/main.jsp,大家知道在html中的相对路径是这样的:
有个html文件:a.html,其中有&link href="one.css" rel="stylesheet" type="text/css"&,其中href属性表示引用的css文件的路径。
1、one.css:表示one.css和a.hmtl处于同一个目录。
2、user/one.css:表示one.css处于a.html所在目录的子目录user中。
3、../one.css:表示one.css位于a.hmtl上一级目录下,
4、../../one.css:表示one.css位于a.hmtl上一级目录的上一级目录下,
5、./:表示和a.hmtl同一目录
我们称上述相对路径为html相对路径。
服务器端的地址
服务器端的相对地址指的是相对于你的web应用的地址,这个地址是在服务器端解析的(不同于html和javascript中的相对地址,他们是由客户端浏览器解析的)也就是说这时候在jsp和servlet中的相对地址应该是相对于你的web应用,即相对于的。
其用到的地方有:
forwarder:servlet中的request.getRequestDispatcher(address);这个address是在服务器端解析的,所以,你要forwarder到login.jsp应该这么写:request.getRequestDispatcher("/pages/login.jsp")这个/相对于当前的web应用webapp,其绝对地址就是:。
sendRedirect:在jsp中&%response.sendRedirect("/pages/login.jsp");%&
客户端的地址
所有的html中的相对地址都是相对于的,而不是的。
Html中的form表单的action属性的地址应该是相对于的,所以,如果提交到login.jsp为:action="/MyApp/pages/login.jsp";提交到servlet为action="/MyApp/login.do"
Javascript也是在客户端解析的,所以其相对路径和form表单一样。
站点根目录和css路径问题
我们称类似这样的相对路径/MyApp/...为相对于站点根目录的相对路径。
当在jsp中引入css时,如果其相对路径相对于当前jsp文件的,而在一个和这个jsp的路径不一样的servlet中forwarder这个jsp时,就会发现这个css样式根本没有起作用。这是因为在servlet中转发时css的路径就是相对于这个servlet的相对路径而非jsp的路径了。所以这时候不能在jsp中用这样的路径:&link href="one.css" rel="stylesheet" type="text/css"&或者&link href="../../one.css" rel="stylesheet" type="text/css"&。类似href="one.css"和../../one.css的html相对路径是相对于引用这个css的文件的相对路径。而在servlet中转发时就是相对于这个servlet的相对路径了,因为jsp路径和servlet路径是不一样的,所以这样的引用肯定是出错的。
所以这个时候,要用站点根目录,就是相对于的目录,以"/"开头。
因此上述错误应更正为href="/MyApp/one.css"类似的站点根目录的相对目录。这样在servlet转发后和jsp中都是相对于站点根目录的相对路径,就能正确使用所定义的css样式了。
看到这里,相信在路径设置方面应该有一些小成了吧。再看下面这几个实例。
1、 在index.jsp中有&form action="login.do" method="post"&&/form&,并且该页面的访问地址是。此处使用的是相对路径,其中相对路径是相对于当前访问的页面,而当前页面为index.jsp所以当前的上下文路径即为/MyApp。当提交表单后,浏览器地址栏中的信息变为,这时候能找到login.do因为已经配置到了web.xml文件中。如果在/pages/login.jsp中包含上面的form表单,则最后的浏览器信息会变为。页面肯定会提示错误,因为找不到该路径。
2、在web.xml中的&servlet-mapping&中的&url-pattern&标记中只能使用绝对路径,即必须要以"/"开头。可以这样理解:一个应用对应于一个web.xml,所以这里的绝对路径表示应用的根,而不是服务器的根。(一个特殊情况就是在&url-pattern&中使用模式匹配的*.do,但仍然应该理解成从/开始。)
3、RequestDispatcher view = request.getRequestDispatcher("/pages/login.jsp");
RequestDispatcher view = request.getRequestDispatcher("pages/login.jsp");
这里可以使用相对路径和绝对路径。相对路径是当执行到该代码所在的Servlet的时候地址栏上显示的路径。
如果使用绝对路径,则"/"表示应用的根。
4、RequestDispatcher view = getServletContext().getRequestDispatcher("/pages/login.jsp");
这里必须使用绝对路径,"/"表示应用的根。可以这么理解:在ServletContext上调用请求转发,如果使用相对路径,则无法得知到底相对于该应用的什么位置,只能根据绝对路径来判断。由于是在应用上下文上调用的方法,所以"/"就表示应用的根。
5、servletContext中的getResourceAsStream(String),其中的参数应该是以"/"开头的绝对路径,其中"/"表示应用的根。
如果应用struts框架,那么恭喜你,这些事struts都帮你做了。在struts中,&html:form& 标签自动将action的路径解析为应用路径。
好了,就到这里吧!休息休息!
浏览: 83158 次
来自: 上海
谢谢,问题已解决。用上request.setCharacter ...
好像只发了HTTP的第一行请求,没有包括后面的header,比 ...
post传参数是不会乱码的,个人不建议带中文参数
恩, 确实提供了一种思路, 而且狠清晰但是,这样子会不会太耗资 ...
如何使用呀? 运行测试类之后再在浏览器中输入目标URL?手动写的servlet 为什么浏览器访问不到(404)?求大神帮忙看下!【java吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:619,126贴子:
手动写的servlet 为什么浏览器访问不到(404)?求大神帮忙看下!收藏
tomcat正常开启使用目录结构如下webapps
|--helloworld
|--WEB-INF
|--classes
|--HelloServlet.class
|--web.xmlweb.xml 里面的servlet-mapping标签如下&servlet-mapping&
&servlet-name&HelloServlet&/servlet-name&
&url-pattem&HelloServlet&/url-pattem&&/servlet-mapping&浏览器访问
提示404( 能正常访问tomcat的管理界面)
java入门我选兄弟连,java零基础先入学后付款,java快速入门,轻松掌握java技巧.毕业进入雇主企业,高能高产的何止是土地,还有&横跨java前端+后端+移动端的你&!
想不起来是为什么
是那里写错了,我现在看不到,java编译通过,里面import的一些包我也不太明白。不过关键是我现在还不知道哪里出错了
webapps |||||--helloworld|||||||||||--WEB-INF|||||||||||||||||--classes|||||||||||||||||||||||--HelloServlet.class|||||||||||||||||--web.xml路径空格让百度吃了
这个地方写错了!!!!!1、标签 &url-pattern&2、少 '/'&url-pattern&/HelloServlet&/url-pattern&
不过新问题来了下面是描述java.io.UnsupportedEncodingException: 'utf-8'sun.nio.cs.StreamEncoder.forOutputStreamWriter(StreamEncoder.java:61)java.io.OutputStreamWriter.&init&(OutputStreamWriter.java:100)org.apache.tomcat.util.buf.WriteConvertor.&init&(C2BConverter.java:174)org.apache.tomcat.util.buf.C2BConverter.&init&(C2BConverter.java:47)org.apache.catalina.connector.OutputBuffer.setConverter(OutputBuffer.java:531)org.apache.catalina.connector.OutputBuffer.checkConverter(OutputBuffer.java:497)org.apache.catalina.connector.Response.getWriter(Response.java:631)org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:198)HelloServlet.doGet(HelloServlet.java:8)javax.servlet.http.HttpServlet.service(HttpServlet.java:617)javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
配置是对的把HelloServlet贴出来看看吧
import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class HelloServlet extends HttpServlet{ public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ response.setContentType("text/charset='utf-8'");PrintWriter out = response.getWriter();out.println("&html&");out.println("&head&&title&welcome&/title&&/head&"); out.println("&body&Hello !!!!!!!! fuck!&/body&"); out.println("&/html&");out.flush();out.close();}}
utf—8不用上引号吧
java,java培训--- 甲骨文原厂出品,签订就业协议,名企疯抢甲骨文java学员.
双引号utf8
想请教下 java里面的双引号与单引号的区别!
还有就是 我以前写php 的也是mvc现在用java写 不知道怎么mvc 求赐教啊!多谢了 大神!
帮我看下思路错没!写好的c层java 编译放classes里面url先访问 classes 里面的程序 ,classes里面的程序掉jsp输出?是这样吗?
哦哦java 应该也是c层写逻辑 处理数据 给v层 然后v层输出?我也看到说jsp会编译成 selvlet执行先说下php吧 , c层 调用m拿到数据 传递(赋值)给 模板管理的 v 层。v层通过模板标签显示。java的正规写法是怎样的呢?
404是跳转错误500是代码错误
不是问http错误代码代表的意思啊。。。。这里更详细的我现在想了解下java 网页的整个流程!具体是 servlet与jsp之间的关系 以及数据交互方式!
看看你发布的时候里面的路径。
&url-pattern&/HelloServler&/url-pattern
//HelloServlet的前面缺了 /
LZ这问题解决没啊我也是访问不了,显示报500错误,刷新之后就改报404.配置应该无误,怎么回事啊
登录百度帐号推荐应用JavaWeb学习之Servlet(四)----ServletConfig获取配置信息、ServletContext的应用-爱编程
JavaWeb学习之Servlet(四)----ServletConfig获取配置信息、ServletContext的应用
欢迎转载,但请保留文章原始出处&_&
文章来源:
支付宝账号:
一、ServletConfig:代表当前Servlet在web.xml中的配置信息(用的不多)
String getServletName()& -- 获取当前Servlet在web.xml中配置的名字
String getInitParameter(String name) -- 获取当前Servlet指定名称的初始化参数的值
Enumeration getInitParameterNames()& -- 获取当前Servlet所有初始化参数的名字组成的枚举
ServletContext getServletContext()& -- 获取代表当前web应用的ServletContext对象
在Servlet的配置文件中,可以使用一个或多个&init-param&标签为servlet配置一些初始化参数。
当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象传递给servlet。进而,程序员通过ServletConfig对象就可以得到当前servlet的初始化参数信息。
这样做的好处是:如果将数据库信息、编码方式等配置信息放在web.xml中,如果以后数据库的用户名、密码改变了,则直接很方便地修改web.xml就行了,避免了直接修改源代码的麻烦。
代码举例:
新建一个名为ServletConfigTest的Servlet,然后在web.xml中的&servlet&标签下,通过&init-param&标签为这个servlet配置两个初始化参数:
&servlet-name&ServletConfigTest&/servlet-name&
&servlet-class&com.vae.servlet.ServletConfigTest&/servlet-class&
&init-param&
&param-name&name1&/param-name&
&param-value&value1&/param-value&
&/init-param&
&init-param&
&param-name&encode&/param-name&
&param-value&utf-8&/param-value&
&/init-param&
&/servlet&
然后在代码中获取上面的两个参数。代码实现如下:
1 package com.vae.
3 import java.io.IOE
4 import java.util.E
6 import javax.servlet.ServletC
7 import javax.servlet.ServletE
8 import javax.servlet.http.HttpS
9 import javax.servlet.http.HttpServletR
10 import javax.servlet.http.HttpServletR
12 public class ServletConfigTest extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ServletConfig config = this.getServletConfig();
//拿到init方法中的ServletConfig对象
// --获取当前Servlet 在web.xml中配置的名称(用的不多)
String sName = config.getServletName();
System.out.println("当前Servlet 在web.xml中配置的名称:"+sName);
// --获取当前Servlet中配置的初始化参数(只能获取一个)经常用到
// String value = config.getInitParameter("name2");
// System.out.println(value);
// --获取当前Servlet中配置的初始化参数(全部获取)经常用到
Enumeration enumration = config.getInitParameterNames();
while(enumration.hasMoreElements()){
String name = (String) enumration.nextElement();
String value = config.getInitParameter(name);
System.out.println(name+":"+value);
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
核心代码是第17行,通过this.getServletConfig()方法拿到init方法中的ServletConfig对象,然后获取配置信息。
运行程序,后台打印日志如下:
二、ServletContext:代表当前web应用(非常重要)
WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。
ServletConfig对象中维护了ServletContext对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext方法获得ServletContext对象。
由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过ServletContext对象来实现通讯。ServletContext对象通常也被称之为context域对象。
ServletContext的应用:
1.做为域对象可以在整个web应用范围内共享数据。
这里涉及到一些概念:
域对象:在一个可以被看见的范围内共享数据用到对象
作用范围:整个web应用范围内共享数据
生命周期:当服务器启动web应用加载后创建出ServletContext对象后,域产生。当web应用被移除出容器或服务器关闭,随着web应用的销毁域销毁。
代码举例:
ServletTest01.java:
1 package com.vae.
3 import java.io.IOE
5 import javax.servlet.ServletC
6 import javax.servlet.ServletE
7 import javax.servlet.http.HttpS
8 import javax.servlet.http.HttpServletR
9 import javax.servlet.http.HttpServletR
11 public class ServletTest01 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ServletContext context = this.getServletContext();
context.setAttribute("name", "smyhvae");
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
ServletTest02.java:
1 package com.vae.
3 import java.io.IOE
5 import javax.servlet.ServletC
6 import javax.servlet.ServletE
7 import javax.servlet.http.HttpS
8 import javax.servlet.http.HttpServletR
9 import javax.servlet.http.HttpServletR
11 public class ServletTest02 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ServletContext context = this.getServletContext();
String myName = (String) context.getAttribute("name");
System.out.println(myName);
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
我们在ServletTest01中给Context加一个参数name(16行),然后就能在ServletTest02中得到这个参数了(16行)。
context中常用的方法有:
void setAttribute(String,Object);
Object getAttribute(String);
void removeAttribute(String);
2、获取WEB应用的初始化参数
我们在第一段中,通过&init-param&标签为某一个单独的servlet加配置信息,这种配置信息在其他的Servlet中是无法访问到的。可如果我们使用&context-param&标签(与Servlet标签并列)为整个Web应用配置属性的话,那所有的Servlet就都能访问里面的参数了。例如:可以把数据库的配置信息放在这里。
这里涉及到一些概念不要混淆:
请求参数 parameter --- 浏览器发送过来的请求中的参数信息
初始化参数 initparameter --- 在web.xml中为Servlet或ServletContext配置的初始化时带有的基本参数
域属性 attribute --- 四大作用域中存取的键值对
代码举例:
在web.xml中为整个web应用添加初始化参数:用户名、密码。代码位置如下:
然后接下来我们在代码中来获取这些参数。代码如下:
ServletTest03.java:
1 package com.vae.
3 import java.io.IOE
4 import java.util.E
6 import javax.servlet.ServletC
7 import javax.servlet.ServletE
8 import javax.servlet.http.HttpS
9 import javax.servlet.http.HttpServletR
10 import javax.servlet.http.HttpServletR
12 public class ServletTest03 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ServletContext context = this.getServletContext(); // 得到上下文对象
// 获取单个的Context里面的初始化参数
String value1 = context.getInitParameter("username");
String value2 = context.getInitParameter("password");
System.out.println(value1 + ";" + value2);
System.out.println();
// 一次性获取Context里所有的初始化参数
Enumeration enumeration = context.getInitParameterNames();
while (enumeration.hasMoreElements()) {
String name = (String) enumeration.nextElement();
String value = context.getInitParameter(name);
System.out.println(name + ";" + value);
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
上面的代码可以看到,我们可以通过context.getInitParameter()方法获得初始化参数。
运行效果如下:
3、实现Servlet的转发
这里涉及到一些概念要区分:
请求重定向:302+Location(两次请求两次响应)
请求转发:服务器内不进行资源流转 (一次请求一次响应,来实现资源流转)
注:上方括号中的内容是二者的区别。打个比方,假如你找我借钱,如果是请求重定向的话,那你再去找别人借;如果是请求转发的话,那我去找别人借,然后再借给你。
代码举例:
ServletTest04.java实现请求转发:
1 package com.vae.
3 import java.io.IOE
5 import javax.servlet.RequestD
6 import javax.servlet.ServletE
7 import javax.servlet.http.HttpS
8 import javax.servlet.http.HttpServletR
9 import javax.servlet.http.HttpServletR
* ServletContext实现请求转发
14 public class ServletTest04 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
RequestDispatcher dispatcher = this.getServletContext()
.getRequestDispatcher("/servlet/ServletTest05");// 参数中写虚拟路径
dispatcher.forward(request, response); // 执行完这一行代码后,将会跳到ServletTest05中去执行。
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
通过19行代码拿到转发器dispatcher,这个转发器指向ServletTest05(参数中写虚拟路径),然后一旦执行完20行代码,就会跳到ServletTest05中去执行。
那么ServletTest05.java的代码如下:
1 package com.vae.
3 import java.io.IOE
5 import javax.servlet.ServletE
6 import javax.servlet.http.HttpS
7 import javax.servlet.http.HttpServletR
8 import javax.servlet.http.HttpServletR
* ServletContext实现请求转发
13 public class ServletTest05 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.getWriter().write("10000yuan");
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
在浏览器中输入url,效果如下:
4.加载资源文件:
我们先在WebRoot的根目录下新建一个资源文件config.properties,这里有一个问题需要注意:
4.1在Servlet中读取资源文件时:
如果写相对路径或绝对路径,这个路径指的是【当前程序启动的目录下】里面的路径。所以,在web环境下,就是tomcat启动的目录即tomcat/bin,所以找不到资源。效果如下:
如果写硬盘的路径D:\\apache-tomcat-7.0.57\\webapps\\WebTest\\config.properties,可以找到资源,但是只要一换发布环境,这个硬盘路径很可能是错误的,同样不行。
为了解决这样的问题,ServletContext提供了getRealPath方法,在这个方法中传入一个路径,这个方法的底层会在传入的路径的前面拼接当前web应用的硬盘路径,从而得到当前资源的硬盘路径,这种方式即使换了发布环境,方法的底层也能得到正确的web应用的路径从而永远都是正确的资源的路径。代码如下:
this.getServletContext().getRealPath("config.properties")
代码举例:
先在WebRoot的根目录下新建一个文件为config.properties,里面的参数如下:
config.properties:
username=smyhvae
password=007
紧接着,新建一个Servlet,代码如下:
ServletTest06.java:
1 package com.vae.
3 import java.io.FileR
4 import java.io.IOE
5 import java.util.P
7 import javax.servlet.ServletE
8 import javax.servlet.http.HttpS
9 import javax.servlet.http.HttpServletR
10 import javax.servlet.http.HttpServletR
12 public class ServletTest06 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Properties prop = new Properties(); // 注意导的包是import java.util.P
prop.load(new FileReader(this.getServletContext().getRealPath("config.properties")));
System.out.println(prop.getProperty("username"));
System.out.println(prop.getProperty("password"));
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
核心代码是第17行中的this.getServletContext().getRealPath("config.properties")。
运行效果如下:
4.2 & & 在很多情况下,Servlet中并不会处理大量的逻辑,而是直接调用其他的java代码,那就涉及到了下面的这个问题:
如果在非Servlet环境下要读取资源文件时可以采用类加载器加载文件的方式读取资源:MyService.class.getClassLoader().getResource("../../../config.properties").getPath()
那现在getResource()里面的路径该怎么写呢?只要记住一句话:类加载器从哪里加载类,就从哪里加载资源。这句话有点抽象,我们还是通过代码来看吧:
新建一个Servlet类:
ServletTest07.java:
1 package com.vae.
3 import java.io.IOE
5 import javax.servlet.ServletE
6 import javax.servlet.http.HttpS
7 import javax.servlet.http.HttpServletR
8 import javax.servlet.http.HttpServletR
10 import com.vae.service.MyS
12 public class ServletTest07 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
MyService service = new MyService();
service.method();
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
在16、17行代码中,调用了MyService类中的方法。下面来定义MyService类,在里面加载资源文件。
MyService.java:
1 package com.vae.
3 import java.io.FileNotFoundE
4 import java.io.FileR
5 import java.io.IOE
6 import java.util.P
8 public class MyService {
public void method() throws FileNotFoundException, IOException{
//在没有ServletContext的环境下,如果想要读取资源,可以使用类加载器以加载类的方式加载资源,
//这里要注意,类加载器从哪个目录加载类,就从哪个目录加载资源,
//所以此处的路径一定要给一个相对于类加载目录的路径
Properties prop = new Properties();
prop.load(new FileReader(MyService.class.getClassLoader().getResource("config.properties").getPath()));
System.out.println(prop.getProperty("username"));
System.out.println(prop.getProperty("password"));
在浏览器输入url后,后台输出如下:
【特别注意】第15行代码中getResource()里面的路径。
类加载器从哪个目录加载类,就从哪个目录加载资源,所以此处的路径一定要给一个相对于类加载目录的路径
我们先看一下这个工程发布到tomcat里面的目录:
进入WEB-INF目录下,是下面的样子:
上图中的classes目录和工程文件的src目录等价。
(1)如果config.properties文件放在src目录下,那路径为:getResource("config.properties")
(2)如果config.properties文件的位置如下:
那路径和上面的代码一样:getResource("com/vae/servlet/config.properties")
(3)如果config.properties文件和MyService.java文件并列,那路径为:getResource("com/vae/service/config.properties")
(4)如果config.properties文件的位置如下:
此时config.properties文件和classes文件并列:
那路径为:getResource("../config.properties")&& 注:"../"表示上一级目录。
(5)如果config.properties文件放在整个工程文件的根目录下,是无效的,因为此时文件并没有发布到Tomcat。
【工程文件】
链接:/s/1ntBPHd3&
密码:5qr2
版权所有 爱编程 (C) Copyright 2012. . All Rights Reserved.
闽ICP备号-3
微信扫一扫关注爱编程,每天为您推送一篇经典技术文章。

我要回帖

更多关于 书荒了求好看耽美小说 的文章

 

随机推荐