首页 文章 精选 留言 我的

精选列表

搜索[实名实人认证解决方案],共10006篇文章
优秀的个人博客,低调大师

WorkBuddy 新手入门操教程

现在很多人会遇到信息碎片化的问题,笔记、待办事项、常用链接分散在不同软件当中,来回切换软件十分耗费时间。WorkBuddy 作为一款零代码可视化搭建工具,不需要掌握编程知识,通过简单拖拽组件就可以快速搭建个人工作台,将日常工作、学习、生活各类信息统一聚合在一个页面。本文针对新手用户,完整梳理入门全流程,降低上手门槛。

优秀的个人博客,低调大师

过滤器栗 登录检测

项目结构 ![](https://melovemingming-1253878077.cos.ap-chengdu.myqcloud.com/blog-image/2019/03/2019-03-17%2004-56-15%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE.png) 代码如下 登录servlet 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内容 String userid = req.getParameter("userid"); // 接收userpass内容 String userpadd = req.getParameter("userpass"); // 保存返回信息 List<String> info = new ArrayList<String>(); 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(); } } // 使用服务器端跳转, 保存数据 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 { // 转型 因为默认的ServletRequest中未提供相关的方法,需要向下转型 HttpServletRequest request = (HttpServletRequest)servletRequest; // 获取到session HttpSession session = request.getSession(); // 判断登录 if(session.getAttribute("id") != null){ // 已经登录 filterChain.doFilter(servletRequest, servletResponse); }else{ // 跳转登录页登录 request.getRequestDispatcher("login.jsp").forward(servletRequest, servletResponse); } } @Override public void destroy() { } } 配置文件如下 <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Archetype Created Web Application</display-name> <filter> <filter-name>LoginFile</filter-name> <filter-class>com.ming.filter.LoginFile</filter-class> </filter> <filter-mapping> <filter-name>LoginFile</filter-name> <url-pattern>/index.jsp</url-pattern> </filter-mapping> <servlet> <servlet-name>login</servlet-name> <servlet-class>com.ming.servlrt.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>login</servlet-name> <url-pattern>/loginServlet</url-pattern> </servlet-mapping> </web-app> jsp文件如下 涉及 前端的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" %> <html> <head> <title>Title</title> </head> <body> <h2>用户登录程序</h2> <% List<String> info = (List<String>)request.getAttribute("info"); if(info != null){ Iterator<String> iterator = info.iterator(); while(iterator.hasNext()){ %> <h4><%=iterator.next()%></h4> <% } } %> <form action="loginServlet" method="post"> 用户id <input type="text" name="userid" id="uname"/> 密码 <input type="password" name="userpass" id="password"/> <input type="submit" value="登录" id="submit"/> <input type="reset" value="重置"/> </form> <script> let submit = document.getElementById("submit"); submit.onclick = (event) => { let uname = document.getElementById("uname").value; let password = document.getElementById("password").value; if(!(/^\w{1,15}/.test(uname))){ alert("用户id为5-15位"); return false; } if(!(/^\w{1,15}/.test(password))){ alert("密码必须为5-15位"); return false; } return true; } </script> </body> </html>

优秀的个人博客,低调大师

数据科学家操之路

更多深度文章,请关注:https://yq.aliyun.com/cloud Kaggle最近进行了一项旨在评估数据科学和机器学习当前发展状况的调查。 他们收到了将近17000份答卷,并利用这些答卷做出了大量的分析。对于调查结果的分析报告,我并不感兴趣,我只是想看看这些调查结果是否对我这种想知道如何成为数据科学家的人来说是否有用。 如果你对分析过程并不感兴趣,而只想看看17000个行业专业人士的说法,那么请跳到本文的最后一节阅读结论。 否则,请继续阅读下文,看看我是如何得出结论的。 1. 导入和预处理 1.1. 导入数据 library(data.table)library(dplyr, warn.conflicts =FALSE)library(ggplot2)library(tibble) results <- as.tibbl

优秀的个人博客,低调大师

Jetski - MCP 分析和认证平台

Jetski 是一个开源 MCP 分析和身份验证平台,隶属于 HyprMCP。它解决了团队在开发 MCP 服务器时面临的三大问题,且无需修改任何代码: 安装和设置:大多数用户从未完成过设置。他们找不到客户端说明,或者无法在浏览器中打开您的 MCP 网址,因此立即流失。 身份验证:识别用户并为他们提供正确的工具和响应仍然很难实现。 日志、分析和可见性:无法了解你的 MCP 如何使用、哪些提示触发哪些工具或为什么会发生错误。 平台管理和部署位于你的 MCP 服务器前端的mcp-gateway实例,并处理复杂的事务。它还收集并汇总网关捕获的所有分析和指标数据。 Jetski 仍在积极开发中,尚处于起步阶段。API 和命令行界面可能会以向后不兼容的方式发生变化。 特点 全面的提示分析查看哪些提示触发了哪些工具、来自哪些客户端以及发生了什么。全面了解你的 MCP 服务器使用模式,并实时了解用户如何与你的工具交互。 自动生成的设置说明,帮助用户轻松连接到客户端。为每个支持的 MCP 客户端自动生成清晰的分步说明,消除用户在入门过程中流失的首要原因。 零代码身份验证,无需编写任何代码即可安全地识别和管理用户。代理可处理所有身份验证逻辑,让你能够根据用户身份提供个性化的工具和响应。 实时调试日志即时调试问题并实时了解服务器行为。查看每个请求、响应和错误的详细日志,轻松快速地识别和修复问题。

优秀的个人博客,低调大师

微信开发之token认证

服务器配置如下 package com.dongpeng; import java.security.MessageDigest; import java.util.Arrays; import javax.servlet.http.HttpServletResponse; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller @SpringBootApplication public class Application { public static final String TOKEN = "lianghao_token"; @RequestMapping("/") @ResponseBody public void index(String signature, String timestamp, String nonce, String echostr,HttpServletResponse response)throws Exception { System.out.println("signature:" + signature); System.out.println("timestamp:" + timestamp); System.out.println("nonce:" + nonce); System.out.println("echostr:" + echostr); System.out.println("TOKEN:" + TOKEN); String[] params = new String[] { TOKEN, timestamp, nonce }; Arrays.sort(params); // 将三个参数字符串拼接成一个字符串进行sha1加密 String clearText = params[0] + params[1] + params[2]; String algorithm = "SHA-1"; String sign = new String(org.apache.commons.codec.binary.Hex .encodeHex(MessageDigest.getInstance(algorithm).digest((clearText).getBytes()), true)); // 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信 if (signature.equals(sign)) { response.getWriter().print(echostr); } } public static void main(String[] args) throws Exception { SpringApplication.run(Application.class, args); } } 配置服务端后,提交下面信息 才能成功提交

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册