百度网站开发业务,免费做网站报价,js特效网站模板,东莞制作网站的联系方式MVC与三层架构的联系及三层架构实现学生注册功能 三层架构的逻辑关系#xff1a; MVC和三层架构的联系#xff1a; 三层架构实现学生注册功能的逻辑#xff1a; 学生注册页面#xff1a; 输入学生信息#xff1a;
完成学生注册: 代码实现#xff1a;
add.jsp
% …MVC与三层架构的联系及三层架构实现学生注册功能 三层架构的逻辑关系 MVC和三层架构的联系 三层架构实现学生注册功能的逻辑 学生注册页面 输入学生信息
完成学生注册: 代码实现
add.jsp
% page languagejava contentTypetext/html; charsetUTF-8pageEncodingUTF-8%
!DOCTYPE html PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN http://www.w3.org/TR/html4/loose.dtd
html
head
meta http-equivContent-Type contenttext/html; charsetUTF-8
titleInsert title here/title
/head
body backgroundphoto/海浪.jpg form actionAddStudentServlet methodpost 学号input typetext namesno /br/姓名input typetext namesname /br/年龄input typetext namesage /br/地址input typetext namesaddress /br/input typesubmit value注册 //form
/body
/htmlStudent.java
package org.student.entity;/*** author 11441*student实体类*/
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内置对象out request response session application..//out :PrintWriter out response.getWriter();//session : request.getSession();//application : request.getServletContext();//设置编码//必须在out之前设置编码response.setContentType(text/html; charsetUTF-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*业务逻辑层逻辑性的增删改查增查增到Dao层进行的组装*/
public class StudentService {StudentDao studentDao new StudentDao();public boolean addStudent(Student student) {if(!studentDao.isExist(student.getSno())) {//学生不存在增加该学生studentDao.addStudent(student);return true;}else {System.out.println(该学生已存在);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*数据访问层原子性具体的 增删改查*/
public class StudentDao {private final String URL jdbc:mysql://localhost:3306/test1;private final String USERNAME root;private final String PASSWOED root;//判断学生存在public boolean isExist(int sno) {return queryStudentBySno(sno)null ? false : true;}//增加public boolean addStudent(Student student) {//封装到数据类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();}}}//根据学号查询学生信息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();}}}
}