摘要:項目結(jié)構(gòu)代碼如下登錄接收內(nèi)容接收內(nèi)容保存返回信息用戶不能為空密碼不能為空報錯信息為進行驗證登錄成功增加會話登錄失敗使用服務(wù)器端跳轉(zhuǎn)保存數(shù)據(jù)對于登錄的增加了過濾器如下首頁過濾器轉(zhuǎn)型因為默認(rèn)的中未提供相關(guān)的方法需要向下轉(zhuǎn)型獲取到判斷登錄已經(jīng)登
項目結(jié)構(gòu)
![](https://melovemingming-125387...
)
package com.ming.servlrt; import com.ming.factory.DAOFactory; import com.ming.vo.User; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; import java.util.ArrayList; import java.util.List; public class LoginServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String path = "login.jsp"; // 接收userid內(nèi)容 String userid = req.getParameter("userid"); // 接收userpass內(nèi)容 String userpadd = req.getParameter("userpass"); // 保存返回信息 Listinfo = new ArrayList (); if(userid == null || "".equals(userid)){ info.add("用戶id不能為空"); } if(userpadd == null || "".equals(userpadd)){ info.add("密碼不能為空"); } // 報錯信息為0進行驗證 if(info.size() == 0){ User user = new User(); user.setUserid(userid); user.setPassword(userpadd); try{ if(DAOFactory.getIuserDAOInstance().findLogin(user)){ info.add("登錄成功!" + user.getName()); // 增加session會話 HttpSession session = req.getSession(); session.setAttribute("id", userid); }else{ info.add("登錄失敗"); } }catch (Exception e){ e.printStackTrace(); } } // 使用服務(wù)器端跳轉(zhuǎn), 保存數(shù)據(jù) req.setAttribute("info", info); req.getRequestDispatcher(path).forward(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doGet(req, resp); } }
對于登錄的servlet增加了session
過濾器如下package com.ming.filter; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import java.io.IOException; // 首頁過濾器 public class LoginFile implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { // 轉(zhuǎn)型 因為默認(rèn)的ServletRequest中未提供相關(guān)的方法,需要向下轉(zhuǎn)型 HttpServletRequest request = (HttpServletRequest)servletRequest; // 獲取到session HttpSession session = request.getSession(); // 判斷登錄 if(session.getAttribute("id") != null){ // 已經(jīng)登錄 filterChain.doFilter(servletRequest, servletResponse); }else{ // 跳轉(zhuǎn)登錄頁登錄 request.getRequestDispatcher("login.jsp").forward(servletRequest, servletResponse); } } @Override public void destroy() { } }配置文件如下
jsp文件如下Archetype Created Web Application LoginFile com.ming.filter.LoginFile LoginFile /index.jsp login com.ming.servlrt.LoginServlet login /loginServlet
涉及 前端的js驗證
采用攔截click事件
<%@ page import="java.util.List" %> <%@ page import="java.util.Iterator" %><%-- Created by IntelliJ IDEA. User: ming Date: 19-3-16 Time: 下午11:07 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %>Title 用戶登錄程序
<% Listinfo = (List )request.getAttribute("info"); if(info != null){ Iterator iterator = info.iterator(); while(iterator.hasNext()){ %> <%=iterator.next()%>
<% } } %>用戶id 密碼
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/73748.html
摘要:實栗實現(xiàn)登錄實現(xiàn)思路一個表單頁,輸入用戶登錄和密碼,然后信息提交到頁面進行驗證,如果可以服務(wù)器跳轉(zhuǎn)到登錄成功頁,失敗,跳轉(zhuǎn)到錯誤頁跳轉(zhuǎn)的時候窗口的地址會發(fā)生變化代碼如下編寫登錄代碼登錄登錄登錄操作用戶登錄登錄登錄密碼登錄重置登錄處理 jsp 實栗 jsp + jdbc 實現(xiàn)登錄 實現(xiàn)思路 一個表單頁,輸入用戶登錄和密碼,然后信息提交到j(luò)sp頁面進行驗證,如果可以服務(wù)器跳轉(zhuǎn)到登錄成功頁,...
摘要:實現(xiàn)思路常見的流程是標(biāo)準(zhǔn)的即登錄表單用戶提交數(shù)據(jù)到登錄檢查若登錄檢查通過以后觸發(fā)事件保存進入在線人員列表中頁面跳轉(zhuǎn)到在線用戶列表若用戶注銷從在線列表中刪除代碼如下使用集合即集合去重原因內(nèi)部存儲為的鍵值對為由于哈希表的特征即可去重項目結(jié)構(gòu) 實現(xiàn)思路 常見的流程是,標(biāo)準(zhǔn)的mvc 即 登錄表單,用戶提交數(shù)據(jù)到登錄檢查,若登錄檢查通過以后,觸發(fā)session事件,保存進入在線人員列表中,頁面跳...
摘要:顯示層控制層數(shù)據(jù)層統(tǒng)一交給或者處理處理流程客戶端發(fā)送到執(zhí)行讀取返回返回給在返回給在給客戶端問題代碼雜亂即方式客戶端發(fā)送到然后執(zhí)行用于讀取控制器獲取到讀取的數(shù)據(jù)以后再次返回給生成文件給客戶端分為顯示層控制層模型層屬于提供的分布式組件服務(wù)分 Model1 顯示層,控制層,數(shù)據(jù)層,統(tǒng)一交給jsp或者javabean處理. 處理流程 客戶端發(fā)送request 到 jsp jsp 執(zhí)行java...
摘要:原文鏈接基于怎么設(shè)計用戶權(quán)限控制前言有人說,每個人都是平等的也有人說,人生來就是不平等的在人類社會中,并沒有絕對的公平,一件事,并不是所有人都能去做一樣物,并不是所有人都能夠擁有。 原文鏈接:BlueSun | 基于RESTful API 怎么設(shè)計用戶權(quán)限控制? 前言 有人說,每個人都是平等的;也有人說,人生來就是不平等的;在人類社會中,并沒有絕對的公平,一件事,并不是所有人都能去做;...
閱讀 3979·2021-11-16 11:44
閱讀 5231·2021-10-09 09:54
閱讀 2039·2019-08-30 15:44
閱讀 1691·2019-08-29 17:22
閱讀 2764·2019-08-29 14:11
閱讀 3401·2019-08-26 13:25
閱讀 2332·2019-08-26 11:55
閱讀 1603·2019-08-26 10:37