📄 loginservlet.java
字号:
package com.jdon.jivejdon.presentation;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jdon.security.web.CookieUtil;
import com.jdon.util.Debug;
import com.jdon.util.RequestUtil;
import com.jdon.util.StringUtil;
public class LoginServlet extends HttpServlet {
private final static String module = LoginServlet.class.getName();
public final static String form_login_page_param = "login";
public final static String form_error_page_param = "login_error";
public final static String logout_param = "logout";
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Debug.logVerbose("[JdonFramework]enter LoginServlet", module);
initCharacterEncoding(request, response);
String username = request.getParameter("j_username");
String password = request.getParameter("j_password");
if ((username != null) && (password != null)) {
Debug.logVerbose("[JdonFramework] username and password is not null", module);
if (request.getParameter("rememberMe") != null) {
saveCookie(username, password, request, response);
}
} else {
Debug.logVerbose("[JdonFramework] check cookie", module);
if (request.getParameterMap().containsKey(logout_param)) {// /login?logout
logout(request, response);
} else {// call /login
username = CookieUtil.getUsername(request);
password = CookieUtil.getPassword(request);
Debug.logVerbose("[JdonFramework]get username from cookie username=" + username, module);
if ((username == null) || (password == null)) {// no cookie, push login.jsp
forwardLogin(request, response);
}
}
}
String route = request.getContextPath() + "/j_security_check?j_username=" + username
+ "&j_password=" + password;
Debug.logVerbose("[JdonFramework] forward " + route, module);
response.sendRedirect(route);
}
private void initCharacterEncoding(HttpServletRequest request, HttpServletResponse response){
if (request.getCharacterEncoding() != null){
response.setCharacterEncoding(request.getCharacterEncoding());
}else{
response.setCharacterEncoding("UTF-8");
}
}
private void saveCookie(String username , String password, HttpServletRequest request, HttpServletResponse response){
Debug.logVerbose("[JdonFramework] save cookie", module);
RequestUtil.setCookie(response, "rememberMe", "true", "/");
RequestUtil.setCookie(response, "username", StringUtil
.encodeString(username), "/");
RequestUtil.setCookie(response, "password", StringUtil
.encodeString(password), "/");
}
private void logout(HttpServletRequest request, HttpServletResponse response){
Debug.logVerbose("[JdonFramework]logout, session.invalidate ", module);
try {
request.getSession().invalidate();
CookieUtil.deleteAllCookie(request, response);
String logoutUrl = this.getInitParameter(logout_param);
Debug.logVerbose("[JdonFramework]delete all cookie, push logout jsp=" + logoutUrl, module);
//request.getRequestDispatcher(logoutUrl).forward(request, response);
response.sendRedirect(response.encodeRedirectURL(request.getContextPath() + logoutUrl));
} catch (IOException e) {
Debug.logError(e, module);
}
}
private void forwardLogin(HttpServletRequest request, HttpServletResponse response){
String loginUrl = this.getInitParameter(form_login_page_param);
Debug.logVerbose("[JdonFramework] not found cookie= push login jsp=" + loginUrl, module);
try {
response.sendRedirect(response.encodeRedirectURL(request.getContextPath() + loginUrl));
} catch (IOException e) {
Debug.logError(e, module);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -