tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jon Wingfield <jon.wingfi...@mkodo.com>
Subject Re: Getting the date/time from the client
Date Tue, 11 Jul 2006 10:23:51 GMT
The HTTP spec (rfc2616) says clients should only send the Date header 
with http messages with body content (POST, PUT) and even then it's 
optional.

Try adding a date string as a parameter on your GET request which your 
servlet can then parse from request.getParameter(...).

One way to do this would be to change your link to a form with a hidden 
input field for your date value. Add an onclick/onsubmit javascript 
handler to your form button which sets the value of the hidden field to 
the current date in a format that your servlet will understand.

for example:

function setDate(form) {
   form.dateField.value = new Date().toString();
}


Example assumes a hidden form input field with name dateField.

HTH,

Jon

Vinu Varghese wrote:
> SK,
> That javascript prints the current client time. But I want the client 
> time with the request.
> The scenario is :
> 
> I have a index.jsp
> 
> <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
>    pageEncoding="ISO-8859-1"%>
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
> <html>
> <head>
> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
> <title>Insert title here</title>
> </head>
> <body>
> Client time : <a href="clienttime.htm"> Click</a>
> </body>
> </html>
> 
> and  a servlet that can take the client time (Hoping to :-) ) which is 
> mapped to 'clienttime.htm'
> 
>    protected void doGet(HttpServletRequest request, HttpServletResponse 
> response) throws ServletException, IOException {
>              response.setContentType("text/plain");
>              long time = request.getDateHeader("Date"); // Hoping to get 
> the client date.
>              PrintWriter out = response.getWriter();
>             out.println("Server time " + new Date());
>              out.println("Client time (long) " + time);
>              out.println("Client time " + new Date(time));
>          }
> 
> 
> Is there any way to do this (get the client time from the request) ?
> Or Am I trying to do a dumb thing ? ;)
> 
> Thanks & Regards
> Vinu
> 
> 
> 
> 
> Shinya Koizumi wrote:
>> Vinu
>> Yeah, you are right about it, I can't get getDateHeader working.
>>
>> For the solution one, I have setup like this for jsp and worked.
>>
>> <%@ page session="false" %>
>> <html>
>>    <head>
>>    <meta http-equiv="Content-Type" content="text/html; 
>> charset=iso-8859-1">
>>    <title><%= application.getServerInfo() %></title>
>> </head>
>> <body>
>> Current Time:
>> <%
>> out.println("<SCRIPT LANGUAGE=JavaScript>");
>> out.println("var currentTime = new Date();");
>> out.println("document.write(currentTime.toLocaleString());");
>> out.println("</SCRIPT>");
>> out.println("</HEAD>");
>> %>
>> </body>
>> </html>
>>
>> SK
>> ----- Original Message ----- From: "Vinu Varghese" <vinu@x-minds.org>
>> To: "Tomcat Users List" <users@tomcat.apache.org>
>> Sent: Tuesday, July 11, 2006 1:24 AM
>> Subject: Re: Getting the date/time from the client
>>
>>
>>> Thanks SK,
>>>
>>> I tried the second solution , but request.getDateHeader("Date") 
>>> returns -1 .
>>>
>>> Also I didn't understand the first solution ( embed a javascript), Can u
>>> pls elaborate that.
>>>
>>> Thanks and regards
>>> Vinu
>>>
>>> Shinya Koizumi wrote:
>>>> One is to embed javascript in the output
>>>>
>>>> out.println("<HTML><HEAD><title>JavaScriptExample</title>");
>>>>     out.println("<SCRIPT LANGUAGE=JavaScript>");
>>>>     out.println("function back() {");
>>>>     out.println("history.back(-1);");
>>>>     out.println("}");
>>>>     out.println("</SCRIPT>");
>>>>     out.println("</HEAD>");
>>>>
>>>>
>>>> The other solution is to get it from the request header.
>>>>
>>>> protected void doGet(HttpServletRequest request, HttpServletResponse
>>>> response)
>>>>         throws ServletException, IOException {
>>>>     long l = request.getDateHeader("Date");
>>>>     Date d = new Date(l);
>>>>     System.out.println(d);
>>>> }
>>>>
>>>> SK
>>>> ----- Original Message ----- From: "Vinu Varghese" <vinu@x-minds.org>
>>>> To: "Tomcat Users List" <users@tomcat.apache.org>
>>>> Sent: Tuesday, July 11, 2006 12:51 AM
>>>> Subject: Getting the date/time from the client
>>>>
>>>>
>>>>> Hi All,
>>>>>
>>>>> I am doing a project in jsp/servlet and tomcat, which requires to take
>>>>> the client date/time (ie the time of the machine the browser is
>>>>> running). Is there any way to accomplish this ?
>>>>>
>>>>> Thanks & regards
>>>>> Vinu
>>>>>
>>>>>
>>>>>
>>>>> -- 
>>>>> ........................................
>>>>>
>>>>> Vinu Varghese
>>>>> vinu@x-minds.org
>>>>> www.x-minds.org
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To start a new topic, e-mail: users@tomcat.apache.org
>>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>>
>>>>
>>>>
>>>
>>> -- 
>>> ........................................
>>>
>>> Vinu Varghese
>>> vinu@x-minds.org
>>> www.x-minds.org
>>>
>>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To start a new topic, e-mail: users@tomcat.apache.org
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>
>>
> 



---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message