2016-07-29 42 views
0
public class Guestbook extends CacheHttpServlet { 
    /** 
    * 
    */ 
    private static final long serialVersionUID = 1 L; 
    private Vector <GuestbookEntry> entries = new Vector <GuestbookEntry>(); 
    private long lastModified = 0; // Time last entry was added 
    // Display the current entries, then ask for a new entry 
    public void doGet(HttpServletRequest req, HttpServletResponse res) 
    throws ServletException, IOException { 
     res.setContentType("text/html"); 
     PrintWriter out = res.getWriter(); 
     printHeader(out); 
     printForm(out); 
     printMessages(out); 
     printFooter(out); 
    } 
    // Add a new entry, then dispatch back to doGet() 
    public void doPost(HttpServletRequest req, HttpServletResponse res) 
    throws ServletException, IOException { 
     handleForm(req, res); 
     doGet(req, res); 
    } 
    private void printHeader(PrintWriter out) throws ServletException { 
     out.println("<HTML><HEAD><TITLE>Guestbook</TITLE></HEAD>"); 
     out.println("<BODY>"); 
    } 
    private void printForm(PrintWriter out) throws ServletException { 
     out.println("<FORM METHOD=POST action='/hello.html'>"); // posts to itself 
     out.println("<B>Please submit your feedback:</B><BR>"); 
     out.println("Your name: <INPUT TYPE=TEXT NAME=name><BR>"); 
     out.println("Your email: <INPUT TYPE=TEXT NAME=email><BR>"); 
     out.println("Comment: <INPUT TYPE=TEXT SIZE=50 NAME=comment><BR>"); 
     out.println("<INPUT TYPE=SUBMIT VALUE=\"Send Feedback\"><BR>"); 
     out.println("</FORM>"); 
     out.println("<HR>"); 
    } 
    private void printMessages(PrintWriter out) throws ServletException { 
     String name, email, comment; 
     Enumeration <GuestbookEntry> e = entries.elements(); 
     while (e.hasMoreElements()) { 
      GuestbookEntry entry = (GuestbookEntry) e.nextElement(); 
      name = entry.name; 
      if (name == null) { 
       name = "Unknown user"; 
       email = "Unknown email"; 
      } 
      email = entry.email; 
      comment = entry.comment; 
      if (comment == null) comment = "No comment"; 
      out.println("<DL>"); 
      out.println("<DT><B>" + name + "</B> (" + email + ") says"); 
      out.println("<DD><PRE>" + comment + "</PRE>"); 
      out.println("</DL>"); 
      // Sleep for half a second to simulate a slow data source 
      try { 
       Thread.sleep(500); 
      } catch (InterruptedException ignored) {} 
     } 
    } 
    private void printFooter(PrintWriter out) throws ServletException { 
     out.println("</BODY>"); 
     out.println("</HTML>"); 
    } 
    private void handleForm(HttpServletRequest req, 
     HttpServletResponse res) { 
     GuestbookEntry entry = new GuestbookEntry(); 
     entry.name = req.getParameter("name"); 
     entry.email = req.getParameter("email"); 
     entry.comment = req.getParameter("comment"); 
     entries.addElement(entry); 
     // Make note we have a new last modified time 
     lastModified = System.currentTimeMillis(); 
    } 
    public long getLastModified(HttpServletRequest req) { 
     return lastModified; 
    } 
} 
class GuestbookEntry { 
    public String name; 
    public String email; 
    public String comment; 
} 

和XML文件中,我用tomcat的给404错误,而我在XML映射优良

<web-app> 
<servlet> 
<servlet-name> 
GuestBook 
</servlet-name> 
<servlet-class> 
Guestbook 
</servlet-class> 
</servlet> 
<servlet-mapping> 
<servlet-name> 
GuestBook 
</servlet-name> 
<url-pattern> 
/hello.html 
</url-pattern> 
</servlet-mapping> 
</web-app> 

我使用的一切都很好,但tomcat的仍然给我一个404错误。虽然我尝试了不同的方法,但仍然给我一个错误。 如果有人会提供解决方案,那么将非常感激。

在此先感谢

+1

尝试用完整的类名即与''包的名称,并尝试通配符_ * _为'' – Imran

+0

有4种方式进行绘制和我尝试了所有,但它仍然给出错误。 –

+0

你的课堂文件在哪里?你在使用IDE吗? – pahan

回答

0

,我们需要创建一个单独的HTML页面,并写相同的内容,代码“PrintForm”的方法。如果我们这样做,那么这个servlet将完美运行。虽然这个servlet用于服务器缓存,但我希望它能在未来帮助你。

谢谢