MVC与三层架构的联系及三层架构实现学生注册功能
生活随笔
收集整理的這篇文章主要介紹了
MVC与三层架构的联系及三层架构实现学生注册功能
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
MVC與三層架構(gòu)的聯(lián)系及三層架構(gòu)實(shí)現(xiàn)學(xué)生注冊(cè)功能
三層架構(gòu)的邏輯關(guān)系:
MVC和三層架構(gòu)的聯(lián)系:
三層架構(gòu)實(shí)現(xiàn)學(xué)生注冊(cè)功能的邏輯:
學(xué)生注冊(cè)頁(yè)面:
輸入學(xué)生信息:
完成學(xué)生注冊(cè):
代碼實(shí)現(xiàn):
add.jsp
<%@ 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>Insert title here</title> </head> <body background="photo/海浪.jpg"> <form action="AddStudentServlet" method="post" >學(xué)號(hào):<input type="text" name="sno" /><br/>姓名:<input type="text" name="sname" /><br/>年齡:<input type="text" name="sage" /><br/>地址:<input type="text" name="saddress" /><br/><input type="submit" value="注冊(cè)" /></form> </body> </html>Student.java
package org.student.entity;/*** @author 11441*student實(shí)體類*/ public class Student {private int sno;private String sname;private int sage;private String saddress;public Student(String sname, int sage, String saddress) {this.sname = sname;this.sage = sage;this.saddress = saddress;}public Student(int sno, String sname, int sage, String saddress) {this.sno = sno;this.sname = sname;this.sage = sage;this.saddress = saddress;}public Student() {}public Student(int sno, String sname, int sage) {this.sno = sno;this.sname = sname;this.sage = sage;}public Student(int sage, String saddress) {this.sage = sage;this.saddress = saddress;}public int getSno() {return sno;}public void setSno(int sno) {this.sno = sno;}public String getSname() {return sname;}public void setSname(String sname) {this.sname = sname;}public int getSage() {return sage;}public void setSage(int sage) {this.sage = sage;}public String getSaddress() {return saddress;}public void setSaddress(String saddress) {this.saddress = saddress;}}AddStudentServlet.java
package org.student.servlet;import java.io.IOException; import java.io.PrintWriter;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;import org.student.entity.Student; import org.student.service.StudentService;public class AddStudentServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("utf-8");int no = Integer.parseInt(request.getParameter("sno"));String name = request.getParameter("sname");int age = Integer.parseInt(request.getParameter("sage")) ;String address = request.getParameter("saddress");Student student = new Student(no,name,age,address);StudentService studentService = new StudentService();boolean result = studentService.addStudent(student);//jsp內(nèi)置對(duì)象:out request response session application..//out :PrintWriter out = response.getWriter();//session : request.getSession();//application : request.getServletContext();//設(shè)置編碼//必須在out之前設(shè)置編碼response.setContentType("text/html; charset=UTF-8");response.setCharacterEncoding("utf-8");PrintWriter out = response.getWriter();if(result) {out.println("增加成功!!");}else {out.println("增加失敗!!");}}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doGet(request, response);} }StudentService.java
package org.student.service;import org.student.dao.StudentDao; import org.student.entity.Student;/*** @author 11441*業(yè)務(wù)邏輯層,邏輯性的增刪改查,(增:查+增)到Dao層進(jìn)行的組裝*/ public class StudentService {StudentDao studentDao = new StudentDao();public boolean addStudent(Student student) {if(!studentDao.isExist(student.getSno())) {//學(xué)生不存在,增加該學(xué)生studentDao.addStudent(student);return true;}else {System.out.println("該學(xué)生已存在");return false;}} }StudentDao.java
package org.student.dao;import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;import org.student.entity.Student;/*** @author 11441*數(shù)據(jù)訪問(wèn)層:原子性,具體的 增刪改查*/ public class StudentDao {private final String URL = "jdbc:mysql://localhost:3306/test1";private final String USERNAME = "root";private final String PASSWOED = "root";//判斷學(xué)生存在public boolean isExist(int sno) {return queryStudentBySno(sno)==null ? false : true;}//增加public boolean addStudent(Student student) {//封裝到數(shù)據(jù)類Connection connection = null;PreparedStatement pstmt = null;try {Class.forName("com.mysql.jdbc.Driver");connection = DriverManager.getConnection(URL, USERNAME, PASSWOED);String sql = "insert into student values (?,?,?,?)";pstmt = connection.prepareStatement(sql);pstmt.setInt(1, student.getSno());pstmt.setString(2, student.getSname());pstmt.setInt(3, student.getSage());pstmt.setString(4, student.getSaddress());int count = pstmt.executeUpdate();if(count > 0) {return true;}else {return false;}} catch (ClassNotFoundException e) {e.printStackTrace();return false;} catch (SQLException e) {e.printStackTrace();return false;} catch (Exception e) {e.printStackTrace();return false;} finally {try {if(pstmt != null) pstmt.close();if(connection != null) connection.close();} catch (SQLException e) {e.printStackTrace();}}}//根據(jù)學(xué)號(hào)查詢學(xué)生信息public Student queryStudentBySno(int sno) {Student student = null;Connection connection = null;PreparedStatement pstmt = null;ResultSet rs = null;try {Class.forName("com.mysql.jdbc.Driver");connection = DriverManager.getConnection(URL, USERNAME, PASSWOED);String sql = "select * from student where sno = ?";pstmt = connection.prepareStatement(sql);pstmt.setInt(1, sno);rs = pstmt.executeQuery();if(rs.next()) {int no = rs.getInt("sno");String name = rs.getString("sname");int age = rs.getInt("sage");String address = rs.getString("saddress");student = new Student(sno,name,age,address);}return student;} catch (ClassNotFoundException e) {e.printStackTrace();return null;} catch (SQLException e) {e.printStackTrace();return null;} catch (Exception e) {e.printStackTrace();return null;} finally {try {if(rs != null) rs.close();if(pstmt != null) pstmt.close();if(connection != null) connection.close();} catch (SQLException e) {e.printStackTrace();}}} } 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的MVC与三层架构的联系及三层架构实现学生注册功能的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: jsp出现The import Xxx
- 下一篇: C++基本数据类型