`
jinhailion
  • 浏览: 47869 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

[转载] JDBC+Servlet+JSP整合开发之-JSP项目实战

 
阅读更多
–Servlet 的优势与弊端
–JSP 的优势与弊端
–MVC 设计模式
–实例
?使用MVC实现学生信息的添加、显示
-----------------------------START-----------------------------------
? Servlet 的优势与弊端
–优势
?功能强大,可以调用任意的Java JDK API
?能够实现很多高级特征
?成熟
–弊端
?逻辑处理和内容展示很难分离
?开发效率低
–out.println(“”);
?维护成本高
? JSP 的优势与弊端
–优势
?可以直接嵌入静态HTML
?可以直接写代码
?开发效率高
–弊端
?如果直接在JSP页面中写代码
–程序可读性差
–维护困难
? MVC设计模式
–MVC设计模式早在面向对象语言Smalltalk-80中就被提出并在此后得到业界的广泛接受
–它包括三类对象
?模型(Model)对象
–是应用程序的主体部分
?视图(View)对象
–是应用程序中负责生成用户界面的部分
?控制器(Control)对象
–是根据用户的输入,控制用户界面数据显示及更新Model对象状态的部分
–MVC设计模式的好处
? MVC模式不仅实现了功能模块和显示模块的分离
?同时它还提高了应用系统的
–可维护性
–可扩展性
–可移植性
–组件的可复用性
–JSP 的两种实现模式


–具体实现

? 实例
–使用MVC实现学生信息的添加、显示
Datebase

StudentDao.java

StudentDaoImpl.java
package com.michael.dao.impl;   

import java.sql.Connection;   
import java.sql.PreparedStatement;   
import java.sql.ResultSet;   
import java.sql.SQLException;   
import java.sql.Statement;   
import java.util.ArrayList;   
import java.util.List;   

import com.michael.dao.StudentDao;   
import com.michael.util.ConnectionUtil;   
import com.michael.util.SQLConstants;   
import com.michael.vo.Student;   

public class StudentDaoImpl implements StudentDao,SQLConstants {   

        public void add(Student stu) {   
                Connection conn = new ConnectionUtil().openConnection();   
                //String sql = "insert into StudentTbl(name,age,email) values(?,?,?)";   
                try {   
                        PreparedStatement pstmt = conn.prepareStatement(ADD_STUDENT_SQL);   
                        pstmt.setString(1, stu.getName());   
                        pstmt.setInt(2, stu.getAge());   
                        pstmt.setString(3, stu.getEmail());   
                        pstmt.executeUpdate();   
                } catch (SQLException e) {   
                        e.printStackTrace();   
                }finally{   
                        try {   
                                conn.close();   
                        } catch (SQLException e) {   
                                e.printStackTrace();   
                        }   
                }   
        }   

        public List listStudent() {   
                Connection conn = new ConnectionUtil().openConnection();   
                //String sql = "insert into StudentTbl(name,age,email) values(?,?,?)";   
                try {   
                        Statement stmt = conn.createStatement();   
                        ResultSet rs = stmt.executeQuery(QUERY_STUDENT_SQL);   
                        List list = new ArrayList();   
                        while(rs.next()){   
                                int id = rs.getInt(1);   
                                String name = rs.getString(2);   
                                int age = rs.getInt(3);   
                                String email = rs.getString(4);   
                                Student stu = new Student();   
                                stu.setId(id);   
                                stu.setName(name);   
                                stu.setAge(age);   
                                stu.setEmail(email);   
                                list.add(stu);   
                        }   
                        return list;   
                } catch (SQLException e) {   
                        e.printStackTrace();   
                }finally{   
                        try {   
                                conn.close();   
                        } catch (SQLException e) {   
                                e.printStackTrace();   
                        }   
                }   
                return null;   
        }   

}
ConnectionUtil.java
package com.michael.util;   

import java.sql.Connection;   
import java.sql.DriverManager;   
import java.util.Properties;   

public class ConnectionUtil {   

        /**   
         * @param args   
         */   
        public static void main(String[] args) {   
                ConnectionUtil cu = new ConnectionUtil();   
                System.out.println(cu.openConnection());   
        }   
        public Connection openConnection() {   
                String url = "";   
                String driver = "";   
                String user = "";   
                String password = "";   
                Properties prop = new Properties();   
                try {   
                        prop.load(this.getClass().getClassLoader().getResourceAsStream("DBConfig.properties"));   
                        driver = prop.getProperty("driver");   
                        url = prop.getProperty("url");   
                        user = prop.getProperty("user");   
                        password = prop.getProperty("password");   
                        Class.forName(driver);   
                        Connection conn = DriverManager.getConnection(   
                                        url, user, password);   
                        return conn;   
                } catch (Exception e) {   
                        e.printStackTrace();   
                }   
                return null;   
        }   
        public Connection getConnection(String driver, String url, String user,   
                        String password) {   
                // Class.forName()   
                try {   
                        Class.forName(driver);   
                        // DriverManager get connection   
                        Connection conn = DriverManager.getConnection(url, user, password);   
                        return conn;   
                } catch (Exception e) {   
                        e.printStackTrace();   
                }   
                return null;   
        }   

        public Connection getConnection() {   
                // Class.forName()   
                try {   
                        Class.forName("com.mysql.jdbc.Driver");   
                        // DriverManager get connection   
                        Connection conn = DriverManager.getConnection(   
                                        "jdbc:mysql://localhost:3306/jsp_db", "root", "963963");   
                        return conn;   
                } catch (Exception e) {   
                        e.printStackTrace();   
                }   
                return null;   
        }   

}
SQLConstants.java

DBConfig.properties

Student.java

StudentDaoImplTest.java

下面进行单元测试

数据库添加成功!

下面继续哈~
stu.jsp
   
   
   

   
   
       
        My JSP 'stu.jsp' starting page   
            姓名:   
                       
                年龄:   
                       
                电邮:   
                       
                   
                   
        IDNameAgeEmail${s.id }   
                                ${s.name }   
                                ${s.age }   
                                ${s.email }   
                        
StuServlet.java
package com.michael.servlet;   

import java.io.IOException;   
import java.util.List;   

import javax.servlet.ServletException;   
import javax.servlet.http.HttpServlet;   
import javax.servlet.http.HttpServletRequest;   
import javax.servlet.http.HttpServletResponse;   

import com.michael.dao.StudentDao;   
import com.michael.dao.impl.StudentDaoImpl;   
import com.michael.vo.Student;   

public class StuServlet extends HttpServlet {   

        /**   
         * Constructor of the object.   
         */   
        public StuServlet() {   
                super();   
        }   

        /**   
         * Destruction of the servlet.    
         */   
        public void destroy() {   
                super.destroy(); // Just puts "destroy" string in log   
                // Put your code here   
        }   

        /**   
         * The doGet method of the servlet.    
         *   
         * 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 {   

                doPost(request,response);   
        }   

        /**   
         * The doPost method of the servlet.    
         *   
         * 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 methodName = request.getParameter("methodName");   
                if(methodName!=null&&methodName.equals("add")){   
                        add(request,response);   
                }else{   
                        query(request,response);   
                }   
                /*   
                //响应用户请求   
                String name = request.getParameter("name");   
                String age = request.getParameter("age");   
                String email = request.getParameter("email");   
                //调用后台逻辑   
                StudentDao dao = new StudentDaoImpl();   
                Student stu = new Student();   
                stu.setName(name);   
                stu.setAge(new Integer(age));   
                stu.setEmail(email);   
                dao.add(stu);   
                List list = dao.listStudent();   
                request.setAttribute("StuList", list);   
                //数据处理后跳转   
                request.getRequestDispatcher("/stu.jsp").forward(request,response);   
                */   
        }   
        public void add(HttpServletRequest request, HttpServletResponse response)   
                        throws ServletException, IOException {   
                //响应用户请求   
                String name = request.getParameter("name");   
                String age = request.getParameter("age");   
                String email = request.getParameter("email");   
                //调用后台逻辑   
                StudentDao dao = new StudentDaoImpl();   
                Student stu = new Student();   
                stu.setName(name);   
                stu.setAge(new Integer(age));   
                stu.setEmail(email);   
                dao.add(stu);   
                query(request,response);   
        }   

        public void query(HttpServletRequest request, HttpServletResponse response)   
                        throws ServletException, IOException {   

                //调用后台逻辑   
                StudentDao dao = new StudentDaoImpl();   
                List list = dao.listStudent();   
                request.setAttribute("StuList", list);   
                // 跳转   
                request.getRequestDispatcher("/stu.jsp").forward(request, response);   
        }   
        /**   
         * Initialization of the servlet.    
         *   
         * @throws ServletException if an error occurs   
         */   
        public void init() throws ServletException {   
                // Put your code here   
        }   

}

原文 《JDBC+Servlet+JSP整合开发之30-JDBC、Servlet、JSP的MVC》
http://redking.blog.51cto.com/27212/316441/

分享到:
评论

相关推荐

    Java EE WEB 工程师培训------JDBC+Servlet+JSP整合开发

    在Java EE的Web工程中,JDBC、Servlet和JSP的整合开发通常遵循MVC(Model-View-Controller)设计模式。模型层由JavaBean或EJB(Enterprise JavaBeans)构成,负责业务逻辑;视图层由JSP实现,负责展示数据;控制器层...

    基于JDBC+MySQL+Servlet+JSP+Java实现简单校园论坛系统.zip

    基于JDBC+MySQL+Servlet+JSP+Java实现简单校园论坛系统 基于JDBC+MySQL+Servlet+JSP+Java实现简单校园论坛系统 基于JDBC+MySQL+Servlet+JSP+Java实现简单校园论坛系统 基于JDBC+MySQL+Servlet+JSP+Java实现简单校园...

    JDBC+Servlet+jsp实现增删改查

    【JDBC+Servlet+jsp实现增删改查】是一个经典的Web开发应用场景,主要涉及Java后端的数据库操作、服务器端处理以及前端展示技术。在这个项目中,开发者通常会利用Java的JDBC(Java Database Connectivity)接口来...

    基于JDBC+JSP+Servlet的图书管理系统.zip

    基于JDBC+JSP+Servlet的图书管理系统基于JDBC+JSP+Servlet的图书管理系统 基于JDBC+JSP+Servlet的图书管理系统基于JDBC+JSP+Servlet的图书管理系统 基于JDBC+JSP+Servlet的图书管理系统基于JDBC+JSP+Servlet的图书...

    Servlet+JDBC+JSP项目实战源代码

    【Servlet+JDBC+JSP项目实战源代码】是一个典型的Web开发教程,涵盖了Web应用程序的基础构建块,包括Servlet、JDBC(Java Database Connectivity)和JSP(JavaServer Pages)。这个项目实战提供了完整的源代码,旨在...

    Java+Servlet+Jdbc+Jsp+Mysql实现Web学生信息管理系统

    在本项目中,"Java+Servlet+Jdbc+Jsp+Mysql实现Web学生信息管理系统",开发者利用了Java后端技术、Servlet、JDBC、JSP以及MySQL数据库来构建一个完整的Web应用,用于管理学生信息。以下是这些技术在系统中的具体应用...

    数据库课程作业,基于jsp + jdbc + servlet + javabean的学生管理系统.zip

    数据库课程作业,基于jsp + jdbc + servlet + javabean的学生管理系统 数据库课程作业,基于jsp + jdbc + servlet + javabean的学生管理系统 数据库课程作业,基于jsp + jdbc + servlet + javabean的学生管理系统 ...

    基于JSP+JDBC+Servlet的一个简单的客户管理系统.zip

    基于JSP+JDBC+Servlet的一个简单的客户管理系统 基于JSP+JDBC+Servlet的一个简单的客户管理系统 基于JSP+JDBC+Servlet的一个简单的客户管理系统 基于JSP+JDBC+Servlet的一个简单的客户管理系统 基于JSP+JDBC+Servlet...

    基于jsp+jdbc+servlet的个人CMS系统,课程大作业.zip

    基于jsp+jdbc+servlet的个人CMS系统,课程大作业 基于jsp+jdbc+servlet的个人CMS系统,课程大作业 基于jsp+jdbc+servlet的个人CMS系统,课程大作业 基于jsp+jdbc+servlet的个人CMS系统,课程大作业 基于jsp+jdbc+...

    基于JSP+Servlet+JavaBean+JDBC+DAO的Web图书管理架构设计该系统

    基于JSP+Servlet+JavaBean+JDBC+DAO的Web架构设计该系统,进一步了解并掌握如何对数据库进行操作,以及如何分析、设计一个应用系统。 需求要求: 该系统的基本需求是,系统要实现如下的基本管理功能: (1)用户分为...

    web基础JDBC+Servlet+jsp

    通过学习"web基础JDBC+Servlet+jsp",新手能够建立起对Java Web开发的基本理解,为进一步深入学习Spring、Hibernate、Struts等框架打下坚实的基础。遇到不懂的问题,记得及时提问,不断实践和探索,你会发现编程的...

    jsp+servlet+jdbc实现简单的购物车实例.zip

    jsp+servlet+jdbc实现简单的购物车实例,购物数据通过session存储 1、加入购物车时,把数据保存在session中 2、点击系统退出时,购物车中的数据插入到数据库购物车表 3、再次登录时,查询数据库购物车表的数据加载到...

    JDBC+servlet+jsp实例

    这个实例是学习和理解Java Web开发基础的好素材,它将后端处理逻辑(Servlet)与前端展示(JSP)相结合,通过JDBC实现了与数据库的交互。对于初学者来说,这有助于深入理解Web应用的运行机制,提升实际项目开发能力...

    JSP+Servlet + JDBC+MySQL 注册和登录

    在这个项目中,“JSP+Servlet + JDBC+MySQL 注册和登录”就是一个典型的技术栈,用于实现这样的系统。下面我们将深入探讨这四个技术组件及其在实现注册和登录功能中的作用。 1. **JSP(JavaServer Pages)**:JSP是...

    Java 基于jsp+js+servlet+jdbc+mysql原生界面开发后台管理系统源码(分页,登录、注册、图片上传)等功能

    基于jsp+js+servlet+jdbc+mysql开发产品后台管理系统,实现用户增删改查、分页,登录,注册,图片上传等功能。 包括以下5个功能: 1、登录 用户默认主页index.jsp,可选择【登录】功能,若登录成功,则进入产品管理中...

    jdbc+servlet+jsp+mysql

    这个压缩包文件包含了开发基于jdbc、servlet、jsp和mysql的Web应用程序所需的关键组件。其中,jdbc相关的jar包提供了与MySQL数据库交互的驱动和支持;servlet相关的库文件则支持服务器端的请求处理;jsp相关的包可能...

    数据库课程作业,使用jsp + jdbc + servlet + javabean做一个学生管理系统 .zip

    数据库课程作业,使用jsp + jdbc + servlet + javabean做一个学生管理系统。.zip数据库课程作业,使用jsp + jdbc + servlet + javabean做一个学生管理系统。.zip数据库课程作业,使用jsp + jdbc + servlet + ...

    jsp+servlet+jdbc实现增删改查项目

    史上最简单的jsp+servlet+jdbc实现CRUD项目,已经经历了千锤百炼的测试与修改,健壮性一级棒!没有任何问题。而且简明易懂,内附大量注释,是不可多得的好例子。为了保证简单,甚至没有把每个servlet里的jdbc连接...

Global site tag (gtag.js) - Google Analytics