准备:sql
数据库:
create table USER(
userid varchar(30) PRIMARY key,
name VARCHAR(30) not null,
password varchar(32) not null
);
INSERTuser(userid,name,password) values('admin','admin','admin');
JSP页面:
<%@ page contentType="text/html" pageEncoding="utf-8"%>
<%@ page import="java.util.*"%>
<html>
<head>
<title>hello</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
%>
<%
List<String>info =(List<String>)request.getAttribute("info");
if(info !=null)
{
Iterator<String> inter=info.iterator();
while(inter.hasNext()){
%>
<h4><%=inter.next()%></h4>
<%
}
}
%>
<form action="loginServlet" method="post">
用户名:<input type="text" name="userid"/></br>
密 码:<input type="password" name="password"/></br>
<input type="submit" value="提交"/>
<input type="reset" value="重置"/>
</form>
</body>
</html>
vo类:
package org.wade.mvcdemo.vo;
public class User{
private String userid;
private String name;
private String password;
public void setUserid(String userid)
{
this.userid=userid;
}
public void setName(String name)
{
this.name=name;
}
public void setPassword(String password)
{
this.password=password;
}
public String getUserid()
{
return this.userid;
}
public String getName()
{
return this.name;
}
public String getPassword()
{
return this.password;
}
}
数据库连接:
package org.wade.mvcdemo.dbc;
import java.sql.*;
public class DatabaseConnection{
private static final String DBDRIVER="org.gjt.mm.mysql.Driver";
private static final String Url="jdbc:mysql://localhost:3306/test";
private static final String dbuser="root";
private static final String dbpassword="root";
private Connection conn=null;
public DatabaseConnection() throws Exception
{
Class.forName(DBDRIVER);
this.conn=DriverManager.getConnection(Url,dbuser,dbpassword);
}
public Connection getConnection()
{
return this.conn;
}
public void close() throws Exception
{
if(this.conn!=null)
{
try{
this.conn.close();
}
catch(Exception e)
{
throw e;
}}
}
}
接口:
package org.wade.mvcdemo.idao;
import org.wade.mvcdemo.vo.User;
public interface IUserDao{
public boolean findLogin(User user)throws Exception;
}
实现:
package org.wade.mvcdemo.impl;
import org.wade.mvcdemo.vo.User;
import org.wade.mvcdemo.dbc.*;
import org.wade.mvcdemo.idao.*;
import java.sql.*;
public class UserDaoImpl implements IUserDao{
private Connection conn=null;
private PreparedStatement pstmt=null;
public UserDaoImpl(Connection conn){this.conn=conn;}
public boolean findLogin(User user)throws Exception{
boolean flag=false;
String sql="select name from user where name=? and password=?";
this.pstmt=this.conn.prepareStatement(sql);
this.pstmt.setString(1,user.getUserid());
this.pstmt.setString(2,user.getPassword());
ResultSet rs= this.pstmt.executeQuery();
if(rs.next())
{
System.out.println(rs.getString(1));
System.out.println("UserDaoImpl select resultSet:"+rs.getString(1));
flag=true;
}
this.pstmt.close();
return flag;
};
}
代理:
package org.wade.mvcdemo.proxy;
import org.wade.mvcdemo.vo.User;
import org.wade.mvcdemo.dbc.*;
import org.wade.mvcdemo.impl.*;
import org.wade.mvcdemo.idao.*;
import java.sql.*;
public class UserDaoProxy implements IUserDao{
private DatabaseConnection dbc=null;
private IUserDao dao=null;
public UserDaoProxy()
{
try{
this.dbc=new DatabaseConnection();
}
catch(Exception e){e.printStackTrace();}
this.dao=new UserDaoImpl(dbc.getConnection());
}
public boolean findLogin(User user)throws Exception{
boolean flag=false;
try{flag=this.dao.findLogin(user);
System.out.println("this is userDaoProxy boolean:"+flag);
}
catch(Exception e){throw e;}
finally{this.dbc.close();}
return flag;
};
}
工厂类:
package org.wade.mvcdemo.facory;
import org.wade.mvcdemo.proxy.*;
import org.wade.mvcdemo.idao.*;
public class DaoFactory {
public static IUserDao getIUserDaoInstance(){
return new UserDaoProxy();
}
}
servlet:类
package org.wade.mvcdemo.servlet;
import org.wade.mvcdemo.vo.*;
import org.wade.mvcdemo.facory.*;
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
String path="Login.jsp";
String userid=request.getParameter("userid");
String password=request.getParameter("password");
List<String> info=new ArrayList<String>();
if(userid==null ||"".equals(userid))
{
info.add("user in not null");
}
if(password==null ||"".equals(password))
{
info.add("password in not null");
}
if(info.size()==0)
{
User user=new User();
user.setUserid(userid);
user.setPassword(password);
try{
System.out.println(DaoFactory.getIUserDaoInstance().findLogin(user));
}catch(Exception e){e.printStackTrace();}
try{
if(DaoFactory.getIUserDaoInstance().findLogin(user))
{
info.add("user login sueecss");
}
else
{
info.add("user or password is errors");
}
}catch(Exception e)
{
e.printStackTrace();
}
}
request.setAttribute("info",info);
request.getRequestDispatcher(path).forward(request,response);
}
public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{
this.doGet(request,response);
}
}
web.xml配置
<servlet>
<servlet-name>loginservlet</servlet-name>
<servlet-class>org.wade.mvcdemo.servlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>loginservlet</servlet-name>
<url-pattern>/mvc/loginServlet</url-pattern>
</servlet-mapping>