昆明java培训
达内昆明广州春城路

18487146383

热门课程

MVC模式实现登录以及增删改查之登录

  • 时间:2016-11-11
  • 发布:昆明Java培训
  • 来源:java教程

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

1 新建项目

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

3建立好与数据库对应的实体类teacher.java

public 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 <body>

2 <form action="login" method="post">

3用户名:<input type="text" name="tname">

4密码:<input type="text" name="tpsw">

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

6 </form>

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

web.xml文件

注意:配置时<servlet-name>要在之前,否则会报错<servlet-class>

<!--提交登录请求-->

<servlet>

<servlet-name>login</servlet-name>

<servlet-class>com.zr.controller.LoginController</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>login</servlet-name>

<url-pattern>/login</url-pattern>

</servlet-mapping>

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

LoginController.java

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");

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.java

package 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.java

import 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);

}

}

}

上一篇:字节输入流与字节输出流
下一篇:java单例模式的实现方式

java单例模式的实现方式

MVC模式实现登录以及增删改查之登录

字节输入流与字节输出流

java IO流之字节输出流

选择城市和中心
贵州省

广西省

海南省

扫一扫

了解更多干货