用户登录实现.docx
- 文档编号:24727143
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:14
- 大小:17.79KB
用户登录实现.docx
《用户登录实现.docx》由会员分享,可在线阅读,更多相关《用户登录实现.docx(14页珍藏版)》请在冰豆网上搜索。
用户登录实现
1.页面
(1)登陆页面
<%@pagelanguage="java"contentType="text/html;charset=utf-8"
pageEncoding="utf-8"%>
functionloadimage(){
document.getElementById("randImage").src="images/image.jsp?
"+Math.random();
}
action=login"method="post">
<%--if(event.keyCode==13)form1.submit()当在选中并按下键盘键时触发,如果按下的是回车键,提交表单。
--%>
loadimage();"title="换一张试试"name="randImage"id="randImage"src="../images/image.jsp"width="60"height="20"border="1"align="absmiddle">
document.getElementById('form1').submit()"/>
(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文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 用户 登录 实现