书签 分享 收藏 举报 版权申诉 / 14

类型用户登录实现.docx

  • 文档编号:24727143
  • 上传时间:2023-05-31
  • 格式:DOCX
  • 页数:14
  • 大小:17.79KB

(2)验证码生成页面

<%@pagecontentType="image/jpeg"

import="java.awt.*,

java.awt.image.*,java.util.*,javax.imageio.*"pageEncoding="utf-8"%>

<%!

//随机颜色

ColorgetRandColor(intfc,intbc)

{

Randomrandom=newRandom();

if(fc>255)fc=255;

if(bc>255)bc=255;

intr=fc+random.nextInt(bc-fc);

intg=fc+random.nextInt(bc-fc);

intb=fc+random.nextInt(bc-fc);

returnnewColor(r,g,b);

}

%>

<%

//用于指示请示或响应消息不能缓存

out.clear();

response.setHeader("Pragma","No-cache");

response.setHeader("Cache-Control","no-cache");

response.setDateHeader("Expires",0);//在内存中创建图象

//用于指示请示或响应消息不能缓存

intwidth=60,height=20;

//创建一个画布

BufferedImageimage=newBufferedImage(width,height,BufferedImage.TYPE_INT_RGB);

//获取画布的画笔

Graphicsg=image.getGraphics();

Randomrandom=newRandom();

//设定图像背景色(因为是做背景,所以偏淡)

g.setColor(getRandColor(200,250));

g.fillRect(0,0,width,height);

//设置字体和颜色

g.setFont(newFont("TimesNewRoman",Font.PLAIN,18));

g.setColor(getRandColor(160,200));

//随机产生155条干扰线条

for(inti=0;i<155;i++)

{

intx=random.nextInt(width);

inty=random.nextInt(height);

intxl=random.nextInt(12);

intyl=random.nextInt(12);

g.drawLine(x,y,x+xl,y+yl);

}

//随机产生4位认证码

StringsRand="";

for(inti=0;i<4;i++){

Stringrand=String.valueOf(random.nextInt(10));

sRand+=rand;

g.setColor(newColor(20+random.nextInt(110),20+random.nextInt(110),20+random.nextInt(110)));

g.drawString(rand,13*i+6,16);

}

//将验证码存入SESSION

session.setAttribute("sRand",sRand);

//图片生效

g.dispose();

//输出图片到页面

ImageIO.write(image,"JPEG",response.getOutputStream());

%>

3.dao

packagedao;

importjava.sql.Connection;

importjava.sql.PreparedStatement;

importjava.sql.ResultSet;

importmodel.User;

publicclassUserDao{

publicUserlogin(Connectioncon,Useruser)throwsException{

UserresultUser=null;

Stringsql="select*fromt_userwhereuserName=?

andpassword=?

";

PreparedStatementpstmt=con.prepareStatement(sql);

pstmt.setString(1,user.getUserName());

pstmt.setString(2,user.getPassword());

ResultSetrs=pstmt.executeQuery();

if(rs.next()){

resultUser=newUser();

resultUser.setUserId(rs.getInt("userId"));

resultUser.setUserName(rs.getString("userName"));

resultUser.setPassword(rs.getString("password"));

resultUser.setRoleId(rs.getInt("roleId"));

}

returnresultUser;

}

}

4.model

packagemodel;

publicclassUser{

privateintuserId;

privateStringuserName;

privateStringpassword;

privateintuserType;

privateintroleId;

privateStringuserDescription;

publicUser(){

super();

//TODOAuto-generatedconstructorstub

}

publicUser(StringuserName,Stringpassword){

super();

this.userName=userName;

this.password=password;

}

publicintgetUserId(){

returnuserId;

}

publicvoidsetUserId(intuserId){

this.userId=userId;

}

publicStringgetUserName(){

returnuserName;

}

publicvoidsetUserName(StringuserName){

this.userName=userName;

}

publicStringgetPassword(){

returnpassword;

}

publicvoidsetPassword(Stringpassword){

this.password=password;

}

publicintgetUserType(){

returnuserType;

}

publicvoidsetUserType(intuserType){

this.userType=userType;

}

publicintgetRoleId(){

returnroleId;

}

publicvoidsetRoleId(introleId){

this.roleId=roleId;

}

publicStringgetUserDescription(){

returnuserDescription;

}

publicvoidsetUserDescription(StringuserDescription){

this.userDescription=userDescription;

}

}

5.util

packageutil;

importjava.sql.Connection;

importjava.sql.DriverManager;

publicclassDbUtil{

privateStringdbUrl="jdbc:

mysql:

//localhost:

3306/db_rbps";

privateStringdbUserName="root";

privateStringdbPassword="123456";

privateStringjdbcName="com.mysql.jdbc.Driver";

publicConnectiongetCon()throwsException{

Class.forName(jdbcName);

Connectioncon=DriverManager.getConnection(dbUrl,dbUserName,dbPassword);

returncon;

}

publicvoidcloseCon(Connectioncon)throwsException{

if(con!

=null){

con.close();

}

}

publicstaticvoidmain(String[]args){

DbUtildbUtil=newDbUtil();

try{

dbUtil.getCon();

System.out.println("数据库连接成功!

");

}catch(Exceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

System.out.println("数据库连接失败!

");

}

}

}

packageutil;

publicclassStringUtil{

publicstaticbooleanisEmpty(Stringstr){

if("".equals(str)||str==null){

returntrue;

}else{

returnfalse;

}

}

publicstaticbooleanisNotEmpty(Stringstr){

if(!

"".equals(str)&&str!

=null){

returntrue;

}else{

returnfalse;

}

}

}

6.web

packageweb;

importjava.io.IOException;

importjava.sql.Connection;

importjavax.servlet.ServletException;

importjavax.servlet.http.HttpServlet;

importjavax.servlet.http.HttpServletRequest;

importjavax.servlet.http.HttpServletResponse;

importjavax.servlet.http.HttpSession;

importdao.UserDao;

importmodel.User;

importutil.DbUtil;

importutil.StringUtil;

publicclassUserServletextendsHttpServlet{

/**

*

*/

privatestaticfinallongserialVersionUID=1L;

DbUtildbUtil=newDbUtil();

UserDaouserDao=newUserDao();

@Override

protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

//TODOAuto-generatedmethodstub

this.doPost(request,response);

}

@Override

protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

request.setCharacterEncoding("utf-8");

Stringaction=request.getParameter("action");

if("login".equals(action)){

login(request,response);

}

}

privatevoidlogin(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

HttpSessionsession=request.getSession();

StringuserName=request.getParameter("userName");

Stringpassword=request.getParameter("password");

StringimageCode=request.getParameter("imageCode");

request.setAttribute("userName",userName);

request.setAttribute("password",password);

request.setAttribute("imageCode",imageCode);

if(StringUtil.isEmpty(userName)||StringUtil.isEmpty(password)){

request.setAttribute("error","用户名或密码为空!

");

request.getRequestDispatcher("../login.jsp").forward(request,response);

return;

}

if(StringUtil.isEmpty(imageCode)){

request.setAttribute("error","验证码为空!

");

request.getRequestDispatcher("../login.jsp").forward(request,response);

return;

}

if(!

imageCode.equals(session.getAttribute("sRand"))){

request.setAttribute("error","验证码错误!

");

request.getRequestDispatcher("../login.jsp").forward(request,response);

return;

}

Useruser=newUser(userName,password);

Connectioncon=null;

try{

con=dbUtil.getCon();

UsercurrentUser=userDao.login(con,user);

if(currentUser==null){

request.setAttribute("error","用户名或密码错误!

");

request.getRequestDispatcher("../login.jsp").forward(request,response);

return;

}else{

session.setAttribute("currentUser",currentUser);

response.sendRedirect("../main.jsp");

}

}catch(Exceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}finally{

try{

dbUtil.closeCon(con);

}catch(Exceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

}

}

}

7.sql

insertinto`t_user`(`userId`,`userName`,`password`,`userType`,`roleId`,`userDescription`)values(1,'java1234','123456',1,NULL,NULL)

配套讲稿:

如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

特殊限制:

部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

关 键  词:
用户 登录 实现
提示  冰豆网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:用户登录实现.docx
链接地址:https://www.bdocx.com/doc/24727143.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2008-2022 冰点文档网站版权所有

经营许可证编号:鄂ICP备2022015515号-1

收起
展开