本文章、本系统适用于java web方面的初学者,本文主要总结一下该系统运用到的一些基础知识点。本系统使用的开发工具是eclipse,使用的技术主要就是servlet+jsp,使用的数据库是sql server, tomcat 版本为7.0。
系统首页图如下:
一、本系统使用图形验证码进行登陆验证
1、导入第三方的jar包
2、页面中的代码实现,在点击事件中使用随机数来保证每次刷新验证码的请求参数不会重复
3、servlet中的代码实现
二、本系统使用正则表达式来检测密码强度
servlet中使用正则表达式判断的代码:
String password1=request.getParameter("password");//获取输入的密码
String password2=request.getParameter("password2");//获取输入的确认密码
String regex = "^(?!([a-zA-Z]+|\\d+)$)[a-zA-Z\\d]{6,20}$";//设置正则表达式
boolean matches = password1.matches(regex);//判断密码中是否含有字母和数字,若有则matchs为真,否则为假
if(password1.length()<=6) {
//如果密码长度小于6则提示并不允许注册
response.getWriter().write("<script type='text/javascript'>alert('密码长度要大于六位!!!');window.location='"+request.getContextPath()+"/userregister.jsp'</script>");
return;
}
if(!matches) {
//如果matchs为假则密码中不包含字母和数字,不允许注册
response.getWriter().write("<script type='text/javascript'>alert('密码要同时包含字母和数字!!!');window.location='"+request.getContextPath()+"/userregister.jsp'</script>");
return;
}
if(!password1.equals(password2)) {
//如果密码和确认密码不一致,则不允许注册
response.getWriter().write("<script type='text/javascript'>alert('两次密码不一致!!!');window.location='"+request.getContextPath()+"/userregister.jsp'</script>");
return;
}
三、本系统使用过滤器解决系统退出问题
1、用户或者管理员点击退出登陆的按钮之后要将其信息给清除,代码如下:
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
HttpSession session = request.getSession();//定义session
session.removeAttribute("username");//获取session中的用户名
response.sendRedirect("userlogin.html");//重定向到登陆页面
2、访问需要用户信息的页面时要通过过滤器进行检测,没有则阻止访问,有则放行,代码如下:
//1.强制转换
HttpServletRequest request = (HttpServletRequest) req;
//2.获取请求资源路径
String requestURI = request.getRequestURI();
//3.判断是否包含登录相关资源路径,同时排除css,js,图片等
if (requestURI.contains("/userlogin.html") || requestURI.contains("/userloginservlet")||requestURI.contains("/userregister.jsp")||requestURI.contains("/userregisterservlet")||requestURI.contains("/folder.jsp")||requestURI.contains("/validatecodeservlet")||requestURI.contains("/css/")||requestURI.contains("/js/")||requestURI.contains("/images/")) {
//放行
chain.doFilter(req, resp);
} else {
//4.判断是否登录
Object user = request.getSession().getAttribute("username");
if (user != null) {
//已登录,放行
chain.doFilter(req, resp);
}else {
//未登录,跳转登陆页面
request.setAttribute("login_msg","您未登录");
PrintWriter out = resp.getWriter();
out.print("<script language='javascript'>alert('Please login first!');window.location.href='userlogin.html';</script>");
}
}
最后如果需要完整系统资源的可以v俺(备注来源):ES-Lad或者点此下载。