原先写在CSDN的一篇,我直接扒过来吧。之前打算在CSDN的,结果写了几回,发现他那个发布系统简直烂到家,经常丢失图片各种。所以很长一段时间我也没写什么。

一、MVC模式

1、M :  javabean;

2、V :  jsp;

3、C : servlet;

4、DB:MySQL

二、文件夹

三、项目内容

1、建立数据库并封装数据库操作

create database testDB;  

use testDB;  

create table user
(
id int auto_increment primary key,
username varchar(20),
password varchar(20),
phone varchar(20),
addr varchar(225)
);  
/**
 * 封装数据库操作
 * 包括对javabean存储的操作;
 */  

import java.sql.*;  

import com.yck.mvc.bean.User;  

public class DB
 {
    static
    {
        try
        {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e)
        {
            e.printStackTrace();
        }
    }  

    public static Connection getConnection()
    {
        Connection connection = null;
        try
        {
            connection = DriverManager.getConnection("jdbc:mysql://localhost/testdb?user=root&password=yck940522");  

        } catch (SQLException e)
        {
            e.printStackTrace();
        }
        return connection;
    }  

    public static void closeConnection(Connection connection)
    {
        try
        {
            if(connection != null)
            {
                connection.close();
                connection = null;
            }
        }  catch (SQLException e)
        {
            e.printStackTrace();
        }
    }  

    public static PreparedStatement preparedStatement(Connection connection,String sql)
    {
        PreparedStatement preparedStatement = null;
        try
        {
            preparedStatement = connection.prepareStatement(sql);
        } catch (SQLException e)
        {
            e.printStackTrace();
        }
        return preparedStatement;
    }
    public static void closePreparedStatement(PreparedStatement preparedStatement)
    {
        try
        {
            if(preparedStatement != null)
            {
                preparedStatement.close();
                preparedStatement = null;
            }
        }  catch (SQLException e)
        {
            e.printStackTrace();
        }
    }  

    public static Statement createStatement(Connection connection)
    {
        Statement statement = null;
        try
        {
            statement = connection.createStatement();
        } catch (SQLException e)
        {
            e.printStackTrace();
        }
        return statement;
    }
    public static void closeStatement(Statement statement)
    {
        try
        {
            if(statement != null)
            {
                statement.close();
                statement = null;
            }
        }  catch (SQLException e)
        {
            e.printStackTrace();
        }
    }
    public static ResultSet getResultSet(Statement statement,String sql)
    {
        ResultSet resultSet = null;
        try
        {
            resultSet = statement.executeQuery(sql);
        } catch (SQLException e)
        {
            e.printStackTrace();
        }
        return resultSet;
    }
    public static void closeResultSet(ResultSet resultSet)
    {
        try
        {
            if(resultSet != null)
            {
                resultSet.close();
                resultSet = null;
            }
        }  catch (SQLException e)
        {
            e.printStackTrace();
        }
    }  

    //构造在数据库中存储User的方法  

    public static void saveUser(User u)
    {
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        try
        {
            connection = DB.getConnection();
            String sql = "insert into user values(null,?,?,?,?)";
            preparedStatement = DB.preparedStatement(connection, sql);
            preparedStatement.setString(1, u.getUsername());
            preparedStatement.setString(2, u.getPassword());
            preparedStatement.setString(3, u.getPhone());
            preparedStatement.setString(4, u.getAddr());
            preparedStatement.executeUpdate();
        }  catch (SQLException e)
        {
            e.printStackTrace();
        }
    }
 }  

2、建立Model:封装User

public class User
{
    private String username;
    private String password;
    private String phone;
    private String addr;
    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 String getPhone()
    {
        return phone;
    }
    public void setPhone(String phone)
    {
        this.phone = phone;
    }
    public String getAddr()
    {
        return addr;
    }
    public void setAddr(String addr)
    {
        this.addr = addr;
    }  

}  

3 建立View:写jsp页面

1)register.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>注册用户</title>
</head>
<body>
<form name="regiserForm" action="http://localhost:8080/MVC/RegisterServlet" method = "post">
    <table id="registerTableId" align="center">
        <tr>
            <td colspan="2" align="center">用户注册</td>
        </tr>
        <tr>
            <td>用户名</td> <td><input id="usernameId" type="text" name="username"></td>
            <td><span id="usernameTipId"></span></td>
        </tr>
         <tr>
            <td>密码</td> <td><input id="passwordId" type="password" name="password"></td>
            <td><span id="passwordTipId"></span></td>
        </tr>
         <tr>
            <td>密码确认</td> <td><input id="password2Id" type="password" name="password2"></td>
            <td><span id="password2TipId"></span></td>
        </tr>
         <tr>
            <td>手机号码</td> <td><input id="phoneId" type="text" name="phone"></td>
            <td><span id="phoneTipId"></span></td>
        </tr>
         <tr>
            <td>地址</td> <td><textarea id="addrId" name="addr" rows="3" cols="25"></textarea></td>
        </tr>
         <tr>
            <td><input id="registerSubmitId" type="submit" value="提交"></td>
            <td><input id="registerResetId" type="reset" value="重置"></td>
        </tr>  

    </table>
</form>  

</body>
</html>  

2)registerInfo.jsp 显示注册信息

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>注册成功</title>
</head>
<body>
<jsp:useBean id="registerUser" class="com.yck.mvc.bean.User" scope="session"></jsp:useBean>
<table id="registerInfoId" align="center">
    <tr><td colspan="2" align="center">用户信息</td></tr>
    <tr>
        <td>用户名</td> <td> <jsp:getProperty property="username" name="registerUser"/></td>
    </tr>
    <tr>
        <td>手机号码</td> <td> <jsp:getProperty property="phone" name="registerUser"/></td>
    </tr>
    <tr>
        <td>地址</td> <td> <jsp:getProperty property="addr" name="registerUser"/></td>
    </tr>
</table>  

</body>
</html>  

4、建立Control层:写servlet

RegisterServlet

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;  

import com.yck.mvc.DButil.DB;
import com.yck.mvc.bean.User;  

/**
 * Servlet implementation class RegisterServlet
 */
@WebServlet("/RegisterServlet")
public class RegisterServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;  

    /**
     * @see HttpServlet#HttpServlet()
     */
    public RegisterServlet() {
        super();
        // TODO Auto-generated constructor stub
    }  

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
        doPost(request,response);  

    }  

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
        request.setCharacterEncoding("utf-8");
        try
        {
            String username = request.getParameter("username");
            String password = request.getParameter("password");
            String phone = request.getParameter("phone");
            String addr = request.getParameter("addr");
            User u = new User();
            u.setUsername(username);
            u.setPassword(password);
            u.setPhone(phone);
            u.setAddr(addr);
            DB.saveUser(u);  

            request.getSession().setAttribute("registerUser", u);
            request.getRequestDispatcher("registerInfo.jsp").forward(request, response);
        } catch (Exception e)
        {
            e.printStackTrace();
        }  

    }  

}

  那边也没有测试的结果图,我猜肯定是挂了。CSDN毛病特别多,作者甚至不能预览自己写的东西。提交之后在审核的过程中,点击自己的文章就是报错,所以我都是写完就丢那

基于jsp+servlet+javabean的MVC模式简单应用的更多相关文章

  1. Jsp+Servlet+JavaBean经典MVC模式理解

    MVC模式目的(实现Web系统的职能分工). 在Java EE中,Jsp+Servlet+JavaBean算是里面经典的模式,是初学者必备的知识技能.M, Model(模型)实现系统的业务逻辑 1.通 ...

  2. (jsp+servlet+javabean )MVC架构

    MVC是三个单词的缩写,这三个单词分别为:模型.视图和控制. 使用的MVC的目的:在于将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式.比如Windows系统资源管理器文件夹内容的显示方 ...

  3. 2017.11.21 基于JSP+Servlet+JavaBean实现复数运算(二)

    代码的实现 最基本的MVC模式 //input.jsp 输入界面 <%@ page language="java" import="java.util.*" ...

  4. 2017.11.20 基于JSP+Servlet+JavaBean实现复数运算(一)

    (7)在Servlet中使用JavaBean Servlet和JavaBean都是类,在Servlet中使用JavaBean有两种方式: 1.在一个Servlet中单独使用JavaBean 一般完成的 ...

  5. 深入浅出Java MVC(Model View Controller) ---- (JSP + servlet + javabean实例)

    在DRP中终于接触到了MVC,感触是确实这样的架构系统灵活性不少,现在感触最深的就是使用tomcat作为服务器发布比IIS好多了,起码发布很简单,使用起来方便. 首先来简单的学习一下MVC的基础知识, ...

  6. JSP中使用的模式——JSP+Servlet+JavaBean

    上一篇博文写到模式一:JSP+JavaBean 链接地址:http://wxmimperio.coding.io/?p=155 JSP中两种模式的总结 链接地址:http://wxmimperio.c ...

  7. MVC jsp+servlet+javabean 连接Mysql数据库測试demo

    本文介绍的是怎样使用MVC架构去实现jsp+servlet+javabean连接数据库 首先我们应该了解什么是MVC: MVC包含三个部分 : ①View:由各种JSP页面组成. ②Controlle ...

  8. 基于JSP+SERVLET的新闻发布系统(一)

    本系统使用的是基于JSP+SERVLET+TOMCAT6 数据库使用的是MYSQL IDE是MYECLIPSE8.5,页面编辑使用的是百度的ueditor,比较适合咱国人 采用MVC模式,使用的关键技 ...

  9. 基于jsp+servlet图书管理系统之后台万能模板

    前奏: 刚开始接触博客园写博客,就是写写平时学的基础知识,慢慢发现大神写的博客思路很清晰,知识很丰富,非常又价值,反思自己写的,顿时感觉非常low,有相当长一段时间没有分享自己的知识.于是静下心来钻研 ...

随机推荐

  1. 中国剩余定理(CRT)与欧拉函数[数论]

    中国剩余定理 ——!x^n+y^n=z^n 想必大家都听过同余方程这种玩意,但是可能对于中国剩余定理有诸多不解,作为一个MOer&OIer,在此具体说明. 对于同余方程: x≡c1(mod m ...

  2. 让 Python 带你进入开源的世界——Git 从入门到与他人协作开发

    让 Python 带你进入开源的世界--Git 从入门到与他人协作开发 我认为开源社区中有很多优秀的资源,并且可以帮助进阶中的程序员提高编程能力和水平.所以,我发起了<HelloGitHub&g ...

  3. 函数响应式编程及ReactiveObjC学习笔记 (三)

    之前讲了RAC如何帮我们实现KVO / 代理 / 事件 / 通知 今天先不去分析它的核心代码, 我们先看看ReactiveObjC库里面一些特别的东西,  如果大家点开ReactiveObjC目录应该 ...

  4. 第三篇:RESTful介绍

    在介绍restful之前先放一张从之前文章评论里看到的图,我觉得它把soap和rest之间的一些区别形容地非常形象. 在第一篇和第二篇中我们也介绍过,soap协议传递的报文要基于xml格式的soap消 ...

  5. (转)log4j(四)——如何控制不同风格的日志信息的输出?

    一:测试环境与log4j(一)——为什么要使用log4j?一样,这里不再重述 1 老规矩,先来个栗子,然后再聊聊感受 import org.apache.log4j.*; //by godtrue p ...

  6. .Net 内存池

    最近在开发 Pinpoint .Net 客户端,和服务端通信都是通过 TCP 或者 UDP,需要处理大量的 Byte 数据,使用 .Net Framework 只能通过 new Byte[] 的方式申 ...

  7. scanf返回值问题

    在家养病,闲着没事看C primer plus,看到书中对于scanf输入的判断,常用如下方法: 此时它将返回1视为我输入成功,如果不为1则视为输入失败.那到底scanf的返回值具体指的是什么呢? 例 ...

  8. Android学习笔记-ScrollView(滚动条)

    本节引言: 本节带来的是Android基本UI控件中的第十个:ScrollView(滚动条),或者我们应该叫他 竖直滚动条,对应的另外一个水平方向上的滚动条:HorizontalScrollView, ...

  9. Java工程师书单(初级、中级、高级)

    简介 怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序员也是工作一两年之后开始迷茫的程序员经常会问到的问题 ...

  10. Java GC - 监控回收行为与日志分析

    1. 简介 在上一篇介绍<Java GC - 垃圾回收机制>, 本文将介绍如何监控 Javc GC 行为,同时涉及一些GUI工具的使用(虽然有些已经很老并不再更新),监控GC在于判断JVM ...