jsp實現登錄驗證的過濾器
本文實例為大家分享了jsp實現登錄驗證的過濾器,供大家參考,具體內容如下
1.新建一個dynamic web project項目,里面新建1個filter文件、1個servlet文件和2個jsp文件,整體的框架如圖所示:
2.loginfilter.java里面的代碼如下所示:
package filter; import java.io.ioexception; import java.io.printwriter; import javax.servlet.filter; import javax.servlet.filterchain; import javax.servlet.filterconfig; import javax.servlet.servletexception; import javax.servlet.servletrequest; import javax.servlet.servletresponse; import javax.servlet.annotation.webfilter; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import javax.servlet.http.httpsession; @webfilter(filtername = "loginfilter", urlpatterns = { "/*" }) public class loginfilter implements filter { public void destroy() { } public void dofilter(servletrequest request, servletresponse response, filterchain chain) throws ioexception, servletexception { httpservletrequest req = (httpservletrequest) request; httpservletresponse resp = (httpservletresponse) response; httpsession session = req.getsession(true); resp.setcontenttype("text/html;"); resp.setcharacterencoding("utf-8"); printwriter out = resp.getwriter(); string request_uri = req.getrequesturi(); string ctxpath = req.getcontextpath(); string uri = request_uri.substring(ctxpath.length()); if (uri.contains("login.jsp") || uri.contains("loginservlet")) { chain.dofilter(request, response); } else { if (session.getattribute("user") != null) { chain.dofilter(request, response); } else { out.println("您沒有登錄,請先登錄!3秒后回到登錄頁面。"); resp.setheader("refresh", "3;url=" + ctxpath + "/login.jsp"); return; } } } public void init(filterconfig fconfig) throws servletexception { } }
3.loginservlet.java里面的代碼如下所示:
package servlet; import java.io.ioexception; import javax.servlet.servletexception; import javax.servlet.annotation.webservlet; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import javax.servlet.http.httpsession; @webservlet(name = "loginservlet", urlpatterns = { "/loginservlet" }) public class loginservlet extends httpservlet { private static final long serialversionuid = 1l; protected void doget(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception { dopost(request, response); } protected void dopost(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception { string username = request.getparameter("name"); string password = request.getparameter("pwd"); if ("filter".equals(username) && "filter".equals(password)) { httpsession session = request.getsession(true); session.setattribute("user", username); response.sendredirect("loginsuccess.jsp"); } else { response.sendredirect("login.jsp"); } } }
4.login.jsp里面的代碼如下所示:
<%@page import="java.util.date"%> <%@ page language="java" contenttype="text/html; charset=utf-8" pageencoding="utf-8"%> <!doctype html public "-//w3c//dtd html 4.01 transitional//en" "http://www.w3.org/tr/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>example</title> </head> <body bgcolor="lightpink"> <form action="loginservlet" method="post"> <table> <tr> <td>用戶名:</td> <td><input type="text" name="name" /></td> </tr> <tr> <td>密碼:</td> <td><input type="password" name="pwd" /> </tr> <tr> <td><input type="submit" value="提交" /></td> <td><input type="reset" value="重置" /></td> </tr> </table> </form> </body> </html>
5.loginsuccess.jsp里面的代碼如下所示:
<%@page import="java.util.date"%> <%@ page language="java" contenttype="text/html; charset=utf-8" pageencoding="utf-8"%> <!doctype html public "-//w3c//dtd html 4.01 transitional//en" "http://www.w3.org/tr/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>example</title> </head> <body> <% string username = (string) session.getattribute("user"); %> 恭喜<%=username%>登錄成功! </body> </html>
6.在瀏覽器里面輸入http://localhost:8080/servlet/login.jsp運行之后得到的結果如下所示:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持碩編程。
相關文章
- jsp+servlet實現文件上傳與下載功能
- EJB3.0部署消息驅動Bean拋javax.naming.NameNotFoundException異常
- 在JSP中使用formatNumber控制要顯示的小數位數方法
- 秒殺系統Web層設計的實現方法
- 將properties文件的配置設置為整個Web應用的全局變量實現方法
- JSP使用過濾器防止Xss漏洞
- 在JSP頁面中動態生成圖片驗證碼的方法實例
- 詳解JSP 內置對象request常見用法
- 使用IDEA編寫jsp時EL表達式不起作用的問題及解決方法
- jsp實現局部刷新頁面、異步加載頁面的方法
- Jsp中request的3個基礎實踐
- JavaServlet的文件上傳和下載實現方法
- JSP頁面的靜態包含和動態包含使用方法