我想用javaServlets登录。
我过去用PHP做过这个。但我发现这个简短的教程是用JavaServlets做的:http://www.studytonight.com/servlet/login-system-example-in-servlet.php
我只是想知道,如果用户登录后他们将如何检查。在PHP中,我启动了一个SESSION,在此SESSION中存储了session_username / id。所以我可以检查是否有会话,如果是,我会读取存储用户名的会话参数,因此我可以加载用户特定的内容。
这是如何工作的? 谁能帮我? 谢谢!
答案 0 :(得分:1)
你可以通过调用HttpServletRequest的公共方法getSession()来获取HttpSession对象,如下所示:
HttpSession session = request.getSession();
答案 1 :(得分:1)
您需要通常通过servlet(get / post)请求添加会话信息,这样您的login.jsp页面将指向Login并将您重定向到homepage.jsp
public class Login extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response){
HttpSession session = request.getSession();
String user = (String)request.getParameter("userName");
session.setAttribute("userName", user);
request.getRequestDispatcher("/homepage.jsp").forward(request, response);
}
}
您可以直接在jsp内部以几种方式访问会话信息
<%
String userId = request.getSession().getAttribute("userName");
%>
或使用jstl(您必须从jstl添加库)
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<c:if test="${not empty sessionScope.userName}">
User logged in as <c:out value="${sessionScope.userName}" />
</c:if>
答案 2 :(得分:0)
我会使用Servlet Filter来检查会话是否存在
boolean loggedIn = (session != null) && (session.getAttribute("UserID") != null);
过滤器会将所有流量定向到它(基于您在web.xml中告诉其页面指向的内容)。然后,如果会话存在,则可以检查已过滤的流量,并继续或将用户重定向到正确的页面。
以下是一些很好的起点:
http://www.tutorialspoint.com/servlets/servlets-writing-filters.htm
How to handle authentication/authorization with users in a database?
How implement a login filter in JSF?
J2EE filter : login page unable to load the css or any images