就是说不使用IDE环境,Tomcat是下载后直接安装的。CATALINA_HOME系统变量也配好了,一般的jsp网页经检验也可以打开了。在webapps文件夹下建立s1文件夹,其下再建立WEB-INF文件夹。
现在把一个在JBuilder下通过了的Servlet的java文件经编译后的class文件放在WEB-INF文件夹的classes文件夹的chapter2文件夹下了。之所以放在这个文件夹下,因为该java文件如下:
package chapter2;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class SimpleServlet extends HttpServlet {
public void init(ServletConfig config)
throws ServletException {
// Always pass the ServletConfig object to the super class
super.init(config);
}
//Process the HTTP Get request
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
//Process the HTTP Post request
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>Simple Servlet</title></head>");
out.println("<body>");
// Outputs the address of the calling client
out.println("Your address is " + request.getRemoteAddr()
+ "\n");
out.println("</body></html>");
out.close();
}
}然后自己写了一个web.xml文件放在了s1文件夹下,内容是:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!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>
<servlet-name>SimpleServlet</servlet-name>
<servlet-class>chapter2.SimpleServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SimpleServlet</servlet-name>
<url-pattern>/SimpleServlet</url-pattern>
</servlet-mapping>
</web-app>
然后打包发布成war文件在webapps文件夹下。
启动Tomcat后,输入:http://localhost:8080/servlet1/SimpleServlet
会出现“The requested resource (/servlet1/SimpleServlet) is not available.”
的提示。请问这是怎么回事呢?如果在s1文件夹下放一个jsp文件,那是可以正常显示的。我的web.xml是仿照那个JBuilder中成功显示的servlet的xml写的,应该没有什么问题,难道还有什么步骤我没有做吗?因为我一直还没有搞清楚,这样的话Tomcat是怎么知道那是一个servlet的,仅凭xml的描述吗?有直接在Tomcat下实现这个servlet的朋友,也可以把程序发到我邮箱
[email protected]
发帖后24小时内予以答复,正确马上给分。
现在把一个在JBuilder下通过了的Servlet的java文件经编译后的class文件放在WEB-INF文件夹的classes文件夹的chapter2文件夹下了。之所以放在这个文件夹下,因为该java文件如下:
package chapter2;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class SimpleServlet extends HttpServlet {
public void init(ServletConfig config)
throws ServletException {
// Always pass the ServletConfig object to the super class
super.init(config);
}
//Process the HTTP Get request
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
//Process the HTTP Post request
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>Simple Servlet</title></head>");
out.println("<body>");
// Outputs the address of the calling client
out.println("Your address is " + request.getRemoteAddr()
+ "\n");
out.println("</body></html>");
out.close();
}
}然后自己写了一个web.xml文件放在了s1文件夹下,内容是:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!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>
<servlet-name>SimpleServlet</servlet-name>
<servlet-class>chapter2.SimpleServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SimpleServlet</servlet-name>
<url-pattern>/SimpleServlet</url-pattern>
</servlet-mapping>
</web-app>
然后打包发布成war文件在webapps文件夹下。
启动Tomcat后,输入:http://localhost:8080/servlet1/SimpleServlet
会出现“The requested resource (/servlet1/SimpleServlet) is not available.”
的提示。请问这是怎么回事呢?如果在s1文件夹下放一个jsp文件,那是可以正常显示的。我的web.xml是仿照那个JBuilder中成功显示的servlet的xml写的,应该没有什么问题,难道还有什么步骤我没有做吗?因为我一直还没有搞清楚,这样的话Tomcat是怎么知道那是一个servlet的,仅凭xml的描述吗?有直接在Tomcat下实现这个servlet的朋友,也可以把程序发到我邮箱
[email protected]
发帖后24小时内予以答复,正确马上给分。
解决方案 »
- 在线等!在jsp中如何从请求中取参数,然后作为function参数
- 类似这类的网站一般需要哪些相关java开发技术的?
- 水晶报表用法
- 关于display 标签 分页 困惑 (请大家帮忙看看)
- 求助工作流--Jbpm学习办法
- 推荐一个支持复合内容编辑的web控件?
- <html:options>标签的属性是什么含义
- jsp连接建立数据库问题
- ●●●●在Tomcat下怎样用jsp页面调用包 com/event/下的Applet程序:applet5.java ;我老是不能调用成功:提示如下“ClassNotFoundExcept
- hibernateTemplate.update() 方法 控制台已输出SQL语句,但数据库没有更新
- 菜鸟提问
- showModalDialog的问题 showModalDialog("1.jsp") 这样可以 showModalDialog("/hebtele/user/1.jsp") 这样就报错 有人知道原因吗
2. chapter2.SimpleServlet
3. /SimpleServlet
4. http://localhost:8080/servlet1/SimpleServlet
5. /servlet1/SimpleServlet上述五者显然存在不一致的情况。既然你建立的是“s1”目录,那么下面访问的时候怎么变成servlet1了呢?当然你做了相对路径映射的话又另当别论。另外<url-pattern>/SimpleServlet</url-pattern>一句可以改为
<url-pattern>SimpleServlet</url-pattern>试试看。
我明天再试一下,现在机器不在手头
url-pattern中改了也没有用,还是那个提示,这个web.xml应该没有问题,是从JBuilder中成功运行的Servlet项目中仿照过来的。
如果你要在根目录下访问你的应用,需要改变你的应用的相对路径,你可以参考一下tomcat\conf\Catalina\localhost\ROOT.xml的写法。
改了WEB.XML后要重启TOMCAT才生效的~
我应该想到的!