• Java_Web之宠物管理系统


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

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

    具体要求及推荐实现步骤

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

    create table pet
    (
    petId number(10) not null primary key,  --id
    petName varchar2(50) not null,  --昵称
    petBread varchar(50) not null,  --品种
    petSex varchar(10) not null,  --性别
    birthday date not null,     --出生日期
    description varchar(400)    --描述
    )
    --序列自增
    create sequence pet_squ
    start with 1
    increment by 1
    nomaxvalue
    cache 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项目xml配置)和部署

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" 
        xmlns="http://java.sun.com/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
        
        
        <!-- 注册 -->
        <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}">style="background-color:rgb(219,241,212)"</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)dd-(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>
    
    
    
     
  • 相关阅读:
    解决:Requested 'libdrm_radeon >= 2.4.56' but version of libdrm_radeon is 2.4.52
    解决Ubuntun 12.04编译Mesa10.3 WARNING: 'aclocal-1.14' is missing on your system
    交叉编译Mesa,X11lib,Qt opengl
    Qt5.4.1移植到arm——Linuxfb篇
    Qt5.3.0的安装与测试
    gstreamer——文档/资源/使用
    gst-rtsp-server编译测试
    gstreamer-tips-picture-in-picture-compositing
    Matlab实现加性高斯白噪声信道(AWGN)下的digital调制格式识别分类
    Matlab实现单(双)极性(不)归零码
  • 原文地址:https://www.cnblogs.com/wlx520/p/4541913.html
Copyright © 2020-2023  润新知