Play's session is a client-side session stored in a cookie, and sent to the client with every response. Since you can only modify the session when you actually answer, any changes you want to make use of in the current action (request - response cycle) should probably be available to you in that specific action anyway.
If your aim is to look at the session inside of a template, then I would suggest you explicitly pass a copied version of the session to the template and also set it as a new session.
Controller action:
def someAction = Action { implicit request =>
val updatedSession = request.session.copy(Map("user" -> "Admin")
Ok(views.html.something("Hello from Scala")(updatedSession)).withSession(updatedSession)
}
Template:
@(text: String)(implicit session: Session)
<h1>@text</h1>
@session.get("user").map { u=>
Your role is: @u
}