I'm new to Java Web development. I read many post related to this problem, it have been discussed a lot... but I can't figure out how to make it work for me... So please be kind :o)
I have a simple form that I can submit. By default I want the form to display today's date.
Here is my servlets code snippet:
@WebServlet("/Main")
public class Main extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Main() {
super();
// TODO Auto-generated constructor stub
}
public String date;
public String getDate() {
return date;
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
// response.getWriter().append("Served at: ").append(request.getContextPath());
System.out.println("\n-----------------------------------------\nBegin doGet");
System.out.println("Date " + date);
HttpSession session = request.getSession();
// Date - Get today date to fill the welcome form
Date dNow = new Date();
SimpleDateFormat ft = new SimpleDateFormat("dd MMMM yyyy");
date = (String) ft.format(dNow);
session.setAttribute("date", date);
// Go to main page
this.getServletContext().getRequestDispatcher("/WEB-INF/main.jsp").forward(request, response);
System.out.println("\nEnd doGet\n-----------------------------------------");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("\n-----------------------------------------\nBegin Post Session");
System.out.println("Date " + date);
HttpSession session = request.getSession();
this.getServletContext().getRequestDispatcher("/WEB-INF/main.jsp").forward(request, response);
System.out.println("\nEnd doPost\n-----------------------------------------");
}
}
The trace in the eclipse console show the correct value.
But in my JSP I don't know how to display it. I tried
<p>${date}</p>
this one give a blank paragraph. and
<%= session.getAttribute("date");%>
This one gives an execution error on the server side.
Can someone explain me what is wrong in my code? Not just a link on the forum which I've already read but not understood ;o)
Thank you
You can access session attributes as follows in jsp pages,
Use ${sessionScope.date}
instead of ${date}
in <p>
tag.
Make sure the jsp is allow access session by adding <%@ page session="true" %>
at the top of the page.