当前位置: 技术问答>java相关
问!SERVLET的CLASS文件放在哪个目录下面?
来源: 互联网 发布时间:2017-04-16
本文导语: 如题,如何自己建立一个目录,用来放SERVLET的CLASS文件??? | 我做了一个servlet类,将它放在TOMCAT的ROOT/WEB-INF/CLASSES中,前台APPLET的连接字符串为: String queryString = "/servlet/SendXMLS...
如题,如何自己建立一个目录,用来放SERVLET的CLASS文件???
|
我做了一个servlet类,将它放在TOMCAT的ROOT/WEB-INF/CLASSES中,前台APPLET的连接字符串为:
String queryString = "/servlet/SendXMLServlet?message= "+URLEncoder.encode(message1 )
连接是没有问题的。
现在的问题是,当我的servlet类多起来的时候,我不想将所有的类都放在TOMCAT的ROOT/WEB-INF/CLASSES下。我想当然的在ROOT/WEB-INF/CLASSES下建文件夹(AA),把新的servlet类放在里面。然后在APPLET连接字符串中加入文件夹名。
/servlet/SendXMLServlet/AA?message= "+URLEncoder.encode(message1)但这样是连接不了的。那么,请问,如何解决这个问题呢?
---------------------------------------------------------------
/servlet/SendXMLServlet/AA?message= "+URLEncoder.encode(message1)
-- >
/servlet/AA/SendXMLServlet?message= "+URLEncoder.encode(message1)
---------------------------------------------------------------
/servlet/AA.SendXMLServlet?message= "+URLEncoder.encode(message1)
---------------------------------------------------------------
首先,注意把你的servlet丁定义在AA包里。
然后,/servlet/AA.SendXMLServlet?message= "+URLEncoder.encode(message1)
或者在web.xml中通知web server在接到某种url请求时,调用该servlet来处理。
------------------------------------------
servlet注册如下
NewsControlServlet
(包/类,此处为NewsControlServlet)
是任意的。 是该servlet的包路径,比如com.yourcompany.servlet.NewsControlServlet什么的。
servlet mapping如下
NewsControlServlet
/NewsControlServlet
就是定义的时候的servlet name.
此处 标签注明所有该类型的请求都由NewsControlServlet处理。你可以修改为其他的url,比如/*,或者/Control等等。
其中的action对象就是你定义的 标签值了。
String queryString = "/servlet/SendXMLServlet?message= "+URLEncoder.encode(message1 )
连接是没有问题的。
现在的问题是,当我的servlet类多起来的时候,我不想将所有的类都放在TOMCAT的ROOT/WEB-INF/CLASSES下。我想当然的在ROOT/WEB-INF/CLASSES下建文件夹(AA),把新的servlet类放在里面。然后在APPLET连接字符串中加入文件夹名。
/servlet/SendXMLServlet/AA?message= "+URLEncoder.encode(message1)但这样是连接不了的。那么,请问,如何解决这个问题呢?
---------------------------------------------------------------
/servlet/SendXMLServlet/AA?message= "+URLEncoder.encode(message1)
-- >
/servlet/AA/SendXMLServlet?message= "+URLEncoder.encode(message1)
---------------------------------------------------------------
/servlet/AA.SendXMLServlet?message= "+URLEncoder.encode(message1)
---------------------------------------------------------------
首先,注意把你的servlet丁定义在AA包里。
然后,/servlet/AA.SendXMLServlet?message= "+URLEncoder.encode(message1)
或者在web.xml中通知web server在接到某种url请求时,调用该servlet来处理。
------------------------------------------
servlet注册如下
NewsControlServlet
(包/类,此处为NewsControlServlet)
是任意的。 是该servlet的包路径,比如com.yourcompany.servlet.NewsControlServlet什么的。
servlet mapping如下
NewsControlServlet
/NewsControlServlet
就是定义的时候的servlet name.
此处 标签注明所有该类型的请求都由NewsControlServlet处理。你可以修改为其他的url,比如/*,或者/Control等等。
其中的action对象就是你定义的 标签值了。
|
如果不设置虚拟目录的话
[X]:tomcatwebappsROOTWEB-INFclassesmyServlet.class
访问:http://localhost:8080/servlet/myServlet
如果放在目录下,如:
[X]:tomcatwebappsROOTWEB-INFclassestestmyServlet.class
在myServlet.java文件里定义
package test;
编译之后访问:http://localhost:8080/servlet/test.myServlet
ok???
[X]:tomcatwebappsROOTWEB-INFclassesmyServlet.class
访问:http://localhost:8080/servlet/myServlet
如果放在目录下,如:
[X]:tomcatwebappsROOTWEB-INFclassestestmyServlet.class
在myServlet.java文件里定义
package test;
编译之后访问:http://localhost:8080/servlet/test.myServlet
ok???
|
我把最近的心得整理了一下:
tomcat使用:
1.映射虚拟目录:修改c:tomcatconfserver.xml文件,增加以下标记(和标记平级):
2.servlet的.class文件的放置位置:
1>.不在包中的.class文件:
放在d:testWEB-INFclass目录下。
2>.在包中的.class文件:
按包名在d:testWEB-INFclass目录下建立子目录,.class文件放在相应的目录中。
3>.打成.jar文件的类文件:
放在d:testWEB-INFlib目录下。
4>.如果使用EditPlus, 只需设置EditPlus的自定义工具为以下命令即可自动完成:
C:j2sdk1.4.0binjavac.exe -d d:testWEB-INFclasses
3.为servlet设置别名:
1>.在d:testWEB-INF目录下新建web.xml文件,内容如下:
invoker
/servlet/*
2>.为要映射别名的servlet设置如下标记(假如包名为baseinfo):
helloworld
baseinfo.HelloWorld
每个标记可以为一个servlet设置别名,即可通过给出的名字访问。
如不加标记,访问方法为:
http://localhost:8080/test/baseinfo.HelloWorld
增加上述标记后,访问方法为:
http://localhost:8080/test/helloworld
4.tomcat的Manager和Administrtor功能:
1>.修改c:tomcatconftomcat-user.xml,增加以下标记:
2>.安装打包为.war的应用程序:
方法1:将.war文件拷到c:tomcatwebapps目录下,重启tomcat既可自动安装。
方法2:http://localhost:8080/manager/install?path=/jfreechart&war=jar:file:jfreechart-sample.war!/
其中:path的URL,根是指c:tomcatwebapps,path的含义是映射的虚拟路径。
file是.war文件所在的实际路径。
tomcat使用:
1.映射虚拟目录:修改c:tomcatconfserver.xml文件,增加以下标记(和标记平级):
2.servlet的.class文件的放置位置:
1>.不在包中的.class文件:
放在d:testWEB-INFclass目录下。
2>.在包中的.class文件:
按包名在d:testWEB-INFclass目录下建立子目录,.class文件放在相应的目录中。
3>.打成.jar文件的类文件:
放在d:testWEB-INFlib目录下。
4>.如果使用EditPlus, 只需设置EditPlus的自定义工具为以下命令即可自动完成:
C:j2sdk1.4.0binjavac.exe -d d:testWEB-INFclasses
3.为servlet设置别名:
1>.在d:testWEB-INF目录下新建web.xml文件,内容如下:
invoker
/servlet/*
2>.为要映射别名的servlet设置如下标记(假如包名为baseinfo):
helloworld
baseinfo.HelloWorld
每个标记可以为一个servlet设置别名,即可通过给出的名字访问。
如不加标记,访问方法为:
http://localhost:8080/test/baseinfo.HelloWorld
增加上述标记后,访问方法为:
http://localhost:8080/test/helloworld
4.tomcat的Manager和Administrtor功能:
1>.修改c:tomcatconftomcat-user.xml,增加以下标记:
2>.安装打包为.war的应用程序:
方法1:将.war文件拷到c:tomcatwebapps目录下,重启tomcat既可自动安装。
方法2:http://localhost:8080/manager/install?path=/jfreechart&war=jar:file:jfreechart-sample.war!/
其中:path的URL,根是指c:tomcatwebapps,path的含义是映射的虚拟路径。
file是.war文件所在的实际路径。
|
WEB-INFclasses
|
每个容器都有指定的位置,一般是WEB-INFclasses
|
或者直接连同部署文件一起打包,然后发布。
|
WEB-INFclassesyour's dir nameservlet
when you visit add the your's dir name then ok!
when you visit add the your's dir name then ok!