java mvc增删改查_MVC模式实现登录以及增删改查之登录

这篇博客介绍了如何使用Java MVC模式实现一个简单的登录功能,并通过DAO、Service和Controller层进行教师信息的增删改查操作。文章涵盖了创建项目、配置环境、设计实体类、编写JSP登录页面、配置web.xml、实现Servlet、数据库连接以及DAO和服务层的详细步骤。
摘要由CSDN通过智能技术生成

我在这里用的不是maven项目,用的一般的web项目,所以需要用到的架包需要自己去下载添加,在项目中,一定注意环境的配置,我用的是jre1.7

1 新建项目

ecc4b7b7815c34723f16e8e1f771dc55.png

2 建立好MVC的管理包,导入对应的架包servlet

de25e95f0504dabdacca6108ab32376d.png

3 建立好与数据库对应的实体类 teacher.javapublic class Teacher {

private int tid;

private String tname;

private String tpsw;

public int getTid() {

return tid;

}

public void setTid(int tid) {

this.tid = tid;

}

public String getTname() {

return tname;

}

public void setTname(String tname) {

this.tname = tname;

}

public String getTpsw() {

return tpsw;

}

public void setTpsw(String tpsw) {

this.tpsw = tpsw;

}

public Teacher(String tname, String tpsw) {

super();

this.tname = tname;

this.tpsw = tpsw;

}

public Teacher(int tid, String tname, String tpsw) {

super();

this.tid = tid;

this.tname = tname;

this.tpsw = tpsw;

}

public Teacher() {

super();

}

}

4 在WebContent新建login.jsp文件编写登陆框

1

23 用户名:

4 密码:

5

6

5 配置web.xml文件对应表单请求login

9c1f4c8f0efb0736c22ef4021520e612.png

web.xml文件

注意:配置时要在之前,否则会报错login

com.zr.controller.LoginController

login

/login

6 编写对应的请求实体类LoginController.java:继承HttpServlet重写doget(),dopost()方法,根据method请求的不同调用doget或者dopost方法

LoginController.javaimport java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

import com.zr.model.Teacher;

import com.zr.service.valiDateService;

import com.zr.serviceIm.valiDateServiceImpl;

public class LoginController extends HttpServlet{

protected void doGet(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

super.doPost(req, resp);

}

protected void doPost(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

//获取前台form表单的input输入框

String tname=req.getParameter("tname");

String tpsw=req.getParameter("tpsw");

Teacher tc=new Teacher();

tc.setTname(tname);

tc.setTpsw(tpsw);

valiDateService vds=new valiDateServiceImpl();

Teacher t= vds.valiDateTeacher(tc);

HttpSession session=req.getSession();

session.setAttribute("teacher", t);

if (t!=null) {

//返回的不是空值,重定向到登录成功界面

req.getRequestDispatcher("main.jsp").forward(req, resp);

} else {

//返回空值,请求转发到登录界面

resp.sendRedirect("login.jsp");

}

}

}

7 从后台dao层写到control层public interface TeacherDao {

/**

* 验证老师是否存在

* @param tc

* @return

*/

public Teacher validateTeacher(Teacher tc);

}

8.1 编写封装类建立与数据库的连接JDBCUtil.javapackage JDBCUtil;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.sql.Statement;

public class JDBCUtil {

//1.数据库地址 (根据不同的数据标准是不一样)

private final static String DBURL = "jdbc:mysql://localhost:3306/student_crm?useUnicode=true&characterEncoding=UTF8";

//2.设置用户和密码

private final static String USERNAME = "root";

private final static String PASSWORD = "root";

//3.设置驱动名称 (根据不同的数据标准是不一样)

private final static String DBDRIVER = "com.mysql.jdbc.Driver";

/**

* 获取数据库连接

* @return 返回数据库连接

*/

public static Connection getConnection(){

Connection con = null;

try {

Class.forName(DBDRIVER);

con = DriverManager.getConnection(DBURL, USERNAME, PASSWORD);

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return con;

}

//关闭连接

public static void closeJDBC(Statement st,Connection con) throws SQLException{

if(st!=null){

st.close();

}

if(con!=null){

con.close();

}

}

}

8.2 dao层的实现import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import com.zr.dao.TeacherDao;

import com.zr.model.Teacher;

import JDBCUtil.JDBCUtil;

public class TeacherDaoImpl implements TeacherDao{

/**

* 输入老师的对象,返回老师对象

* @param args

*/

public Teacher validateTeacher(Teacher tc) {

Teacher teacher=new Teacher();

//sql语句

StringBuffer sql=new StringBuffer("select * from teacher where tname=? and tpsw=?");

//获取数据库连接

Connection con=JDBCUtil.getConnection();

try {

PreparedStatement pst=con.prepareStatement(sql.toString());

pst.setString(1, tc.getTname());

pst.setString(2, tc.getTpsw());

//返回一个结果集

ResultSet rs=pst.executeQuery();

if (rs.next()) {

//把结果集里面的数据放入对应的teacher对象

teacher=new Teacher(rs.getInt("tid"),rs.getString("tname"),rs.getString("tpsw"));

}

} catch (SQLException e) {

e.printStackTrace();

}

return teacher;

}

}

9 Service层public interface valiDateService {

/**

* @param tc

* @return 老师对象

* 根据用户输入值验证老师是否存在

*/

public Teacher valiDateTeacher(Teacher tc);

}

10 Service层实现ServiceImpl.javaimport com.zr.dao.TeacherDao;

import com.zr.daoIm.TeacherDaoImpl;

import com.zr.model.Teacher;

import com.zr.service.valiDateService;

public class valiDateServiceImpl implements valiDateService{

public Teacher valiDateTeacher(Teacher tc) {

//父类的引用指向子类的对象,父类可以直接调用子类的方法

TeacherDao teacherDao=new TeacherDaoImpl();

//调用dao层的方法验证存在

Teacher teacher=teacherDao.validateTeacher(tc);

return teacher;

}

}

11 com.zr.controller层import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

import com.zr.model.Teacher;

import com.zr.service.valiDateService;

import com.zr.serviceIm.valiDateServiceImpl;

public class LoginController extends HttpServlet {

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

super.doPost(req, resp);

}

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

// 获取前台form表单的input输入框

String tname = req.getParameter("tname");

String tpsw = req.getParameter("tpsw");

// 将前台对象放入tc对象,作为输入参数

Teacher tc = new Teacher();

tc.setTname(tname);

tc.setTpsw(tpsw);

// 调用Service层的方法传入tc对象,并用t接收返回结果

valiDateService vds = new valiDateServiceImpl();

Teacher t = vds.valiDateTeacher(tc);

// 获取JSP作用域session,将老师t对象放入session

HttpSession session = req.getSession();

int a = t.getTid();//最好根据返回的老师的id进行判断

if (a != 0) {

// 返回的有id,重定向到登录成功界面

req.getRequestDispatcher("main.jsp").forward(req, resp);

session.setAttribute("teacher", t);

} else {

// 返回空值,请求转发到登录界面

req.getRequestDispatcher("login.jsp").forward(req, resp);

}

}

}

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值