zoukankan      html  css  js  c++  java
  • jsp MVC学习笔记

    Model层:

    四个包:

    com.maker.bean存放数据库里面的字段信息。

    package com.maker.bean;
    
    public class User 
    {
        
    
        private String username;
        private String password;
        private int id;
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
    
    }
    View Code

    在编写get set方法可以编写完数据库字段之后生成。

    com.maker.util包:

    package com.maker.util;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    
    public class DBUtil
    {
        public Connection getConnection() throws InstantiationException, IllegalAccessException, ClassNotFoundException, SQLException
        {
            String Url="jdbc:mysql://localhost/jsptest";
            String Driver="com.mysql.jdbc.Driver";
            String username="root";
            String password="w111206";
            Class.forName(Driver).newInstance();
             Connection conn = DriverManager.getConnection(Url,username,password);    
            return conn;
            
        }
        public void closeConnection(Connection conn)
        {
            try {
                conn.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    
    }
    View Code

    里面包含数据库连接打开,关闭代码

    com.maker.dao包:

    package com.maker.dao;
    import java.sql.*;
    import java.util.ArrayList;
    
    import com.maker.bean.User;
    import com.maker.util.DBUtil;
    import com.mysql.jdbc.PreparedStatement;
    import com.mysql.jdbc.ResultSet;
    import com.mysql.jdbc.Statement;
    
    public class UserData
    {
        public void Del(int Id)
        {
            String sql="delete from user where id="+Id;
            DBUtil util=new DBUtil();
            Connection conn=null;
            try {
                 conn=util.getConnection();
                PreparedStatement pstmt=(PreparedStatement) conn.prepareStatement(sql);
                
                pstmt.executeUpdate();
                
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            finally{
                util.closeConnection(conn);
            }    
            
        }
        public void save(User us)
        {
            String sql="insert into User (username,password) values(?,?)";
            DBUtil util=new DBUtil();
            Connection conn = null;
            try {
                conn = util.getConnection();
                PreparedStatement pstmt=(PreparedStatement) conn.prepareStatement(sql);
                pstmt.setString(1, us.getUsername());
                pstmt.setString(2,us.getPassword());
                pstmt.executeUpdate();
            
            } catch (Exception e) {
            
                e.printStackTrace();
            }
            finally{
                util.closeConnection(conn);
            }    
        }
        public ArrayList List()
        {
            ArrayList list=new ArrayList();
        String sql="select * from user";
        DBUtil util=new DBUtil();
        Connection conn = null;
        try {
            conn = util.getConnection();
        java.sql.Statement stmt=conn.createStatement();
        java.sql.ResultSet rs=stmt.executeQuery(sql);
        while(rs.next())
        {
            int id=rs.getInt(1);
            String username=rs.getString(2);
            String password=rs.getString(3);
            User us=new User();
            us.setId(id);
            us.setPassword(password);
            us.setUsername(username);
            list.add(us);
        }
        
        
        } catch (Exception e) {
        
            e.printStackTrace();
        }
        finally{
            util.closeConnection(conn);
        }    
        return list;
        }
    
    }
    View Code

    里面是数据库操作代码

    Control控制层:

    com.maker.Servlet包

    package com.maker.Sevlet;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.ArrayList;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.maker.bean.User;
    import com.maker.dao.UserData;
    
    public class UpdateServlet extends HttpServlet {
    
        /**
         * Constructor of the object.
         */
        public UpdateServlet() {
            super();
        }
    
        /**
         * Destruction of the servlet. <br>
         */
        public void destroy() {
            super.destroy(); // Just puts "destroy" string in log
            // Put your code here
        }
    
        /**
         * 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 {
    
            String action=request.getParameter("action");
            int Id=Integer.parseInt(action);
        
            UserData da=new UserData();
            da.Del(Id);
            ArrayList<User> list=da.List();
            request.setAttribute("UserList",list);   
           
    
    
            request.getRequestDispatcher("/index.jsp").forward(request, response);
        }
    
        /**
         * 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 {
    
            String action=request.getParameter("action");
            int Id=Integer.parseInt(action);
        
            UserData da=new UserData();
            da.Del(Id);
            ArrayList<User> list=da.List();
            request.setAttribute("UserList",list);   
            request.setAttribute("Id",Id);
    
    
            request.getRequestDispatcher("/index.jsp").forward(request, response);
        }
    
        /**
         * Initialization of the servlet. <br>
         *
         * @throws ServletException if an error occurs
         */
        public void init() throws ServletException {
            // Put your code here
        }
    
    }
    View Code

    里面是Servlet,如果测试里面数据传值等是否正确,想输出一个数值,可采用

    PrintWriter out=response.getWriter();
    out.println("<script>alert('"+name+")<script>");
    也可以向jsp页面传值,然后在jsp页面显示。
    View显示层:
    <%@page import="com.maker.bean.User"%>
    <%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <%@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>
      <table>
    <%
    @SuppressWarnings("unchecked")
    ArrayList<User> arr=(ArrayList<User>)request.getAttribute("UserList");
    for(User us:arr)
    {
    out.println("<tr>");
    out.println("<td>"+us.getUsername()+"</td>");
    out.println("<td>"+us.getPassword()+"</td>");
    out.println("<td><a href='servlet/UpdateServlet?action="+us.getId()+"'>编辑</a></td>");
    out.println("</tr>");
    }
         %>
         <br/>
         <br/>
         </table>
        <table>
        <c:forEach var="fuwa" items="${UserList}" >  
        <tr>
        <td>
            <c:out value="${fuwa.id}" />
        </td>
        <td><td><a href="servlet/UpdateServlet?action=${fuwa.id}">编辑</a></td>
        </tr>
        </c:forEach>
        </table>
      </body>
    </html>
    
  • 相关阅读:
    实时视频应用示例:监控与音乐教学
    im ui框架调研,对比
    WampServer 常见问题
    Android Studio xcode单步调试 WebRTC Android & iOS
    WebRTC 源码分析(五):安卓 P2P 连接过程和 DataChannel 使用
    归并排序的分析与Java实现
    Redis的数据类型
    使用Maven进行多模块拆分
    内容平台消息队列异步静态化实现
    ActiveMQ的应用实例
  • 原文地址:https://www.cnblogs.com/wangzhenghua/p/3188222.html
Copyright © 2011-2022 走看看