搜档网
当前位置:搜档网 › 用户登录验证(MVC模式)

用户登录验证(MVC模式)

用户登录验证(MVC模式)
用户登录验证(MVC模式)

基于MVC 模式的用户登录验证系统

s rc

曲 corn -I I

质 controller

.|Tj Log I nCh eck? e nJetJ a va

J7j] UsersLi^tS ervletjava

{B model

[T] ConnDBjava

团 UserBeanjava

加 User B^jriDaojava ■HRE System Library

|jdkl,7.0_0&]

Java 匚E 5 Libraries

理 Rfrferfnc&d Libraries

I 匕 WebRoot|

— INF

& WEE-INF

Q* loginjsp

屮 loginCl.jsp

U 虫pLietj 呂 p 疋 welij^p

二、View 视图部分

Log in.jsp

v%@p age Ian guage ="java" import ="java.util.*"

//W3C//DTD HTML 4.01 Transitional//EN"> vhtml >

vhead >

vbody bgcolor ="pink" >

vce nter > 用户登录


type ="submit" value ="登录">

type ="reset" value ="重置">

、项目文件结构:

pageE ncodi ng ="gb2312" %>

method ="p ost" > 用户名:Vinput

type ="text" n ame="user name" >

密   码:vinput type ="password" name="passwd" >
< br >

vinput vinput

body >

Log in CL.js p

v%@p age Ian guage ="java" import ="java.util.*,java.sql.*,com.li.model.*" pageE ncodi ng ="gb2312"

%>

<%

Stri ng p ath = request.getC on text Path();

Stri ng base Path = request.getScheme()+ rPort()+path+ "/"

%> "://" +request.getServerName()+ ":" +request.getServe

<%

request.setCharacterE ncodi ng( "gbk" ); //将username和密码重新编码

Stri ng un ame=request.get Parameter(

Stri ng up asswd=request.get Parameter(

UserBeanCl ubc= new UserBean Cl(); if

(ubc.checkUser(uname,upasswd)){ res pon se.se ndRedirect(

} else {

res pon se.se ndRedirect(

}

%>

"user name");

"p asswd");

"wel.js p" "logi n.jsp" );

);

登陆成功!恭喜你!v%=request.get Parameter(

重新登陆

UserList.js p

v%@p age Ian guage ="java" import ="java.util.*,java.sql.*,com.li.model*" pageE ncodi ng ="gb2312"

%>

<%

Stri ng p ath = request.getC on text Path();

Stri ng base Path = request.getScheme()+ rPort()+path+ "/"

%> "://" +request.getServerName()+ ":" +request.getServe

<h1 >用户信息列表</ h1 >

<%

II调用UserBeanDao中的方法(创建一个UserBeanDao实例,然后调用它的某个方法)

//UserBea nDao ubdao=new UserBea nDao(); //ArrayList

al=ubdao.getUserList();

//要显示的用后信息从request

ArrayList al=(ArrayList)request.getAttribute( %>

"result" ); "uname" )%xbr>

用户ID 用户名

用户密码用户级别

<%

for (int i=O;i

n ub=(UserBea n)al.get(i); %>

>

><%=ub.getUserId() ><%=ub.getU ser name() ><%= ub.get PasswdO ><%= ub.getGrade() %x/ td > %x/ td > %> %>

<% } %>

< br >

三、Model模型部分

UserBea n.java

p ackage com.li.model;

private int userid ;

private Stri ng user name

private Stri ng passwd ;

private int grade ;

public int getUserId() {

retu rn userid

p ublic class UserBea n {

} public

this

} public

void setUserId( int userid) { .userid = userid;

Stri ng getUser name()

{ retu rn user name ; } public

this

} public void setUsername(Stri ng user name) { .user name = user name;

return } Stri ng get Passwd() {

passwd ;

public this }

public return }

p ublic void setGrade( int grade) { this . grade = grade;

}

UserBea nDao.java p ackage com.l i.model;

import java.sql.*; import java.util.*;

p ublic class UserBea nDao {

p rivate Stateme nt sm = n ull; p rivate ResultSet rs = n ull;

p rivate Connection ct = n ull; p rivate int p ageCo unt = 0;

p rivate int rowCo unt = 0;

p rivate int p ageSize = 3;

public void close() { II 关闭各种打开的资源

try {

if (rs != n ull) {

rs.close();

rs = n ull;

}

if (sm != n ull) {

sm.close();

sm = n ull;

}

if (ct != n ull) {

ct.close();

ct = null;

}

} catch (Exce pti on e) {

e.prin tStackTrace();// 打印异常,以便修改

}

}

p ublic ArrayList getUserList() {

ArrayList al = new ArrayList();

try {

ct = new Co nn DB().getCo nn();

sm = ct.createStateme nt();

rs = sm.executeQuery("select * from users"); while (rs.n ext()) {

void set Passwd(Stn ng p asswd) { .passwd

= passwd;

int getGradeO {

grade ;

UserBea n ub = new UserBea n(); ub.setUserld(rs.getl nt(1));

ub.setUser name(rs.getStri ng(2));

ub.set Passwd(rs.getStri ng(3)); ub.setGrade(rs.getI nt(4));

al.add(ub); // 将al 放到arrayList 中

} catch (Exce pti on e) { e.prin tStackTrace();

} fin ally {

this.close();

} return al;

}

p ublic boolea n checkUser(Stri ng u, String p) {

boolea n b = false;

try {

ct = new ConnDB().getConn();// 获取ConnDB 中的方法,操作数据库sm = ct.createStateme nt();

rs = sm.executeQuery("select p asswd from users where user name="'

+ u + "”');

if (rs. next()) {

if (rs.getStri ng(1).equals( p)) {

b = true;

}

}

} catch (Exce pti on e) {

e.prin tStackTrace();

} fin ally { //关闭各种打开的资源,释放内存

this.close();

}

return b;

Conn DB.java

p ackage com.li.model;

import

java.sql.*; public

p

rivate

四、Controller 部分

Log in CheckServlet.java p ackage com.l i.c on troller;

import java.i o.IO Exce pti on;

import java.io .Prin tWriter;

import java.util.ArrayList;

import javax.servlet.ServletExce ptio n;

import javax.servlet.htt p. Htt pServlet;

import javax.servlet.htt p. Htt pServletRequest;

import javax.servlet.htt p. Htt pServletRes ponse;

import com.li.model.*;

p ublic class Logi nCheckServlet exte nds Http Servlet {

p ublic void doGet(Htt pServletRequest request, Htt pServletRes ponse response) throws ServletExce pti on, I OExce pti on {

//得到用户名和密码

String u=request.get Parameter("user name");

String p=request.get Parameter(" passwd");

//使用模型,完成验证

UserBea nDao ubdao=new UserBea nDao();

request.setAttribute(" un ame", u); if(ubdao.checkUser(u, p)){

II 在跳转到wel.jsp

request.getRequestDis patcher("wel.js p").forward(request,res pon se); }else{

request.getRequestDis patcher("lo nin.jsp ”).forward(request,res pon se);

} class ConnDB { Conn

ecti on Ct =n ull

相关主题