2015-03-28 2 views
0

Я только начал работать с tomcat и сервлетом. после запуска некоторой html-страницы я пытался запустить это timeform.it, давая мне page.but, когда я нажимаю на страницу отправки, он дает мне эту ошибку вместо time.please, помогите мне.HTTP Status 404 -/liangweb/TimeForm

import javax.servlet.*; 
import javax.servlet.http.*; 
import java.io.*; 
import java.util.*; 
import java.text.*; 

public class TimeForm extends HttpServlet { 
    private static final String CONTENT_TYPE = "text/html"; 
    private Locale[] allLocale = Locale.getAvailableLocales(); 
    private String[] allTimeZone = TimeZone.getAvailableIDs(); 

    /** Process the HTTP Get request */ 
    public void doGet(HttpServletRequest request, HttpServletResponse 
     response) throws ServletException, IOException { 
    response.setContentType(CONTENT_TYPE); 
    PrintWriter out = response.getWriter(); 
    out.println("<h3>Choose locale and time zone</h3>"); 
    out.println("<form method=\"post\" action=" + 
     "/liangweb/TimeForm>"); 
    out.println("Locale <select size=\"1\" name=\"locale\">"); 

    // Fill in all locales 
    for (int i = 0; i < allLocale.length; i++) { 
     out.println("<option value=\"" + i +"\">" + 
     allLocale[i].getDisplayName() + "</option>"); 
    } 
    out.println("</select>"); 

    // Fill in all time zones 
    out.println("<p>Time Zone<select size=\"1\" name=\"timezone\">"); 
    for (int i = 0; i < allTimeZone.length; i++) { 
     out.println("<option value=\"" + allTimeZone[i] +"\">" + 
     allTimeZone[i] + "</option>"); 
    } 
    out.println("</select>"); 
    out.println("<p><input type=\"submit\" value=\"Submit\" >"); 
    out.println("<input type=\"reset\" value=\"Reset\"></p>"); 
    out.println("</form>"); 
    out.close(); // Close stream 
    } 

    /** Process the HTTP Post request */ 
    public void doPost(HttpServletRequest request, HttpServletResponse 
     response) throws ServletException, IOException { 
    response.setContentType(CONTENT_TYPE); 
    PrintWriter out = response.getWriter(); 
    out.println("<html>"); 
    int localeIndex = Integer.parseInt(
     request.getParameter("locale")); 
    String timeZoneID = request.getParameter("timezone"); 
    out.println("<head><title>Current Time</title></head>"); 
    out.println("<body>"); 
    Calendar calendar = 
     new GregorianCalendar(allLocale[localeIndex]); 
    TimeZone timeZone = TimeZone.getTimeZone(timeZoneID); 
    DateFormat dateFormat = DateFormat.getDateTimeInstance(
     DateFormat.FULL, DateFormat.FULL, allLocale[localeIndex]); 
    dateFormat.setTimeZone(timeZone); 
    out.println("Current time is " + 
     dateFormat.format(calendar.getTime()) + "</p>"); 
    out.println("</body></html>"); 
    out.close(); // Close stream 
    } 
} 

тогда я скомпилировал без ошибок javac -cp .;d:\apache\lib\servlet-api.jar TimeForm.java это мой файл web.xml.

<?xml version="1.0" encoding="ISO-8859-1"?> 
<web-app version="3.0" 
    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_3_0.xsd"> 



    <servlet> 
     <servlet-name>servertime</servlet-name> 
     <servlet-class>TimeForm</servlet-class> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>servertime</servlet-name> 
     <url-pattern>/servertime</url-pattern> 
    </servlet-mapping> 
</web-app> 

ошибка после нажатия на submit-

отчета Тип состояния

сообщение/liangweb/Timeform

описание Запрашиваемый ресурс не доступен.

+0

'out.println ("

");'. Вы теряете кавычки вокруг значения 'action' –

+0

out.println (" "); такой.? –

+0

Нет, это не значение. Значение находится в правой части '='. Посмотрите, как вы все сделали. Может быть, '+' вас сбивает с толку. '' 'You current; y есть просто простые кавычки String/terminating. Вам еще нужен еще один набор кавычек. Выньте' + 'и сделайте это как все остальное. Возможно, вы можете увидеть его лучше –

ответ

0

метод формы = \ "после \" действие = \ "" + "/ cs532/ServerTime \"

Это должно быть полезным и идеальным решением.