MVC模式实例总结

来源:互联网 发布:淘宝达人怎么收取佣金 编辑:程序博客网 时间:2024/06/02 00:31

实例包括如下文件:

M部分:Student.java,包含了数据库访问代码,能够表示学生信息,封装了对学生操作的基本方法。

C部分:StudentServlet.java,完成增删改查的控制。

V部分:studentlist.jsp和edituser.jsp,前者显示学生列表,以及添加、删除、修改的入口,后者用于添加和修改。

配置文件:web.xml

下面分别给出相关文件。

(1)Student.java

package javabean;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.List;public class Student {  private Connection con;  private Statement stmt;  private ResultSet rs;  private String sid; private String sname; private String sage;  /*  * 获取所有学生信息  */ public List getAllStudents(){  List list = new ArrayList();  String sql = "select * from student";  try{   rs = executeQuery(sql);   while(rs.next()){    Student temp = new Student();    temp.setSid(rs.getString(1));    temp.setSname(rs.getString(2));    temp.setSage(rs.getString(3));    list.add(temp);   }  }catch(Exception e){   System.out.println(e.toString());  }finally{   close();  }  return list; }  /*  * 添加学生  */ public void add(Student stu){  String sql = "insert into student values('"+stu.getSid()+"','"+stu.getSname()+"',"+stu.getSage()+")";  try{   executeUpdate(sql);  }catch(Exception e){   System.out.println(e.toString());  }finally{   close();  } }  /*  * 删除学生  */ public void delete(String sid){  String sql = "delete from student where sid='"+sid+"'";  try{   executeUpdate(sql);  }catch(Exception e){   System.out.println(e.toString());  }finally{   close();  } }  /*  * 修改学生  */ public void edit(Student stu){  String sql = "update student set sname='"+stu.getSname()+"',sage="+stu.getSage()+" where sid='"+stu.getSid()+"'";  try{   int n = executeUpdate(sql);   System.out.println("--------------"+n);  }catch(Exception e){   System.out.println(e.toString());  }finally{   close();  } }  /*  * 根据学号查询学生  */ public Student findStudentById(String sid){  String sql = "select * from student where sid='"+sid+"'";  try{   rs = executeQuery(sql);   if(rs.next()){    Student temp = new Student();    temp.setSid(rs.getString(1));    temp.setSname(rs.getString(2));    temp.setSage(rs.getString(3));    return temp;   }  }catch(Exception e){   System.out.println(e.toString());  }finally{   close();  }  return null; }  /*  * 执行更新等操作  */ public int executeUpdate(String sql)throws SQLException,ClassNotFoundException{  return getStatement().executeUpdate(sql); }  /*  * 关闭对象  */ public void close(){  if(rs!=null)   try{rs.close();}catch(Exception e){}  if(stmt!=null)   try{stmt.close();}catch(Exception e){}  if(con!=null)   try{con.close();}catch(Exception e){} }  /*  * 执行有结果集返回的查询  */ public ResultSet executeQuery(String sql) throws SQLException,ClassNotFoundException{  return getStatement().executeQuery(sql); }  /*  * 获取语句对象  */ public Statement getStatement() throws SQLException,ClassNotFoundException{  if(stmt==null){   stmt = getConnection().createStatement();  }  return stmt; }  /*  * 获取连接  */ public Connection getConnection() throws SQLException,ClassNotFoundException{  if(con==null){   Class.forName("oracle.jdbc.driver.OracleDriver");   con = DriverManager.getConnection("jdbc:oracle:thin:@192.168.102.206:1521:orcl","training","123456");  }  return con; } public String getSid() {  return sid; } public void setSid(String sid) {  this.sid = sid; } public String getSname() {  return sname; } public void setSname(String sname) {  this.sname = sname; } public String getSage() {  return sage; } public void setSage(String sage) {  this.sage = sage; }  public static void main(String[] args){  Student student = new Student(); }}
(2)StudentServlet.java

package servlet;import java.io.IOException;import java.util.List;import javabean.Student;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class StudentServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)   throws ServletException, IOException {  doPost(request,response); } public void doPost(HttpServletRequest request, HttpServletResponse response)   throws ServletException, IOException {  request.setCharacterEncoding("gb2312");  String sid = request.getParameter("sid");  String sname = request.getParameter("sname");  String sage = request.getParameter("sage");  String action =  request.getParameter("action");    // 调用业务方法  Student student = new Student();  if(action.equals("list")){ // 显示列表   List list = student.getAllStudents();   request.setAttribute("studentlist",list);  }else if(action.equals("add")){ //添加   Student info = new Student();   info.setSid(sid);   info.setSname(sname);   info.setSage(sage);   student.add(info);  }else if(action.equals("edit")){ // 修改   Student info = new Student();   info.setSid(sid);   info.setSname(sname);   info.setSage(sage);   student.edit(info);  }else if(action.equals("findedit")){ // 修改之前的查询   Student info = student.findStudentById(sid);   request.setAttribute("student",info);  }else if(action.equals("delete")){ // 删除学生   student.delete(sid);  }else if(action.equals("findadd")){     }    String forward;  if(action.equals("findedit")){   request.setAttribute("type","edit"); // 在界面上用于判断是添加界面还是修改界面   forward = "edituser.jsp";  }else if(action.equals("findadd")){   request.setAttribute("type","add"); // 在界面上用于判断是添加界面还是修改界面   forward = "edituser.jsp";  }else if(action.equals("list")){   forward = "studentlist.jsp";  }else{   forward = "student?action=list";  }    RequestDispatcher rd = request.getRequestDispatcher(forward);  rd.forward(request,response); }}
(3)studentlist.jsp

<%@ page contentType="text/html;charset=gb2312"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><html>  <head>     <title>所有学生信息</title>  </head>  <body>     <h1>学生列表</h1>     <table>        <tr>           <td>学号</td><td>姓名</td><td>年龄</td>        </tr>        <c:forEach var="student" items="${studentlist}">            <tr>               <td>${student.sid}</td>               <td>${student.sname}</td>               <td>${student.sage}</td>               <td><a href="student?action=delete&sid=${student.sid}">删除</a></td>               <td><a href="student?action=findedit&sid=${student.sid}">修改</a></td>            </tr>        </c:forEach>     </table>     <a href="student?action=findadd">添加学生</a>  </body></html>
(4)edituser.jsp

 <%@ page language="java" pageEncoding="gb2312" contentType="text/html;charset=gb2312"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">    <title>My JSP 'edituser.jsp' starting page</title>  </head>    <body>     <h2> <c:if test="${type==/"add/"}"> 添加学生</c:if> <c:if test="${type==/"edit/"}">  修改学生</c:if> </h2>    <form action="student?action=${type}" method="post">    <table>       <tr>          <td>学号</td>             <td>               <c:if test="${ empty student }"> <input type="text" name="sid"></c:if>               <c:if test="${! empty student }"> <input type="hidden" name="sid" value="${student.sid}">${student.sid} </c:if>              </td>       </tr>       <tr>          <td>姓名</td><td><input type="text" name="sname" <c:if test="${! empty student }"> value="${student.sname}" </c:if> ></td>       </tr>       <tr>          <td>年龄</td><td><input type="text" name="sage" <c:if test="${! empty student }"> value="${student.sage}" </c:if>></td>       </tr>       <tr>          <td><input type="submit" value="确定"></td><td><input type="reset" value="重置"></td>       </tr>    </table>    </form>  </body></html>
(5)web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.4"  xmlns="http://java.sun.com/xml/ns/j2ee"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee  http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  <servlet>    <description>This is the description of my J2EE component</description>    <display-name>This is the display name of my J2EE component</display-name>    <servlet-name>StudentServlet</servlet-name>    <servlet-class>servlet.StudentServlet</servlet-class>  </servlet>  <servlet-mapping>    <servlet-name>StudentServlet</servlet-name>    <url-pattern>/student</url-pattern>  </servlet-mapping>  <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list></web-app>







原创粉丝点击