栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JavaWeb图书管理系统第一天Eclipse tomcat

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaWeb图书管理系统第一天Eclipse tomcat

登陆功能实现以及验证码

一登陆界面




二c3p0配置文件


 
    
        
        10
        
        30
        
        100
        
        10
        
        
        200
     
    
    
	    
        com.mysql.jdbc.Driver
		
        jdbc:mysql://127.0.0.1:3306/bookdb?useUnicode=true&characterEncoding=utf8
		
        root
		
        root
		
        10
		
        30
		
        100
		
        10
		
        200
    

loin.html
```clike



    享学图书管理系统
    
    
    
    
    
    
    
    

    
        
 
 
 

享学图书管理系统

管理员:
密    码:
验证码: 
  
 
 

Copyright © 2011-2021 享学课堂科技信息有限公司

bean包User实体类User.java,取得属性,构造对象

package bean;


import java.io.Serializable;


public class User implements Serializable {
  @Override
  public String toString() {
    return "User{" +
            "id=" + id +
            ", name='" + name + ''' +
            ", pwd='" + pwd + ''' +
            ", state=" + state +
            '}';
  }

  private long id;
  private String name;
  private String pwd;
  private long state;


  public long getId() {
    return id;
  }

  public void setId(long id) {
    this.id = id;
  }


  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }


  public String getPwd() {
    return pwd;
  }

  public void setPwd(String pwd) {
    this.pwd = pwd;
  }


  public long getState() {
    return state;
  }

  public void setState(long state) {
    this.state = state;
  }

}

dao包UserDao.java获取数据库连接,进行查询
异常抛出userBiz处理

package dao;

import java.sql.Connection;
import java.sql.SQLException;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;

import bean.User;
import util.DBHelper;

public class userDao {//UserDao出现异常应该抛出给biz
		//创建QueryRunner对象getUser方法JDBC DBUtils
		QueryRunner runner=new QueryRunner();
		public User getUser(String name,String  pwd) throws SQLException {
	         //1调用DBHelper对象获取连接
			Connection conn=DBHelper.getConnection();
			//2准备执行sql语句
			String sql="Select * from user where name=? and pwd=? and state=1";
			//3调用查询方法,将查询的数据封装成User对象 runner.query(conn,sql, new BeanHandler(User.class),name,pwd);
			User user =runner.query(conn, sql,new BeanHandler(User.class),name,pwd);
			//4关闭连接对象
			DBHelper.close(conn);
			//5返回User
			return user;
			}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		User user =null;
		try {
			user =new userDao().getUser("super", "1");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println(user);

	}

}

biz包 userBiz.java调用userDao的getUser方法,向UserServlet提供服务,有异常要处理try catch

package biz;

import java.sql.SQLException;

import bean.User;
import dao.userDao;


public class UserBiz {
	userDao userDao =new userDao();
	public User getUser(String name,String pwd) {
		User user=null;
		try {
			user=userDao.getUser(name,pwd);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return user ;
	}

}

action包是servlet
UserServlet.java和 ValCodeServlet.java验证码

package action;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import bean.User;
import biz.UserBiz;


@WebServlet("/user.let")
public class UserServlet extends HttpServlet {
	//构建biz对象
	UserBiz userBiz=new UserBiz();
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doPost(req, resp);
		}
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		HttpSession session=req.getSession();
		req.setCharacterEncoding("utf-8");
		resp.setContentType("text/html;charset=utf-8");
		PrintWriter out=resp.getWriter();
		//1.判断用户请求类型为login
    	String method=req.getParameter("type");
    	switch(method) {
    	case "login":
    		//2从login.html中获取用户名密码验证码
            String name=req.getParameter("name");
            String pwd=req.getParameter("pwd");
            String userCode=req.getParameter("valcode");
          //2.2 提取session中的验证码,进行判断
            String code=req.getParameter("valcode");
          //不区分大小写
            if (!code.equalsIgnoreCase(userCode)) {
            	 out.println("");
                 return;
			}
    		//3调用UserBiz的getUser方法,根据用户名和密码获取对应的用户对象
    		User user =userBiz.getUser(name, pwd);
            //4判断用户对象是否为空
    		if(user==null) {
				out.println("");
			}else {
    		//4.1如果null表示用户名或密码或验证码不正确,回到登陆页面
				session.setAttribute("user",user);//user-->Objec
				out.println("");
				//4.2非空:表示登陆成功,跳转到index.jsp页面
			}
    		break;
    	}
	}

}

package action;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;

import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;


@WebServlet(urlPatterns="/code.let",loadOnStartup=1)//服务器启动时,验证码就已经准备好了
public class ValCodeServlet extends HttpServlet {
	Random random=new Random();
	private String getRandomStr() {
		String str="23456789ABCDEFGHJKMNPQRSTUVWXYZabcdefghgkmnopqrstuvwxyz";//1 0 l o
		StringBuilder sb=new StringBuilder();//生成的字符串是会变化的
		for(int i=0;i<4;i++) {
			int index=random.nextInt(str.length());//获取字符的下标
			char letter=str.charAt(index);
			sb.append(letter);//字符追加到sb的末尾
		}
		return sb.toString();
		
	}
	//获取背景颜色0-255
	private Color getBackColor() {
			int red=random.nextInt(256);
			int green=random.nextInt(256);
			int blue=random.nextInt(256);
			return new Color(red, blue, green);//生成颜色对象
			}
	private Color getForeColor(Color bgColor) {
		int red=255-bgColor.getRed();
		int green=255-bgColor.getGreen();
		int blue=255-bgColor.getBlue();
		return new Color(red, green, blue);//生成颜色对象;
		
	}
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doPost(req, resp);
		}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//1.设置响应格式为图片:jpg
		resp.setContentType("image/jpeg");
		//2.图片对象 //缓冲区图片,在内存中,红绿蓝三原色
		BufferedImage bufferedImage=new BufferedImage(80, 30, BufferedImage.TYPE_INT_RGB);
		//3.获取画布对象
		Graphics g=bufferedImage.getGraphics();
		//4.设置背景颜色
		Color bgColor=getBackColor();
		g.setColor(bgColor);
		//5.画背景
		g.fillRect(0, 0, 80, 30);
		g.setFont(new Font("黑体",Font.BOLD,26));
		//6.设置前景颜色
		Color foreColor=getForeColor(bgColor);
		g.setColor(foreColor);
		//7.将随机字符串存到session
		String randomStr=getRandomStr();
		HttpSession session=req.getSession();
		session.setAttribute("code", randomStr);
		g.drawString(randomStr, 10, 28);
		//8.噪点(30个白色正方形)
		for(int i=0;i<30;i++) {
			g.setColor(Color.white);
			int x=random.nextInt(80);
			int y=random.nextInt(30);
			g.fillRect(x, y, 1, 1);
		}
		//9.将这张内存的图片输出到响应流
		ServletOutputStream sos=resp.getOutputStream();
		ImageIO.write(bufferedImage, "jpeg", sos);
		}
		
		}

点击验证码更换

 //1当文档加载完毕,调用jquery
          $(function(){
          //2执行图片点击事件
          $("#code").click(function(){
          //3设置图片的src属性,注意需要添加随机数
          $(this).prop("src","code.let?id"+Math.random());
          })
          });
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/759945.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号