基于mvc模式+三层架构的web开发

1 jsp+servlet+javabean(MySQL+eclipse)

  此处把javabean分为service与dao

2.StudentSystem项目(实现登录的验证)

2.登录界面

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>登录</title>
</head>
<body>
${message}   <br>
<form action="${pageContext.request.contextPath}/LoginServlet" method="post" >
<table align="center" border="1" width="500" height="300" bgcolor="#227733">
<tr>
<td colspan="2" width="500" align="center">
用户登录
</td>
</tr>
<tr>
<td width="100">
账号:
</td>
<td width="*">
<input type="text" name="name"/>
</td>
</tr>
<tr>
<td width="100">
密码:
</td>
<td width="*">
<input type="text" name="password"/>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="radio" name="radio" value="admin" id="radio1">管理员&nbsp;&nbsp;&nbsp;&nbsp;
<input type="radio" name="radio" value="student" id="radio2">学生&nbsp;&nbsp;&nbsp;&nbsp;
</td>
</tr>
<tr>
<td align="center" colspan="2">
<input type="submit" value="登录">&nbsp;&nbsp;&nbsp;&nbsp;
<input type="reset" value="重置">
</td>
</tr>
</table>
</form>
</body>
</html>

3servlet实现交互和简单逻辑处理

package com.lili.students.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.lili.students.javaBean.IStudentService;
import com.lili.students.javaBean.Student;
import com.lili.students.javaBean.StudentServiceImpl;

@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
   
    public LoginServlet() {
        super();
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("hello world");
        //1 获取表单信息
        String sno=request.getParameter("name");
        String pass=request.getParameter("password");
        String radio=request.getParameter("radio");
        System.out.println(radio);
        //2 验证输入的数据合法性
        HttpSession session=request.getSession();
        
        if(sno==null||"".equals(sno.trim()))
        {    session.setAttribute("message", "学号输入出错!");
            response.sendRedirect(request.getContextPath()+"/login.jsp");
            return;
        }
        if(pass==null || "".equals(pass.trim()))
         {    session.setAttribute("message", "密码输入出错!");
              response.sendRedirect(request.getContextPath()+"/login.jsp");
              return;
         }
       //3 创建Service对象(面向接口编程)
        IStudentService service=new StudentServiceImpl();
        //4调研service对象的checkLogin方法(实现类的方法)
        Student student=service.checkLogin(sno,pass);
        session.setAttribute("user","student.getName()");
        //5验证未通过跳转登录界面
        if(student==null)
        {
            session.setAttribute("message","该用户不存在或密码错误!");
            response.sendRedirect(request.getContextPath()+"/login.jsp");
            return;
        }
        response.sendRedirect(request.getContextPath()+"/index.jsp");
        return;
    }
    
}


3.service层(面向接口编程)

3.1

package com.lili.students.javaBean;

public interface IStudentService {

    Student checkLogin(String sno, String pass);

}

3.2此接口的实现类

package com.lili.students.javaBean;

import com.lili.students.dao.IStudentsDao;
import com.lili.students.dao.StudentsDaoImpl;

public class StudentServiceImpl implements IStudentService {

    @Override
    public Student checkLogin(String sno, String pass) {
        IStudentsDao dao=new StudentsDaoImpl();
        Student student=dao.checkSql(sno,pass);
        return student;
    }

}

4学生类

package com.lili.students.javaBean;

import java.io.Serializable;

public class Student implements Serializable {
    private String sno;
    private int id;
    private String pass;
    private String name;
    private int age;
    private String  school;
    public void student()
    {
        
    }
    public int getId() {
        return id;
    }
    public String getPass() {
        return pass;
    }
    public String getSno() {
        return sno;
    }
    public void setSno(String sno) {
        this.sno = sno;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getSchool() {
        return school;
    }
    public void setSchool(String school) {
        this.school = school;
    }
    public void setId(int id) {
        this.id=id;
        
    }
    public void setPass(String pass) {
        this.pass=pass;
        
    }
    

}


5.dao层接口

package com.lili.students.dao;

import com.lili.students.javaBean.Student;

public interface IStudentsDao {

    Student checkSql(String sno, String pass);

}


5.1实现类

package com.lili.students.dao;

import java.sql.*;

import com.lili.students.javaBean.Student;
import com.lili.students.mysqlHlep.JdbcConnection;

public class StudentsDaoImpl implements IStudentsDao {

    private Connection conn;
    private Statement stmt;
    private PreparedStatement ps;
    private ResultSet rs;
    public Student checkSql(String sno, String pass)  {
        Student student=null;
    try {
        conn=JdbcConnection.connectionHelp();
        String sql="select * from students where sno=? and pass=?";
        ps=conn.prepareStatement(sql);
        ps.setString(1, sno);
        ps.setString(2, pass);
        rs=ps.executeQuery();
        if(rs.next())
        {
            student=new Student();
            student.setId(rs.getInt("id"));
            student.setSno(rs.getString("sno"));
            student.setName(rs.getString("name"));
            student.setAge(rs.getInt("age"));
            student.setSchool(rs.getString("school"));
            student.setPass(rs.getString("pass"));
        }
    } catch (SQLException e) {
        System.out.println("数据库访问出错!");
        e.printStackTrace();
    }finally{
    
            try {
                JdbcConnection.CloseConnection(conn, ps,stmt, rs);
            } catch (SQLException e) {
                System.out.println("关闭数据库访问出错!");
                e.printStackTrace();
            }
    }
        return student;
    }
    
}


6.SQL辅助类

 

package com.lili.students.mysqlHlep;

import java.sql.*;

public class JdbcConnection {
   static
   {try {
    Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {  
    e.printStackTrace();
}
   }
   static Connection conn=null;
    
 public static  Connection connectionHelp () throws SQLException
{
    if(conn==null||conn.isClosed())
    {
        String url="jdbc:mysql://localhost:3306/test";
        String user="root";
        String password="123456";
        conn=DriverManager.getConnection(url, user, password);
    }
return conn;
}
 public static void CloseConnection(Connection conn,PreparedStatement ps,Statement stmt,ResultSet rs) throws SQLException
 {  
     if(conn!=null&& !conn.isClosed())
     { conn.close();
     }
     if(ps!=null&& !ps.isClosed())
     { ps.close();
     }
     if(stmt!=null&& !stmt.isClosed())
     { stmt.close();
     }
     if(rs!=null&& !rs.isClosed())
     {rs.close();
     }
 }
}


7.。最后效果

8总结:此处给出MVC的详细编程设计思路,有助于帮助理解MVC与三层架构的关系,可为读者学习框架奠定厚实的基础。

      欢迎讨论与补充完善。

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值