关于JSP Basic表单验证的资料及个人实践总结

什么是BASIC验证?读者经常会看到这样的登录界面(IE下的):

例如Tomcat的Manager应用:http://localhost:8080/mananager即是这样登录的。

好,先看下面的JSP代码,读者自行测试:

<%
  response.addHeader("WWW-Authenticate", "Basic realm="Please Login"");
  response.sendError(401, "Unauthorized");
%>

看到了吧,弹出了类似的对话框。

下面的代码就直接抄PHP/JSP/ASP 实现基本验证一文的内容了:

JSP 就没那么简单了,需要先获取 [i]Authorization[/i] 的头,然后截取用户名、密码部分,对其进行 base64 解码,最后使用冒号 “:”分割字符串,分别得到解码之后的用户名、密码进行验证比较:

下面是代码:

// 进行 HTTP 验证 (Basic Authorization)
String auth_user = "", auth_pass = "";
String auth = request.getHeader("Authorization");
if (auth != null && auth.toUpperCase().startsWith("BASIC")) {
  String encoded = auth.substring(6);
  sun.misc.BASE64Decoder dec = new sun.misc.BASE64Decoder();
  String decoded = new String(dec.decodeBuffer(encoded));
  String[] userAndPass = decoded.split(":", 2);
  auth_user = userAndPass[0];
  auth_pass = userAndPass[1];
}  //end if
if (!auth_user.equals("admin") || !auth_pass.equals("password")) {
  // 帐号或密码不正确,无法通过验证!
  response.setStatus(401);
  response.setHeader("WWW-Authenticate", "Basic realm="My Realm"");
} else {
  // 验证通过,可以进行其他业务操作了 
}  //end if

时间: 2024-11-05 12:23:56

关于JSP Basic表单验证的资料及个人实践总结的相关文章

js-为什么这个form表单验证不成功?

问题描述 为什么这个form表单验证不成功? function checkDelForm() { var uids = -1; uids = document.getElementsByName(""delUids"").length; if (uids == -1) { alert(""请选择要删除的用户""); return false; } else { return true; } } <form name=&q

表单验证中时间起止 如何做到递归处理

表单验证中时间起止判断的递归处理 在最近一个项目中,表单验证需要对时间的起止范围进行判断:结束时间需大于或等于开始时间.即:结束年须大于起始年:如果相等,则比较起始月与结束月:如果起止月也相等,则比较日期.那么,对于每一次验证,可以用下面这个函数来进行比较. function compare(begin,end,error){    var begin = parseInt(begin,10);    var end = parseInt(end,10);    var diff = end -

为Struts2的表单验证添加AJAX效果实例

首先需要DWR servlet(uk.ltd.getahead.dwr.DWRServlet)Dojo和Ajax theme,其中DWR用于正常的校验Dojo用于处理ajax效果. 接下来,配置dwr,编写dwr.xml,存放于WEB-INF/下.内容如下 <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/

Jquery插件easyUi实现表单验证示例_jquery

要实现的功能:在做添加学生信息的时候,利用easyui的验证功能判断 学号是否重复和学号只能为数字 最终效果如下图: 但在做这个的过程中,遇到了一系列的问题: 扩展validatebox的验证方法,最开始的验证代码如下: //学号格式只能为数字 ****//这里没有问题**** number: {//value值为文本框中的值 validator: function (value) { var reg = /^[0-9]*$/; return reg.test(value); }, messag

JQuery表单验证插件EasyValidator用法分析_jquery

本文实例讲述了JQuery表单验证插件EasyValidator用法.分享给大家供大家参考.具体如下: 本插件的宗旨是:用户无需写一行JS验证代码,只需在要验证的表单中加入相应的验证属性即可,让验证功能易维护,可扩展,更容易上手. DEMO中已经包含了常用的正则表达式,可以直接复用,为了考虑扩展性,所以针对不同用户特殊需求,自行写正则吧. EasyValidator实现的功能: 1.提示功能(在表单或者其他标签中加入tip="想提示的文字") 如: 复制代码 代码如下: <inp

jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证_jquery

jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> &l

验证控件 表单验证-webform的验证控件的无法启动客户端脚本验证?

问题描述 webform的验证控件的无法启动客户端脚本验证? webform的验证控件的EnableClientScript设为true为什么还是无法启动客户端脚本验证?<%@ Page Language=""C#"" AutoEventWireup=""true"" CodeBehind=""Login.aspx.cs"" Inherits=""App003_

表单验证脚本不起作用

问题描述 表单验证脚本不起作用 add.jsp <%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <link rel="sho

Jquery组件easyUi实现表单验证示例_jquery

本文实例为大家分享了Jquery easyUi表单验证实现代码,供大家参考,具体内容如下 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Basic Form - jQuery EasyUI Demo</title> <link rel="stylesheet" type="text/css" hr