zoukankan      html  css  js  c++  java
  • 大二上每日总结

    今日完成了Servlet+JSP+JDBC的综合案例,实现对学生姓名,成绩,编号的增删改查:

    连接数据库的类:

    public class DBHelper {
        private static String driver="com.mysql.jdbc.Driver";
        private static String url = "jdbc:mysql://localhost:3306/classname?useUnicode=true&characterEncoding=UTF-8"; //数据库名
        private static String username = "root";  //数据库用户名
        private static String password = "123456";  //数据库用户密码
        private static Connection conn=null;
        static
        {
            try
            {
                Class.forName(driver);
            }
            catch(Exception ex)
            {
                ex.printStackTrace();
            }
        }
        public static Connection getConnection() throws SQLException
        {
            if(conn==null)
            {
                conn=  DriverManager.getConnection(url,username,password);
            }
            return  conn;
        }
        public static void main(String[] args)
        {
            try
            {
                Connection conn=DBHelper.getConnection();
                if(conn!=null)
                {
                    System.out.println("数据库连接正常");
                }
                else
                {
                    System.out.println("数据库连接异常");
                }
            }
            catch(Exception ex)
            {
                ex.printStackTrace();
            }
        }
    }

    student数据类:

    public class Studentdate {
        private Integer id;
        private String name;
        private Double score;
        private Date birthday;
        public Integer getId() {
            return id;
        }
        public void setId(Integer id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public Double getScore() {
            return score;
        }
        public void setScore(Double score) {
            this.score = score;
        }
        public Date getBirthday() {
            return birthday;
        }
        public void setBirthday(Date birthday) {
            this.birthday = birthday;
        }
        public Studentdate(Integer id,String name,Double score,Date birthday)
        {
            this.id=id;
            this.name=name;
            this.score=score;
            this.birthday=birthday;
        }
        public Studentdate(){}
    }

    servlet与filter:

    @WebServlet("/student")
    public class StudentServlet extends HttpServlet {
        private StudentRepository studentrs=new StudentRepository();
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp)
                throws ServletException, IOException {
            // TODO Auto-generated method stub
            String method=req.getParameter("method");
            if(method==null){
                method="findAll";
            }
            switch(method.charAt(0))
            {
            case 'f':
                List<Studentdate> list=null;
                try {
                    list = studentrs.findAll();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                req.setAttribute("list", list);
                req.getRequestDispatcher("index.jsp").forward(req, resp);
                break;
            case 'd':
                String idstr=req.getParameter("id");        
                Integer id=Integer.parseInt(idstr);
                try {
                    studentrs.delete(id);
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                resp.sendRedirect("/biliwork2/student");
                break;
            case 'F':
                String idstr2=req.getParameter("id");        
                Integer id2=Integer.parseInt(idstr2);
                try {
                    req.setAttribute("studate", studentrs.Find(id2));
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                req.getRequestDispatcher("update.jsp").forward(req, resp);
                break;
            }
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp)
                throws ServletException, IOException {
            // TODO Auto-generated method stub
            String method=req.getParameter("method");
            switch(method.charAt(0))
            {
            case 'a':
                String name=req.getParameter("name");
                String scorestr=req.getParameter("score");
                Double score=Double.parseDouble(scorestr);
                try {
                    studentrs.add(name,score);
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                resp.sendRedirect("/biliwork2/student");
            case 'u':
                String name1=req.getParameter("name");
                String idstr=req.getParameter("id");
                Integer id=Integer.parseInt(idstr);
                String scorestr1=req.getParameter("score");
                Double score1=Double.parseDouble(scorestr1);
                try {
                    studentrs.update(id,name1,score1);
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                resp.sendRedirect("/biliwork2/student");
                break;
            }
        }
        
    }
    @WebFilter("/student")
    public class CharacterFilter implements Filter{
    
        public void destroy() {
            // TODO Auto-generated method stub
            
        }
    
        public void doFilter(ServletRequest arg0, ServletResponse arg1,
                FilterChain arg2) throws IOException, ServletException {
            // TODO Auto-generated method stub
            arg0.setCharacterEncoding("utf-8");
            arg2.doFilter(arg0, arg1);
        }
    
        public void init(FilterConfig arg0) throws ServletException {
            // TODO Auto-generated method stub
            
        }
    
    }

    实现数据库的增删改查的类:

    public class StudentRepository {
        public List<Studentdate> findAll() throws SQLException
        {
            List<Studentdate> list=new ArrayList<Studentdate>();
            Connection conn=DBHelper.getConnection();
            String sql="SELECT * FROM student";
            PreparedStatement ps=conn.prepareStatement(sql);
            ResultSet rs=ps.executeQuery();
            Studentdate studate=null;
            while(rs.next())
            {
                Integer id=rs.getInt(1);
                String name=rs.getString(2);
                Double score=rs.getDouble(3);
                Date birthday=rs.getDate(4);
                studate=new Studentdate(id,name,score,birthday);
                list.add(studate);
            }
            return list;
        }
        public void add(String name,Double score) throws SQLException
        {
            PreparedStatement ps=null;
            Connection conn=DBHelper.getConnection();
            conn.setAutoCommit(false);
            String sql="INSERT INTO student(name,score,birthday) values(?,?,?)";
            ps= conn.prepareStatement(sql);
            ps.setString(1,name);
            ps.setDouble(2,score);
            ps.setDate(3, new java.sql.Date(10));
            ps.executeUpdate();
            conn.commit();
        }
        public void delete(Integer id) throws SQLException
        {
            PreparedStatement ps=null;
            Connection conn=DBHelper.getConnection();
            conn.setAutoCommit(false);
            String sql="DELETE  FROM student where id=?";
            ps=conn.prepareStatement(sql);
            ps.setInt(1, id);
            ps.executeUpdate();
            conn.commit();
        }
        public Studentdate Find(Integer id) throws SQLException
        {
            Studentdate studate=null;
            PreparedStatement ps=null;
            Connection conn=DBHelper.getConnection();
            conn.setAutoCommit(false);
            ResultSet rs=null;
            String sql="SELECT * FROM student where id=?";
            ps=conn.prepareStatement(sql);
            ps.setInt(1,id);
            rs=ps.executeQuery();
            while(rs.next())
            {
                String name=rs.getString(2);
                Double score=rs.getDouble(3);
                Date birthday=rs.getDate(4);
                studate=new Studentdate(id,name,score,birthday);
            }
            return studate;
        }
        public void update(Integer id,String name,Double score) throws SQLException
        {
            PreparedStatement ps=null;
            Connection conn=DBHelper.getConnection();
            conn.setAutoCommit(false);
            String sql="UPDATE student set name=?,score=? where id=?";
            ps= conn.prepareStatement(sql);
            ps.setString(1,name);
            ps.setDouble(2,score);
            ps.setInt(3,id);
            ps.executeUpdate();
            conn.commit();
        }
    }

    以及三个jsp文件实现修改,增加,查询,删除界面显示:

    <%@ 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 'add.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="/biliwork2/student" method="post">
          <table>
            <tr>
            <td>姓名</td>
            <td><input type="text" name="name"></td>
          </tr>
          <tr>
            <td>成绩</td>
            <td><input type="text" name="score"></td>
          </tr>
          <tr>
            <td><input type="hidden" name="method" value="add">
            <td><input type="submit" value="提交"></td>
          </tr>
          </table>
        </form> <br>
      </body>
    </html>
    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> 
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'index.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>
        <h1>学生管理系统</h1>
        <table>
           <tr>
              <th>编号</th>
              <th>姓名</th>
              <th>成绩</th>
              <th>注册日期</th>
              <th>操作</th>
           </tr>
           <c:forEach items="${list}" var="studentdate" >
             <tr>
               <td>${studentdate.id}</td>
               <td>${studentdate.name}</td>
               <td>${studentdate.score}</td>
               <td>${studentdate.birthday}</td>
               <td>
                 <a href="/biliwork2/student?method=delete&id=${studentdate.id }">删除</a>
                 <a href="/biliwork2/student?method=Find&id=${studentdate.id }">修改</a>
             </tr>
           </c:forEach>
         </table> <br>
      </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 'add.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="/biliwork2/student" method="post">
          <table>
            <tr>
              <td>编号</td>
              <td><input type="text" name="id" readonly value="${studate.id }"></td>
            </tr>
            <tr>
            <td>姓名</td>
            <td><input type="text" name="name" value="${studate.name }"></td>
          </tr>
          <tr>
            <td>成绩</td>
            <td><input type="text" name="score" value="${studate.score }"></td>
          </tr>
          <tr>
            <td><input type="hidden" name="method" value="update">
            <td><input type="submit" value="修改"></td>
          </tr>
          </table>
        </form> <br>
      </body>
    </html>
  • 相关阅读:
    Dom4j使用Xpath语法读取xml节点
    XML新手入门 创建构造良好的XML(2)
    XML新手入门 创建构造良好的XML(1)
    详解Java解析XML的四种方法
    Java中加载配置文件的集中方式,以及利用ClassLoader加载文件 .
    javaSE读取Properties文件的六种方法
    select
    socket
    socket异步通信-如何设置成非阻塞模式、非阻塞模式下判断connect成功(失败)、判断recv/recvfrom成功(失败)、判断send/sendto
    grep 多模式匹配
  • 原文地址:https://www.cnblogs.com/fengchuiguobanxia/p/13991659.html
Copyright © 2011-2022 走看看