您的位置:首页 > Web前端 > JavaScript

MVC设计模式(jsp提交表单到servlet进行验证)

2016-10-13 13:02 435 查看
 1:VO类(与数据表进行映射)

 package cn.com.mldn.mvc.vo;

public class User {

 private String userid;

 private String name;

 private String password;

public String getUserid() {
return userid;

}

public void setUserid(String userid) {
this.userid = userid;

}

public String getName() {
return name;

}

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

}

public String getPassword() {
return password;

}

public void setPassword(String password) {
this.password = password;

}

 

}

1:登录页面

<%@ page contentType="text/html" language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <title></title>

    <%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<script language="javascript">

function validate(f)

{

   if(!(/^\w{5,10}$/.test(f.userid.value)))

   {

     alert("用户名必须是位5-10");

     f.userid.focus();

     return false;

   }

    if(!(/^\w{5,10}$/.test(f.usepass.value)))

   {

     alert("密码必须是位5-10");

     f.usepass.focus();

     return false;

   }

   return true;

}

</script>

  </head>

  <body>

    <h2>用户登录程序</h2>

    <%

    request.setCharacterEncoding("UTF-8");

     %>

     <%

     List<String> info=(List<String>)request.getAttribute("info");

     if(info!=null)

     {

      Iterator<String> iter=info.iterator();

      while(iter.hasNext())

      {

      %>

      <h3><%=iter.next()%></h3>

      <%

      }

      }

       %>

       <form action="<%=basePath%>LoginSevlet" method="post" onSubmit="return validate(this)">

       用户ID:<input type="text" name="userid"><br>

       密  码<input type="password" name="userpass"><br>

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

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

       </form>

  </body>
</html>

 2:数据库连接的·类

 package cn.com.mldn.mvc.jdbc;

import java.sql.Connection;

import java.sql.DriverManager;

public class DatabaseConnection {
private static String driver = "com.mysql.jdbc.Driver";
private static String url = "jdbc:mysql://127.0.0.1:3306/mydatabase";
private static String username = "root";
private static String password = "123456";
private Connection conn=null;
public DatabaseConnection()throws Exception 
{
try
{
Class.forName(driver);
this.conn=DriverManager.getConnection(url,username,password);
}catch(Exception e)
{
e.printStackTrace();
}
}
public Connection getConnectoion()
{
return this.conn;
}
public void close()throws Exception 
{
if(this.conn!=null)
{
try
{
conn.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
}

}

 3:定义DAO接口

package cn.com.mldn.mvc.dao;

import cn.com.mldn.mvc.vo.User;

public interface IUserDAO {

  public boolean findlogin(User user)throws Exception;

}

 4:定义DAO的真实实现类

package cn.com.mldn.mvc.dao.impl;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import cn.com.mldn.mvc.dao.IUserDAO;

import cn.com.mldn.mvc.vo.User;

public class UserDAOImpl implements IUserDAO {
private Connection conn = null;
private PreparedStatement pstmt = null;

public UserDAOImpl(Connection conn) {
this.conn = conn;
}

@Override
public boolean findlogin(User user) throws Exception {
boolean flag = false;
try {
String sql = "SELECT name FROM user WHERE userid=? 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()) {
user.setName(rs.getString(1));
flag = true;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (this.pstmt != null) {
try {
this.pstmt.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
return flag;
}

}

  5:定义DAO代理操作类

package cn.com.mldn.mvc.dao.proxy;

import cn.com.mldn.mvc.dao.IUserDAO;

import cn.com.mldn.mvc.dao.impl.UserDAOImpl;

import cn.com.mldn.mvc.jdbc.DatabaseConnection;

import cn.com.mldn.mvc.vo.User;

public class UserDAOProxy implements IUserDAO {
private DatabaseConnection jdbc = null;
private IUserDAO dao = null;

public UserDAOProxy() {
try {
this.jdbc=new DatabaseConnection();
} catch (Exception e) {
e.printStackTrace();
}
this.dao=new UserDAOImpl(this.jdbc.getConnectoion());
}

@Override
public boolean findlogin(User user) throws Exception {
boolean flag=false;
try
{
flag=this.dao.findlogin(user);
}catch(Exception e)
{
e.printStackTrace();
}
finally
{
this.jdbc.close();
}
return flag;
}

}

  6:定义DAO操作的工厂类

package cn.com.mldn.mvc.factory;

import cn.com.mldn.mvc.dao.IUserDAO;

import cn.com.mldn.mvc.dao.proxy.UserDAOProxy;

public class UserDAOFactory {

  public static IUserDAO getIUserDAOInstance()

  {
 return new UserDAOProxy();

  }

}

  7:登录页面(并进行验证)

<%@ page contentType="text/html" language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <title></title>

    <%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<script language="javascript">

function validate(f)

{

   if(!(/^\w{5,10}$/.test(f.userid.value)))

   {

     alert("用户名必须是位5-10");

     f.userid.focus();

     return false;

   }

    if(!(/^\w{5,10}$/.test(f.usepass.value)))

   {

     alert("密码必须是位5-10");

     f.usepass.focus();

     return false;

   }

   return true;

}

</script>

  </head>

  <body>

    <h2>用户登录程序</h2>

    <%

    request.setCharacterEncoding("UTF-8");

     %>

     <%

     List<String> info=(List<String>)request.getAttribute("info");

     if(info!=null)

     {

      Iterator<String> iter=info.iterator();

      while(iter.hasNext())

      {

      %>

      <h3><%=iter.next()%></h3>

      <%

      }

      }

       %>

       <form action="<%=basePath%>LoginSevlet" method="post" onSubmit="return validate(this)">

       用户ID:<input type="text" name="userid"><br>

       密  码<input type="password" name="userpass"><br>

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

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

       </form>

  </body>

</html>

8:定义Servlet类([b]进行数据库验证)[/b]

package cn.com.mldn.mvc.servlet;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import cn.com.mldn.mvc.factory.UserDAOFactory;

import cn.com.mldn.mvc.vo.User;

@SuppressWarnings("serial")

public class LoginSevlet extends HttpServlet {

  public void doGet(HttpServletRequest req,HttpServletResponse resp)throws ServletException, IOException

  {
 String path="ch09/mvc_login.jsp";
 boolean flag=false;
 String userid=req.getParameter("userid");
 String userpass=req.getParameter("userpass");
 List<String> info=new ArrayList<String>();
 if(userid==null||"".equals(userid))
 info.add("用户id不能为空");
 if(userid==null||"".equals(userid))
 info.add("密码不能为空");
 if(info.size()==0)
 {
 User user=new User();
 user.setUserid(userid);
 user.setPassword(userpass);
 try
 {
 if(UserDAOFactory.getIUserDAOInstance().findlogin(user))
 {
 info.add("用户登录成功,欢迎"+user.getName()+"光临!");
 flag=true;
 }
 else
 info.add("用户登录失败,失败错误的用户名和密码!");
 }catch(Exception e)
 {
 e.printStackTrace();
 }
 
 }
 req.setAttribute("info", info);
 req.getRequestDispatcher(path).forward(req, resp);

  }

  public void doPost(HttpServletRequest req,HttpServletResponse resp)throws ServletException, IOException

  {
 this.doGet(req,resp);

  }

}

 9:配置web.xml文件

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="3.0"

    xmlns="http://java.sun.com/xml/ns/javaee"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  <servlet>

    <description>This is the description of my J2EE component</description>

    <display-name>This is the display name of my J2EE component</display-name>

    <servlet-name>HelloServlet</servlet-name>

    <servlet-class>org.lxh.servletdemo.HelloServlet</servlet-class>

  </servlet>

  <servlet>

    <description>This is the description of my J2EE component</description>

    <display-name>This is the display name of my J2EE component</display-name>

    <servlet-name>InputServlet</servlet-name>

    <servlet-class>org.lxh.servletdemo.InputServlet</servlet-class>

  </servlet>

  <servlet>

    <description>This is the description of my J2EE component</description>

    <display-name>This is the display name of my J2EE component</display-name>

    <servlet-name>LifeCycleServlet</servlet-name>

    <servlet-class>org.lxh.servletdemo.LifeCycleServlet</servlet-class>

  </servlet>

  <servlet>

    <description>This is the description of my J2EE component</description>

    <display-name>This is the display name of my J2EE component</display-name>

    <servlet-name>HttpSessionDemoServlet</servlet-name>

    <servlet-class>org.lxh.servletdemo.HttpSessionDemoServlet</servlet-class>

  </servlet>

  <servlet>

    <description>This is the description of my J2EE component</description>

    <display-name>This is the display name of my J2EE component</display-name>

    <servlet-name>ClientRedirectDemo</servlet-name>

    <servlet-class>org.lxh.servletdemo.ClientRedirectDemo</servlet-class>

  </servlet>

  <servlet>

    <description>This is the description of my J2EE component</description>

    <display-name>This is the display name of my J2EE component</display-name>

    <servlet-name>ServletRedirectdemo</servlet-name>

    <servlet-class>org.lxh.servletdemo.ServletRedirectdemo</servlet-class>

  </servlet>

<servlet>

    <description>This is the description of my J2EE component</description>

    <display-name>This is the display name of my J2EE component</display-name>

    <servlet-name>LoginSevlet</servlet-name>

    <servlet-class>cn.com.mldn.mvc.servlet.LoginSevlet</servlet-class>

  </servlet>

  <servlet-mapping>

    <servlet-name>InputServlet</servlet-name>

    <url-pattern>/ch09/InputServlet</url-pattern>

  </servlet-mapping>

  <servlet-mapping>

    <servlet-name>LifeCycleServlet</servlet-name>

    <url-pattern>/LifeCycleServlet</url-pattern>

  </servlet-mapping>

  <servlet-mapping>

    <servlet-name>HttpSessionDemoServlet</servlet-name>

    <url-pattern>/HttpSessionDemoServlet</url-pattern>

  </servlet-mapping>

  <servlet-mapping>

    <servlet-name>ClientRedirectDemo</servlet-name>

    <url-pattern>/ClientRedirectDemo</url-pattern>

  </servlet-mapping>

  <servlet-mapping>

    <servlet-name>ServletRedirectdemo</servlet-name>

    <url-pattern>/ServletRedirectdemo</url-pattern>

  </servlet-mapping>

  <servlet-mapping>

    <servlet-name>LoginSevlet</servlet-name>

    <url-pattern>/LoginSevlet</url-pattern>

  </servlet-mapping>

</web-app>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: