当前位置: 技术问答>java相关
菜鸟问问题:servlet类文件的放置问题
来源: 互联网 发布时间:2017-04-17
本文导语: 我的servlet类文件一直是放在web-infclasses目录下的,现在类文件多了不方便管理,想放在一个文件夹下,如web-infclassesproject,如果这样,url地址应如何指定,还需不需要修改别的设置? | 我做了一个servlet...
我的servlet类文件一直是放在web-infclasses目录下的,现在类文件多了不方便管理,想放在一个文件夹下,如web-infclassesproject,如果这样,url地址应如何指定,还需不需要修改别的设置?
|
我做了一个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对象就是你定义的 标签值了。
|
我把最近的心得整理了一下:
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设置如下标记:
helloworld
baseinfo.HelloWorld
每个标记可以为一个servlet设置别名,即可通过给出的名字访问。
如不加标记,访问方法为:
http://localhost:8080/yjweb/baseinfo.HelloWorld
增加上述标记后,访问方法为:
http://localhost:8080/yjweb/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设置如下标记:
helloworld
baseinfo.HelloWorld
每个标记可以为一个servlet设置别名,即可通过给出的名字访问。
如不加标记,访问方法为:
http://localhost:8080/yjweb/baseinfo.HelloWorld
增加上述标记后,访问方法为:
http://localhost:8080/yjweb/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文件所在的实际路径。
|
在servlet文件里的第一行加入
package project;
然后调用的时候用
http://localhost:8080/servlet/project.servletname
package project;
然后调用的时候用
http://localhost:8080/servlet/project.servletname
|
补上,在jsp中通过form调用时,用下面的形式:
其中,project为你为servlet添加的包名!
其中,project为你为servlet添加的包名!