Я изучаю отладку, и я получаю следующую ошибку при запуске tomcat через мой браузер. Я использую Texpad для записи, и я думаю, что tomcat после.
An error occurred at line: 18 in the jsp file: /Debug.jsp
Date cannot be resolved to a type
15:
16: <%
17: response.setContentType("MIME");
18: Date today = new Date(12,20,2004);
19:
20: Date created = new Date(session.getCreationTime());
21: Date lastAccessed = new Date(session.getLastAccessedTime());
Я получаю ту же ошибку дважды для строк 18, 20 и 21. Исходный код приведен ниже.
<HTML>
<HEAD>
<TITLE>JSP Debugging</TITLE>
</HEAD>
<BODY>
<% import java.io.*; %>
<% import java.util.Date; %>
<% import java.util.Enumeration; %>
<%
response.setContentType("MIME");
Date today = new Date(12,20,2004);
Date created = new Date(session.getCreationTime());
Date lastAccessed = new Date(session.getLastAccessedTime());
out.print("<h1>Today is " );
out.print(today);
out.print("</h1>" );
out.print("This session has the following characteristics:<br>" );
out.println("<br>ID: ");
session.getId(); %>
out.println("Created: " + created);
out.println("Last Accessed: " + lastAccessed);
out.println("<br>Max Inactive Interval: " +
session.getMaxInactiveInterval());
%>
</BODY>
</HTML>
Я знаю, что есть еще много ошибок, и я работаю над ними, но на данный момент любая помощь в этом будет потрясающей. Насколько я могу судить, это проблема с Датой, но я не уверен, что именно.
EDIT-------------------------------------------------------------------------------------------------
Поэтому я внес исправления, и теперь код выглядит следующим образом:
<HTML>
<HEAD>
<TITLE>JSP Debugging</TITLE>
</HEAD>
<BODY>
<%@ page import="java.util.Date,java.io.*,java.util.Enumeration"%>
<%
response.setContentType("MIME");
Date today = new Date(12,20,2004);
Date created = new Date(session.getCreationTime());
Date lastAccessed = new Date(session.getLastAccessedTime());
out.print("<h1>Today is " );
out.print(today);
out.print("</h1>" );
out.print("This session has the following characteristics:<br>" );
out.println("<br>ID: ");
session.getId(); %>
out.println("Created: " + created);
out.println("Last Accessed: " + lastAccessed);
out.println("<br>Max Inactive Interval: " +
session.getMaxInactiveInterval());
%>
</BODY>
</HTML>
И после того, как я запустил localhost: 8080/Debug.jsp в своем веб-браузере, он загрузил новую копию jsp с ожидаемыми результатами, но они должны были отображаться в браузере.
<HTML>
<HEAD>
<TITLE>JSP Debugging</TITLE>
</HEAD>
<BODY>
<h1>Today is Tue Feb 25 00:00:00 EST 1919</h1>This session has the following characteristics:<br><br>ID:
out.println("Created: " + created);
out.println("Last Accessed: " + lastAccessed);
out.println("<br>Max Inactive Interval: " +
session.getMaxInactiveInterval());
%>
</BODY>
</HTML>
Вы не импортируете типы правильно. Импорт должен быть добавлен с помощью директивы page:
<%@page import="java.io.*, java.util.Date, java.util.Enumeration" %>
Тем не менее. Вы никогда не должны использовать скрипты в JSP. Поместите Java-код в контроллеры, используйте JSP как чистые компоненты представления, единственной целью которых является создание разметки с использованием JSP EL, JSTL и других тегов cutom.
См. Как избежать использования сценариев на моей странице JSP?
Синтаксис директивы import неверен. Правильный вариант:
<%@ page import="java.util.Date,java.io.*,java.util.Enumeration"%>
FYI: Неправильная практика использования scriptlets
в jsp
. Поместите всю свою логику в класс на стороне сервера и используйте jsp только для отображения.
<% %>
%%<% %>
(скриптлет) - это код, который входит в метод сервиса JSP.