jsp實(shí)現(xiàn)登錄驗(yàn)證的過濾器
本文實(shí)例為大家分享了jsp實(shí)現(xiàn)登錄驗(yàn)證的過濾器,供大家參考,具體內(nèi)容如下
1.新建一個(gè)dynamic web project項(xiàng)目,里面新建1個(gè)filter文件、1個(gè)servlet文件和2個(gè)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運(yùn)行之后得到的結(jié)果如下所示:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持碩編程。
相關(guān)文章
- jsp+servlet實(shí)現(xiàn)文件上傳與下載功能
- EJB3.0部署消息驅(qū)動(dòng)Bean拋javax.naming.NameNotFoundException異常
- 在JSP中使用formatNumber控制要顯示的小數(shù)位數(shù)方法
- 秒殺系統(tǒng)Web層設(shè)計(jì)的實(shí)現(xiàn)方法
- 將properties文件的配置設(shè)置為整個(gè)Web應(yīng)用的全局變量實(shí)現(xiàn)方法
- JSP使用過濾器防止Xss漏洞
- 在JSP頁面中動(dòng)態(tài)生成圖片驗(yàn)證碼的方法實(shí)例
- 詳解JSP 內(nèi)置對象request常見用法
- 使用IDEA編寫jsp時(shí)EL表達(dá)式不起作用的問題及解決方法
- jsp實(shí)現(xiàn)局部刷新頁面、異步加載頁面的方法
- Jsp中request的3個(gè)基礎(chǔ)實(shí)踐
- JavaServlet的文件上傳和下載實(shí)現(xiàn)方法
- JSP頁面的靜態(tài)包含和動(dòng)態(tài)包含使用方法