问!SERVLET的CLASS文件放在哪个目录下面? 每个容器都有指定的位置,一般是WEB-INF\classes\ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 WEB-INF\classes\your's dir name\servletwhen you visit add the your's dir name then ok! 我做了一个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注册如下 <servlet > <servlet-name >NewsControlServlet </servlet-name > <servlet-class >(包/类,此处为NewsControlServlet) </servlet-class > </servlet > <servlet-name >是任意的。 <servlet-class >是该servlet的包路径,比如com.yourcompany.servlet.NewsControlServlet什么的。 servlet mapping如下 <servlet-mapping > <servlet-name >NewsControlServlet </servlet-name > <url-pattern >/NewsControlServlet </url-pattern > </servlet-mapping > <servlet-name >就是定义的时候的servlet name. 此处 <url-pattern >标签注明所有该类型的请求都由NewsControlServlet处理。你可以修改为其他的url,比如/*,或者/Control等等。 <form name= "form " action= "/NewsControlServlet " method= "post " > 其中的action对象就是你定义的 <url-pattern >标签值了。 如果不设置虚拟目录的话[X]:\tomcat\webapps\ROOT\WEB-INF\classes\myServlet.class访问:http://localhost:8080/servlet/myServlet如果放在目录下,如:[X]:\tomcat\webapps\ROOT\WEB-INF\classes\test\myServlet.class在myServlet.java文件里定义package test;编译之后访问:http://localhost:8080/servlet/test.myServletok??? 我把最近的心得整理了一下:tomcat使用:1.映射虚拟目录:修改c:\tomcat\conf\server.xml文件,增加以下标记(和<Context path="/examples"......>标记平级): <Context path="/yjweb" docBase="d:/test" debug="0" reloadable="true" crossContext="true"> </Context>2.servlet的.class文件的放置位置: 1>.不在包中的.class文件: 放在d:\test\WEB-INF\class目录下。 2>.在包中的.class文件: 按包名在d:\test\WEB-INF\class目录下建立子目录,.class文件放在相应的目录中。 3>.打成.jar文件的类文件: 放在d:\test\WEB-INF\lib目录下。 4>.如果使用EditPlus, 只需设置EditPlus的自定义工具为以下命令即可自动完成: C:\j2sdk1.4.0\bin\javac.exe -d d:\test\WEB-INF\classes3.为servlet设置别名: 1>.在d:\test\WEB-INF目录下新建web.xml文件,内容如下: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet-mapping> <servlet-name>invoker</servlet-name> <url-pattern>/servlet/*</url-pattern> </servlet-mapping> </web-app> 2>.为要映射别名的servlet设置如下标记(假如包名为baseinfo): <servlet> <servlet-name>helloworld</servlet-name> <servlet-class>baseinfo.HelloWorld</servlet-class> </servlet> 每个标记可以为一个servlet设置别名,即可通过<servlet-name>给出的名字访问。 如不加标记,访问方法为: http://localhost:8080/test/baseinfo.HelloWorld 增加上述标记后,访问方法为: http://localhost:8080/test/helloworld4.tomcat的Manager和Administrtor功能: 1>.修改c:\tomcat\conf\tomcat-user.xml,增加以下标记: <role rolename="admin"/> <role rolename="manager"/> <role rolename="standard"/> <user username="zhu" password="zhu" roles="standard,manager,admin"/> 2>.安装打包为.war的应用程序: 方法1:将.war文件拷到c:\tomcat\webapps目录下,重启tomcat既可自动安装。 方法2:http://localhost:8080/manager/install?path=/jfreechart&war=jar:file:jfreechart-sample.war!/ 其中:path的URL,根是指c:\tomcat\webapps,path的含义是映射的虚拟路径。 file是.war文件所在的实际路径。 问下TOMCAT+MYECLIPSE的问题,以前好用,现在不行了~ 什么情况下 要重写部署 jsp连mysql问题 请教一个分页问题,回复立即给分 请手请教:关于考勤系统的问题 怎么用java的正则表达式排除网页中的<head></head>之间的内容? 请教JSONObject中的JsonConfig的配置 String 变量的 变量名 如何能动态生成呢 ???? 急!! tomcat 启动问题!! java验证LDAP问题???????????? servlet的配置问题 高分求助:怎样使用JSP来设置文件目录和文件的属性权限?(立刻给分)
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注册如下
<servlet >
<servlet-name >NewsControlServlet </servlet-name >
<servlet-class >(包/类,此处为NewsControlServlet) </servlet-class >
</servlet >
<servlet-name >是任意的。 <servlet-class >是该servlet的包路径,比如com.yourcompany.servlet.NewsControlServlet什么的。
servlet mapping如下
<servlet-mapping >
<servlet-name >NewsControlServlet </servlet-name >
<url-pattern >/NewsControlServlet </url-pattern >
</servlet-mapping >
<servlet-name >就是定义的时候的servlet name.
此处 <url-pattern >标签注明所有该类型的请求都由NewsControlServlet处理。你可以修改为其他的url,比如/*,或者/Control等等。
<form name= "form " action= "/NewsControlServlet " method= "post " >
其中的action对象就是你定义的 <url-pattern >标签值了。
[X]:\tomcat\webapps\ROOT\WEB-INF\classes\myServlet.class
访问:http://localhost:8080/servlet/myServlet
如果放在目录下,如:
[X]:\tomcat\webapps\ROOT\WEB-INF\classes\test\myServlet.class
在myServlet.java文件里定义
package test;
编译之后访问:http://localhost:8080/servlet/test.myServlet
ok???
tomcat使用:
1.映射虚拟目录:修改c:\tomcat\conf\server.xml文件,增加以下标记(和<Context path="/examples"......>标记平级):
<Context path="/yjweb" docBase="d:/test" debug="0" reloadable="true" crossContext="true">
</Context>2.servlet的.class文件的放置位置:
1>.不在包中的.class文件:
放在d:\test\WEB-INF\class目录下。
2>.在包中的.class文件:
按包名在d:\test\WEB-INF\class目录下建立子目录,.class文件放在相应的目录中。
3>.打成.jar文件的类文件:
放在d:\test\WEB-INF\lib目录下。
4>.如果使用EditPlus, 只需设置EditPlus的自定义工具为以下命令即可自动完成:
C:\j2sdk1.4.0\bin\javac.exe -d d:\test\WEB-INF\classes3.为servlet设置别名:
1>.在d:\test\WEB-INF目录下新建web.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
</web-app>
2>.为要映射别名的servlet设置如下标记(假如包名为baseinfo):
<servlet>
<servlet-name>helloworld</servlet-name>
<servlet-class>baseinfo.HelloWorld</servlet-class>
</servlet>
每个标记可以为一个servlet设置别名,即可通过<servlet-name>给出的名字访问。
如不加标记,访问方法为:
http://localhost:8080/test/baseinfo.HelloWorld
增加上述标记后,访问方法为:
http://localhost:8080/test/helloworld4.tomcat的Manager和Administrtor功能:
1>.修改c:\tomcat\conf\tomcat-user.xml,增加以下标记:
<role rolename="admin"/>
<role rolename="manager"/>
<role rolename="standard"/>
<user username="zhu" password="zhu" roles="standard,manager,admin"/>
2>.安装打包为.war的应用程序:
方法1:将.war文件拷到c:\tomcat\webapps目录下,重启tomcat既可自动安装。
方法2:http://localhost:8080/manager/install?path=/jfreechart&war=jar:file:jfreechart-sample.war!/
其中:path的URL,根是指c:\tomcat\webapps,path的含义是映射的虚拟路径。
file是.war文件所在的实际路径。