我在tomcat的webapps目录下新建一个TestServlet目录,然后再建了WEB-INF目录和web.xml文件,web.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name>yuzhengzhong</servlet-name>
<servlet-class>TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>yuzhengzhong</servlet-name>
<url-pattern>/testServlet</url-pattern>
</servlet-mapping>
</web-app>WEB-INF目录下有classes和lib目录,lib目录里面没东西,classes目录下放了TestServlet.class文件,TestServlet.java的内容如下:
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class TestServlet extends HttpServlet{ @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
PrintWriter out=resp.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>yuzhengzhong's first servlet</title>");
out.println("</head>");
out.println("<body>");
out.println(new Date());
out.println("<br>");
out.println("Welcome to my first servlet~");
out.println("</body>");
out.println("</html>");
} @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(req, resp);
}}启动tomcat,没有错误,正常运行,在浏览器中输入http://localhost:8080/TestServlet/testServlet,为什么会出现404错误呀,错误如下:
HTTP Status 404 - /TestServlet/testServlet--------------------------------------------------------------------------------type Status reportmessage /TestServlet/testServletdescription The requested resource (/TestServlet/testServlet) is not available.
--------------------------------------------------------------------------------Apache Tomcat/6.0.16
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name>yuzhengzhong</servlet-name>
<servlet-class>TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>yuzhengzhong</servlet-name>
<url-pattern>/testServlet</url-pattern>
</servlet-mapping>
</web-app>WEB-INF目录下有classes和lib目录,lib目录里面没东西,classes目录下放了TestServlet.class文件,TestServlet.java的内容如下:
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class TestServlet extends HttpServlet{ @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
PrintWriter out=resp.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>yuzhengzhong's first servlet</title>");
out.println("</head>");
out.println("<body>");
out.println(new Date());
out.println("<br>");
out.println("Welcome to my first servlet~");
out.println("</body>");
out.println("</html>");
} @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(req, resp);
}}启动tomcat,没有错误,正常运行,在浏览器中输入http://localhost:8080/TestServlet/testServlet,为什么会出现404错误呀,错误如下:
HTTP Status 404 - /TestServlet/testServlet--------------------------------------------------------------------------------type Status reportmessage /TestServlet/testServletdescription The requested resource (/TestServlet/testServlet) is not available.
--------------------------------------------------------------------------------Apache Tomcat/6.0.16
super();
} public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
} public void init() throws ServletException {
// Put your code here
}
或者是4楼的那种方法输入http://localhost:8080/工程名/testServlet楼主可以试一下啊
再看看你的servlet是不是放在缺省包下,
<servlet-class>TestServlet</servlet-class>
public class TestServlet extends HttpServlet{ @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doPost(req,resp);
} @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
resp.setContentType("text/html;charset=utf-8");
PrintWriter out=resp.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>yuzhengzhong's first servlet</title>");
out.println("</head>");
out.println("<body>");
out.println(new Date());
out.println("<br>");
out.println("Welcome to my first servlet~");
out.println("</body>");
out.println("</html>"); }}
看log啊,大哥们././//logs/localhost.*最新的那个文件.看里面出错没..
对症下药,瞎猜写什么啊..还解决不了就把log 贴出来......
更改方案如下:在web.xml中将<url-pattern>/testServlet</url-pattern>
更改为:<url-pattern>/testServlet</url-pattern>
<url-pattern>/****/testServlet</url-pattern>***代表你的工程目录既WEB-INF的上 一级.
改为http://localhost:8080/testServlet/testServlet