你的位置:首页 > Java教程

[Java教程]Java_Web之宠物管理系统


使用JSP+servLet实现宠物管理系统,oraC1e11g作为后台数据厍,实现查看宠物和增加宠物
的功能由你实现,如图:

其中宠物包栝:狗、猫、鸟、鼠

具体要求及推荐实现步骤

第一步:创建数据库代码:

create table pet(petId number(10) not null primary key, --idpetName varchar2(50) not null, --昵称petBread varchar(50) not null, --品种petSex varchar(10) not null, --性别birthday date not null,   --出生日期description varchar(400)  --描述)--序列自增create sequence pet_squstart with 1increment by 1nomaxvaluecache 10;drop table pet --删除宠物表drop sequence pet_squ --删除序列--插入数据insert into pet values ('1','aa','狗','雄',to_date('2015-05-26','yyyy-mm-dd'),'聪明的拉布拉多犬');insert into pet values (pet_squ.nextval,'bb','猫','雄',to_date('2015-05-26','yyyy-mm-dd'),'可爱的加菲猫');insert into pet values (pet_squ.nextval,'cc','鸟','雄',to_date('2015-05-26','yyyy-mm-dd'),'活泼的鸟');insert into pet values (pet_squ.nextval,'dd','鼠','雄',to_date('2015-05-26','yyyy-mm-dd'),'可爱的小白鼠');insert into pet values (pet_squ.nextval,'ee','猫','雄',to_date('2015-05-26','YYYY-MM-dd'),'可爱的加菲猫');select * from pet --查询所有宠物

第二步:建立宠物实体类entity(pet)

package entity;/** * 宠物实体类 * @author Administrator * */public class pet {  private int petId; //--id  private String petName ; //--昵称  private String petBread ;//--品种  private String petSex; //--性别  private String birthday ;//--出生日期  private String description;//--描述  public int getPetId() {    return petId;  }  public void setPetId(int petId) {    this.petId = petId;  }  public String getPetName() {    return petName;  }  public void setPetName(String petName) {    this.petName = petName;  }  public String getPetBread() {    return petBread;  }  public void setPetBread(String petBread) {    this.petBread = petBread;  }  public String getPetSex() {    return petSex;  }  public void setPetSex(String petSex) {    this.petSex = petSex;  }  public String getBirthday() {    return birthday;  }  public void setBirthday(String birthday) {    this.birthday = birthday;  }  public String getDescription() {    return description;  }  public void setDescription(String description) {    this.description = description;  }}

第三步:建立数据库 帮助类DB(记得导入架包)

package DB;  import java.sql.Connection;  import java.sql.DriverManager;  import java.sql.ResultSet;  import java.sql.SQLException;   import java.sql.Statement;  public class JNDI {      //数据库名和登入密码    String driver="oracle.jdbc.driver.OracleDriver";    String url="jdbc:oracle:thin:@localhost:1521:ORCL";    String user = "epet";    String pwd = "123456";        //建立数据库连接方法    public Connection getConnection(){      //加载驱动      try {        //第一步:加载驱动        Class.forName(driver);      } catch (ClassNotFoundException e) {        // TODO Auto-generated catch block        e.printStackTrace();      }            Connection con =null;              //获取连接对象      try {        con =DriverManager.getConnection(url,user,pwd);              //连接数据库      } catch (SQLException e) {        // TODO Auto-generated catch block        e.printStackTrace();              }         return con;    }            //======释放资源方法=======  public void ShiFang(ResultSet rs, Statement st,Connection con){        //如果结果集不为空,则释放成功 ,否则失败          try {            if(rs!=null){               rs.close();            }if(st!=null){               st.close();            }if(con!=null){             con.close();                          }              } catch (SQLException e) {          // TODO Auto-generated catch block          e.printStackTrace();              }          }          }

第四步:三层架构(数据查询层+业务逻辑层+表示层JSP

1、创建Biz(业务逻辑层)

package Biz;import java.util.List;import entity.pet;/** * 业务逻辑层 * @author Administrator * */public interface petBiz {    //查询宠物信息  public List<pet> returnList();  //添加宠物信息  public int insertPet(pet pet);  //根据宠物类型查询宠物信息  public List<pet> selectPet(String petType);}

package Biz.Impl;import java.util.List;import entity.pet;import Biz.petBiz;import Dao.petDao;import Dao.Impl.petDaoImpl;public class petBizImpl implements petBiz {    //实例化数据连接层  petDao pe=new petDaoImpl();    public List<pet> returnList() {        return pe.returnList();  }  public int insertPet(pet pet) {    // TODO Auto-generated method stub    return pe.insertPet(pet);  }  public List<pet> selectPet(String petType) {    // TODO Auto-generated method stub    return pe.selectPet(petType);  }}

2、创建DAO(数据查询层)

package Dao;import java.util.List;import entity.pet;/** * 数据查询层 * @author Administrator * */public interface petDao {  //查询宠物信息  public List<pet> returnList();  //添加宠物信息  public int insertPet(pet pet);  //根据宠物类型查询宠物信息  public List<pet> selectPet(String petType);}

package Dao.Impl;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import entity.pet;import DB.JNDI;import Dao.petDao;public class petDaoImpl extends JNDI implements petDao {  private Connection cn;  private PreparedStatement ps;  private ResultSet rs;  public List<pet> returnList() {    List<pet> li=new ArrayList<pet>();    cn=super.getConnection();    String sql="select * from pet order by petId";    try {      ps=cn.prepareStatement(sql);      rs=ps.executeQuery();      while(rs.next()){        pet pe=new pet();        pe.setPetId(rs.getInt("petId"));        pe.setPetName(rs.getString("petName"));        pe.setPetBread(rs.getString("petBread"));        pe.setPetSex(rs.getString("petSex"));        pe.setBirthday(rs.getString("birthday"));        pe.setDescription(rs.getString("description"));        li.add(pe);      }    } catch (SQLException e) {      // TODO Auto-generated catch block      e.printStackTrace();    }        return li;  }    public int insertPet(pet pet) {    int i=0;    cn=super.getConnection();    String sql="insert into pet values (pet_squ.nextval,?,?,?,to_date(?,'YYYY-MM-dd'),?)";    try {      ps=cn.prepareStatement(sql);      ps.setString(1,pet.getPetName() );      ps.setString(2, pet.getPetBread());      ps.setString(3,pet.getPetSex() );      ps.setString(4,pet.getBirthday() );      ps.setString(5,pet.getDescription() );      i=ps.executeUpdate();    } catch (SQLException e) {      // TODO Auto-generated catch block      e.printStackTrace();    }    return i;  }  public List<pet> selectPet(String petType) {    List<pet> li=new ArrayList<pet>();    if(petType.equals("请选择")){      cn=super.getConnection();      String sql="select * from pet order by petId";      try {        ps=cn.prepareStatement(sql);        rs=ps.executeQuery();        while(rs.next()){          pet pe=new pet();          pe.setPetId(rs.getInt("petId"));          pe.setPetName(rs.getString("petName"));          pe.setPetBread(rs.getString("petBread"));          pe.setPetSex(rs.getString("petSex"));          pe.setBirthday(rs.getString("birthday"));          pe.setDescription(rs.getString("description"));          li.add(pe);        }      } catch (SQLException e) {        // TODO Auto-generated catch block        e.printStackTrace();      }    }else{    cn=super.getConnection();    String sql="select * from pet where petBread=? order by petId";    try {      ps=cn.prepareStatement(sql);      ps.setString(1,petType);      rs=ps.executeQuery();      while(rs.next()){        pet pe=new pet();        pe.setPetId(rs.getInt("petId"));        pe.setPetName(rs.getString("petName"));        pe.setPetBread(rs.getString("petBread"));        pe.setPetSex(rs.getString("petSex"));        pe.setBirthday(rs.getString("birthday"));        pe.setDescription(rs.getString("description"));        li.add(pe);      }    } catch (SQLException e) {      // TODO Auto-generated catch block      e.printStackTrace();    }    }    return li;  }}

第五步:创建实现Servlet的配置(web项目

<?   ="http://java.sun.com/   ="http://www.w3.org/2001/   xsi:schemaLocation="http://java.sun.com///java.sun.com/      <!-- 注册 -->  <servlet>     <servlet-name>selectPet</servlet-name>      <servlet-class>servlet.selectPet</servlet-class>  </servlet>    <!-- 映射 -->  <servlet-mapping>       <servlet-name>selectPet</servlet-name>        <url-pattern>/selectPet</url-pattern>  </servlet-mapping>    <!-- 注册 -->  <servlet>     <servlet-name>servletInsert</servlet-name>      <servlet-class>servlet.servletInsert</servlet-class>  </servlet>    <!-- 映射 -->  <servlet-mapping>       <servlet-name>servletInsert</servlet-name>        <url-pattern>/servletInsert</url-pattern>  </servlet-mapping>    <welcome-file-list>  <welcome-file>index.jsp</welcome-file> </welcome-file-list></web-app>

部署servlet:

package servlet;import java.io.IOException;import java.io.PrintWriter;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import entity.pet;import Biz.petBiz;import Biz.Impl.petBizImpl;public class selectPet extends HttpServlet {  /**   * Initialization of the servlet. <br>   *   * @throws ServletException if an error occurs   */  public void init() throws ServletException {    System.out.println("初始化servlet");  }  /**   * The doGet method of the servlet. <br>   *   * This method is called when a form has its tag value method equals to get.   *   * @param request the request send by the client to the server   * @param response the response send by the server to the client   * @throws ServletException if an error occurred   * @throws IOException if an error occurred   */  public void doGet(HttpServletRequest request, HttpServletResponse response)      throws ServletException, IOException {    System.out.println("test_get");    petBiz pet=new petBizImpl();    List<pet> li=pet.returnList();        request.getSession().setAttribute("list", li);    response.sendRedirect("index.jsp");    System.out.println("test");  }  /**   * The doPost method of the servlet. <br>   *   * This method is called when a form has its tag value method equals to post.   *   * @param request the request send by the client to the server   * @param response the response send by the server to the client   * @throws ServletException if an error occurred   * @throws IOException if an error occurred   */  public void doPost(HttpServletRequest request, HttpServletResponse response)      throws ServletException, IOException {    request.setCharacterEncoding("utf-8");    String petType=request.getParameter("petType");        String pett="";    if(("").equals(petType)||petType==null){      pett="请选择";    }else{      petType=new String(petType.getBytes("ISO8859-1"),"UTF-8");      pett=petType;    }    petBiz pet=new petBizImpl();    List<pet> li=pet.selectPet(pett);        response.setCharacterEncoding("utf-8");    response.setContentType("text/html;charset=UTF-8");    response.setContentType("text/html");    PrintWriter out = response.getWriter();    request.getSession().setAttribute("list", li);    response.sendRedirect("index.jsp");  }    /**   * Destruction of the servlet. <br>   */  public void destroy() {    System.out.println("销毁servlet");  }}

配置添加宠物servlect

package 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 Biz.petBiz;import Biz.Impl.petBizImpl;import entity.pet;public class servletInsert extends HttpServlet{  @Override  public void init() throws ServletException {    // TODO Auto-generated method stub    System.out.println("servlet初始化成功");  }    @Override  protected void doGet(HttpServletRequest request, HttpServletResponse response)      throws ServletException, IOException {    // TODO Auto-generated method stub    System.out.println("Test_Get");        PrintWriter out =response.getWriter();    out.print("tets");  }  @Override  protected void doPost(HttpServletRequest request, HttpServletResponse response)      throws ServletException, IOException {        request.setCharacterEncoding("utf-8");    pet pet=new pet();    pet.setPetName(request.getParameter("petname"));    pet.setPetBread(request.getParameter("select"));    pet.setPetSex(request.getParameter("radio"));    pet.setBirthday(request.getParameter("bornDate"));    pet.setDescription(request.getParameter("textarea"));            petBiz pb=new petBizImpl();    int i=pb.insertPet(pet);    request.setCharacterEncoding("UTF-8");    response.setCharacterEncoding("UTF-8");    response.setContentType("text/html;charset=UTF-8");    PrintWriter out =response.getWriter();    if(i>0){      response.sendRedirect("index.jsp");    }else{      response.sendRedirect("insert.jsp");    }      }  @Override  public void destroy() {    // TODO Auto-generated method stub    System.out.println("销毁servlet");      }        }

3、三层架构之表示层(jsp)

<%@page import="entity.pet"%><%@page import="Biz.Impl.petBizImpl"%><%@page import="Biz.petBiz"%><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  List<pet> list=(List)request.getSession().getAttribute("list");  request.setAttribute("pet", list);    String []petArray={"请选择","猫","狗","鸟","鼠"};  request.setAttribute("petArray", petArray);%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head>  <base href="<%=basePath%>">    <title>显示页</title>  <meta http-equiv="pragma" content="no-cache">  <meta http-equiv="cache-control" content="no-cache">  <meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  <meta http-equiv="description" content="This is my page">  <style type="text/css">    table tr th{width:100px;background:grey}    table tr td{width:100px;}  </style>  <script type="text/javascript">      function petChange(){        var select =document.getElementById("select").value;        document.getElementById("form").action="selectPet?petType="+select;          document.getElementById("form").method="post"          document.getElementById("form").submit();        }  </script> </head>  <body>  <div>    <p>      <form id="form">        品种        <select name="select" id="select" >          <c:forEach var="petArray" items="${requestScope.petArray }">            <option <c:if test="${petArray}">selected=selected</c:if> value="${petArray }">${petArray }</option>          </c:forEach>        </select>        <input type="submit" value="提交" onclick="petChange()"/>        <a href="insert.jsp">添加宠物</a>      </form>              </p>    <table>      <tr>        <th>宠物昵称</th>        <th>出生日期</th>        <th>性别</th>      </tr>      <c:forEach var="pet" items="${requestScope.pet }" varStatus="stauts">      <tr <c:if test="${stauts.index%2==1}"></c:if>>        <td>${pet.petName } </td>        <td>${pet.birthday }</td>        <td>${pet.petSex }</td>      </tr>      </c:forEach>    </table>  </div> </body></html>   




<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%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 'insert.jsp' starting page</title>    <meta http-equiv="pragma" content="no-cache">  <meta http-equiv="cache-control" content="no-cache">  <meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  <meta http-equiv="description" content="This is my page">  <!--  <link rel="stylesheet" type="text/css" href="styles.css">  --> </head>  <body> <form action="servletInsert" method="post" onsubmit="return check()">  <table>    <tr>      <th colspan="2">宠物基本信息</th>    </tr>    <tr>      <td>昵称:</td>      <td><input type="text" name="petname" id="petname" /></td>    </tr>    <tr>      <td>品种</td>      <td>        <select name="select" id="select"">        <option value="请选择">--请选择--</option>        <option value="狗">狗</option>        <option value="猫">猫</option>        <option value="鸟">鸟</option>        <option value="鼠">鼠</option>        </select>      </td>    </tr>    <tr>      <td>性别</td>      <td>        <input type="radio" value="雄" name="radio" checked="checked"/>雄        <input type="radio" value="雌" name="radio"/>雌      </td>    </tr>    <tr>      <td>出生日期</td>      <td><input type="text" name="bornDate" id="bornDate"/> <span id="span"></span></td>    </tr>    <tr>      <td>宠物描述</td>      <td>        <textarea name="textarea" id="textarea" cols="60" rows="10">                          </textarea>      </td>    </tr>    <tr>      <td colspan="2" style="text-align:center">        <input type="submit" value="提交"/>        <input type="reset" value="重置"/>      </td>    </tr>  </table>  </form>  <script language="javascript">   function check(){      var petname =document.getElementById("petname").value;      var select =document.getElementById("select").value;      var bornDate =document.getElementById("bornDate").value;      var textarea =document.getElementById("textarea").value;      var span =document.getElementById("span");      var reg=/^(18|20)\d\d-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])/;      if(petname==""){        alert("宠物名称不能为空");        return false;      }      if(select=="请选择"){        alert("请选择宠物类型");        return false;      }      if(bornDate==""){        alert("请输入宠物出生日期");        return false;      }      if(reg.test(bornDate)==false){        span.innerHTML="YYYY-MM-DD";        alert("日期格式错误");        return false;      }      if(textarea==" "){        alert("请输入宠物描述");        return false;      }    }   </script> </body></html>