JSP实现后台登录

JSP实现后台登录_第1张图片

JSP实现后台登录_第2张图片

JSP实现后台登录_第3张图片

login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>



  
    
    
    My JSP 'login.jsp' starting page
    
	
	

  
  
  
    
后台登录
用户名   
密码   
验证码   
输入验证码   
 

login_ok.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>



  
    
    
    My JSP 'login_ok.jsp' starting page
    
	
	
	    
	
	
	

  
  
  
    <% 
	String strLogin=(String)session.getAttribute("login");
	String strUser=(String)session.getAttribute("me");
	if (strLogin==null)
	{
		out.println("

请先登录,谢谢!

"); out.println("

5秒钟后,自动跳转到登录页面!

"); response.setHeader("Refresh","5;URL=login.jsp"); } else { if (strLogin.equals("ok")) { out.println(strUser+"欢迎进入我们的网站!"); } else { out.println("

用户名或密码错误,请重新登录!

"); out.println("

5秒钟后,自动跳转到登录页面!

"); response.setHeader("Refresh","5;URL=login.jsp"); } } %>

login_error.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>



  
    
    
    My JSP 'login_error.jsp' starting page
    
	
	
	    
	
	
	
			

  
  
  
  		

密码或验证码输入错误,0分3秒后可跳转至login页

<%--
密码或验证码输入错误,3秒钟后跳转至login.jsp
<% out.println( ""); //out.println(""); %> --%>

verify.jsp

<%@ page language="java" import="java.util.*,com.JDBCUtil,java.sql.*" pageEncoding="utf-8"%>




  
    
    
    My JSP 'verify.jsp' starting page
    
	
	
	    
	
	

  
  
  
    <%
    	String rand =(String)session.getAttribute("rand");
    	String input =request.getParameter("verify");
    	if(rand.equals(input))
    	{
	    	String strUser=request.getParameter("user");
	    	String strPass=request.getParameter("pass");
	    	//打开连接
	    	Connection conn = JDBCUtil.getConnection();
	    	//设置sql语句和sql参数
	    	String sql="select  COUNT(*)  from Admin where a_name= ? and a_pass= ?";
	    	Object[] param =new Object[2];
	    	param[0]=strUser;
	    	param[1]=strPass;
	    	//查询并返回结果集
	    	ResultSet rs=JDBCUtil.doParamQuery(sql, param);
	    	//将指针移动到第一行
	    	rs.next();
	    	//显示第一行第一列的值
	    	System.out.println("数据库有"+rs.getInt(1)+"条记录与此相符合");
	    	if(rs.getInt(1)==1){
	    		System.out.println("登录成功");
	    		//保存登录状态信息
	    		session.setAttribute("login", "ok");
	    		session.setAttribute("me", strUser);
	    		response.sendRedirect("./login_ok.jsp");
	    		
	    		
	    	}else{
	    		System.out.println("登录失败");	    		
	    	
	    		response.sendRedirect("./login_error.jsp");
	    		//直接在此页返回login.jsp,会使验证码不刷新,故使用跳转至错误处理页,再跳转至login.jsp
	    	    //out.println("");
	    		//window.history.back(-1);验证码不刷新
	    	    //out.println("");
	    		//out.println("");
	    	}
    	}else{
    		out.println("");
    		response.sendRedirect("./login_error.jsp");
    		//直接在此页返回login.jsp,会使验证码不刷新,故使用跳转至错误处理页,再跳转至login.jsp
    		//out.println("");
    		//out.println("");
    		//out.println("");
    	}
    	
    	
    	/*if(strUser.equals("admin")&&strPass.equals("admin")&&rand.equals(input)){
    		out.println("

登陆成功

"); }else{ out.println("

登陆失败

"); }*/ /*if(strUser.equals("admin")) { if(strPass.equals("admin")) { if(rand.equals(input)) { out.println(""); out.println("登录成功"); } else{ out.println(""); out.println(""); } } else{ out.println(""); out.println(""); } } else { out.println(""); out.println(""); } */ %>

verifyCode.jsp


<%@ page contentType="image/jpeg"  language="java"  pageEncoding="utf-8"%>

<%@ page import="java.util.*,java.awt.*,java.awt.image.*,javax.imageio.*"%>

<%!
	Color getRandColor(int fc,int bc)
	{        
        if(fc>255) fc=255;
        if(bc>255) bc=255;
        //随机生成rgb颜色
        Random random = new Random();
        int r=fc+random.nextInt(bc-fc);
        int g=fc+random.nextInt(bc-fc);
        int b=fc+random.nextInt(bc-fc);
        return new Color(r,g,b);
    }
%>
<%
//设置页面不缓存
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
// 在内存中创建图象
int width=60, height=20;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

// 获取图形上下文
Graphics g = image.getGraphics();

//生成随机类
Random random = new Random();

// 设定背景色
g.setColor(getRandColor(200,250));
g.fillRect(0, 0, width, height);

//设定字体
g.setFont(new Font("Times New Roman",Font.PLAIN,22));

//画边框
//g.setColor(new Color());
//g.drawRect(0,0,width-1,height-1);

// 随机产生155条干扰线,使图象中的认证码不易被其它程序探测到
g.setColor(getRandColor(160,200));
for (int i=0;i<155;i++)
{
 	int x = random.nextInt(width);
 	int y = random.nextInt(height);
    int xl = random.nextInt(12);
    int yl = random.nextInt(12);
 	g.drawLine(x,y,x+xl,y+yl);
}

// 取随机产生的认证码(4位数字)
String sRand="";
for (int i=0;i<4;i++){
    String rand=String.valueOf(random.nextInt(10));
    sRand+=rand;
    // 将认证码显示到图象中
    g.setColor(new Color(20+random.nextInt(110),40+random.nextInt(110),60+random.nextInt(110)));
	//调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成
    g.drawString(rand,13*i+6,16);
}

// 将认证码存入SESSION
session.setAttribute("rand",sRand);

// 图象生效
g.dispose();

// 输出图象到页面
ImageIO.write(image, "JPEG", response.getOutputStream());
%>

你可能感兴趣的:(JavaWeb笔记,JSP实现后台登录)