JavaWeb数据库应用开发基础

JavaWeb数据库应用
JavaWeb数据库应用开发的几种方式
一、JSP+JDBC
二、JSP+Servlet(+JDBC)
三、JSP+Servlet+DAO(+JDBC)
四、JSP+Servlet+DAO(+JDBC)+JavaBean
JavaWeb数据库应用开发的几种方式
以下总结了课程中学习的四种JavaWeb数据库应用开发方式,其中第前两种适合业务逻辑和功能简单的系统;后两种则是经典的MVC开发模式,推荐大家主要采用这种方式。此外,在有一定基础后可以学习使用主流开发框架,如Spring等,开发企业级应用。

一、JSP+JDBC
1.新建前端JSP页面,通过表单或超链接方式提交请求及参数到后端JSP页面。
2.新建后端JSP页面,导入JDBC相关包和类,连接数据库并接收前端请求参数,执行sql语句,最后输出结果并进行响应。
实验:参见实验db_ex1.jsp至db_ex5.jsp

二、JSP+Servlet(+JDBC)
1.新建前端JSP页面,通过表单或超链接方式提交请求及参数到servlet的URL(注意,servlet的URL地址可以进行配置)。
2.新建Servlet类,并配置URL映射。导入JDBC相关包和类,连接数据库并接收前端请求参数,执行sql语句,最后输出结果并进行响应。(注意,Servlet可以通过session或request对象的setAttribute方法将数据保存为属性,来向响应页面传递输出的结果。)
3.响应页面从sessionScope或requestScope对象中取出保存的属性数据,在页面中显示。

实验:Servlet LoginHandle.java的doGet方法主要代码如下

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username = "";
String password = "";
HttpSession session = request.getSession();//需要import javax.servlet.http.HttpSession类
request.setCharacterEncoding("UTF-8");
username = request.getParameter("userName");
password = request.getParameter("passWord");
java.sql.Connection conn=null;
java.sql.PreparedStatement pre=null;
java.sql.ResultSet rs=null;

try{
conn=DBUtil.getConnection();
String sql="select * from stu where username=? and password=?";
pre=conn.prepareStatement(sql);
pre.setString(1, username);
pre.setString(2, password);
rs=pre.executeQuery();
if(rs.next()){
session.setAttribute("userName", username);
response.sendRedirect(request.getContextPath()+"/stu/notice.jsp");
}else{
response.sendRedirect(request.getContextPath()+"/index.jsp");
}

}catch(Exception e){
e.printStackTrace();
}finally{
if(rs!=null)
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(pre!=null)
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(conn!=null)
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

三、JSP+Servlet+DAO(+JDBC)
1.新建前端JSP页面,通过表单或超链接方式提交请求及参数到servlet的URL(注意,servlet的URL地址可以进行配置)。
2.新建DAO类,导入JDBC相关包和类,新建数据库访问方法,连接数据库并执行sql语句,最后返回结果。
MT5教程专题 http://www.gendan5.com/mt5.html
3.新建Servlet类,并配置URL映射。导入DAO类,接收前端请求参数,调用DAO类的数据库访问方法,获取结果并进行响应。(注意,Servlet可以通过session或request对象的setAttribute方法将数据保存为属性,来向响应页面传递数据。)
4.响应页面从sessionScope或requestScope对象中取出保存的属性数据,在页面中显示。

实验:DAO类StuDao.java的主要代码如下:

package dao;
import com.mysql.jdbc.;
import java.sql.
;

import db.DBUtil;

public class StuDao {
public String validateLogin(String username,String password){
String stu="";
java.sql.Connection conn=null;
java.sql.PreparedStatement pre=null;
java.sql.ResultSet rs=null;

try{
conn=DBUtil.getConnection();
String sql="select * from stu where username=? and password=?";
pre=conn.prepareStatement(sql);
pre.setString(1, username);
pre.setString(2, password);
rs=pre.executeQuery();
if(rs.next()){
stu=username;
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(rs!=null)
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(pre!=null)
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(conn!=null)
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return stu;
}
}

Servlet LoginHandle.java的doGet方法主要代码如下

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username = "";
String password = "";
HttpSession session = request.getSession();//需要import javax.servlet.http.HttpSession类
username = request.getParameter("userName");
password = request.getParameter("passWord");
StuDao studao=new StuDao();
String uname=studao.validateLogin(username, password);
if(uname!=""){
session.setAttribute("userName", username);
response.sendRedirect(request.getContextPath()+"/stu/notice.jsp");
}else{
response.sendRedirect(request.getContextPath()+"/index.jsp");
}
}

四、JSP+Servlet+DAO(+JDBC)+JavaBean
1.新建前端JSP页面,通过表单或超链接方式提交请求及参数到servlet的URL(注意,servlet的URL地址可以进行配置)。
2.新建JavaBean类(对应E-R模型和数据库表)。
3.新建DAO类,导入JDBC相关包和类,新建数据库访问方法,连接数据库并执行sql语句。如果进行实体的查询,可以导入JavaBean类,并将查询结果保存在JavaBean中,最后将JavaBean返回。
3.新建Servlet类,并配置URL映射。导入DAO类和JavaBean类,接收前端请求参数,调用DAO类的数据库访问方法,获取结果(或JavaBean)并进行响应。(注意,Servlet可以通过session或request对象的setAttribute方法将JavaBean保存为属性,来向响应页面传递数据。)
4.响应页面从sessionScope或requestScope对象中取出保存的JavaBean数据,在页面中显示。

实验:JavaBean类Stu.java的主要代码如下:

package entity;

public class Stu {
private int userid;
private String username;
private String password;
private String regip;
private String regtime;
public int getUserid() {
return userid;
}
public void setUserid(int userid) {
this.userid = userid;
}
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 getRegip() {
return regip;
}
public void setRegip(String regip) {
this.regip = regip;
}
public String getRegtime() {
return regtime;
}
public void setRegtime(String regtime) {
this.regtime = regtime;
}

}

DAO类StuDao.java的主要代码如下:

package dao;
import com.mysql.jdbc.;
import java.sql.
;

import db.DBUtil;
import entity.Stu;

public class StuDao {
public Stu validateLogin(String username,String password){
Stu stu=new Stu();
java.sql.Connection conn=null;
java.sql.PreparedStatement pre=null;
java.sql.ResultSet rs=null;

try{
conn=DBUtil.getConnection();
String sql="select * from stu where username=? and password=?";
pre=conn.prepareStatement(sql);
pre.setString(1, username);
pre.setString(2, password);
rs=pre.executeQuery();
if(rs.next()){
stu.setUserid(rs.getInt("userid"));
stu.setUsername(rs.getString("username"));
stu.setPassword(rs.getString("password"));
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(rs!=null)
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(pre!=null)
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(conn!=null)
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return stu;
}
}

Servlet LoginHandle.java的doGet方法主要代码如下

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username = "";
String password = "";
HttpSession session = request.getSession();//需要import javax.servlet.http.HttpSession类
username = request.getParameter("userName");
password = request.getParameter("passWord");
StuDao studao=new StuDao();
Stu stu=studao.validateLogin(username, password);
if(stu.getUsername!=null){
session.setAttribute("stu", stu);
response.sendRedirect(request.getContextPath()+"/stu/notice.jsp");
}else{
response.sendRedirect(request.getContextPath()+"/index.jsp");
}
}

原文地址:https://blog.51cto.com/14513127/2482483

时间: 2024-10-12 00:38:00

JavaWeb数据库应用开发基础的相关文章

AndoridSQLite数据库开发基础教程(10)

AndoridSQLite数据库开发基础教程(10) 添加触发器 触发器(TRIGGER)是由事件来触发某个操作.这些事件包括INSERT.DELETE.UPDATE和UPDATE OF.当数据库系统执行这些事件时,会激活触发其执行相应的操作.下面为数据库添加触发器.操作步骤如下: (1)打开的数据库,单击左下角的齿轮按钮,选择其中的Create Trigger选项,弹出Trigger Creator对话框,如图1.23所示. 图1.23  Trigger Creator对话框 (2)在Trig

Java Web基础教程(二)开发基础

Java Web基础教程(二)开发基础 转载:Future魏来 前言 Java web是一种基于B\S(浏览器\服务器)架构的网络应用程序的技术实现.这种结构的Web应用程序被大量的企业级应用所采用.随着Web应用程序的规模不断扩大,传统的Web开发模式无法满足日渐复杂的业务需要,所以出现了更加合理更加先进的MVC开发模式.随之而来的也出现了一系列的基于MVC模式的开发框架,Struts框架.Spring MVC 等. 1. Web 技术的发展 1. 第一阶段 静态网站 Web技术出现伊始,由于

深入理解iPhone数据持久化(手把手教你iphone开发 – 基础篇)

在所有的移动开发平台数据持久化都是很重要的部分:在j2me中是rms或保存在应用程序的目录中,在symbian中可以保存在相应的磁盘目录中和数据库中.symbian中因为权限认证的原因,在3rd上大多数只能访问应用程序的private目录或其它系统共享目录.在iphone中,apple博采众长,提供了多种数据持久化的方法,下面笔者会逐个进行详细的讲解. iphone提供的数据持久化的方法,从数据保存的方式上讲可以分为三大部分:属性列表.对象归档.嵌入式数据库(SQLite3).其他方法. 一.属

JavaEE开发基础

1 JavaEE简介 Java平台有三个版本,分别是JavaSE(Java Platform, Standard Edition),JavaEE(Java Platform, Enterprise Edition)和JavaME(Java Platform, Micro Edititon). JavaSE以前称为J2SE,适用于桌面系统开发,它包含了支持Java Web服务开发的类,并为JavaEE提供基础.JavaEE以前称为J2EE,适用于企业级应用开发,它是在JavaSE的基础上构建的,它

ASP.Net MVC开发基础学习笔记(3):Razor视图引擎、控制器与路由机制学习

首页 头条 文章 频道                         设计频道 Web前端 Python开发 Java技术 Android应用 iOS应用 资源 小组 相亲 频道 首页 头条 文章 小组 相亲 资源 设计 前端 Python Java 安卓 iOS 登录 注册 首页 最新文章 经典回顾 开发 Web前端 Python Android iOS Java C/C++ PHP .NET Ruby Go 设计 UI设计 网页设计 交互设计 用户体验 设计教程 设计职场 极客 IT技术

.NET基础拾遗(5)多线程开发基础

Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理基础 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 一.多线程编程的基本概念 下面的一些基本概念可能和.NET的联系并不大,但对于掌握.NET中的多线程开发来说却十分重要.我们在开始尝试多线程开发前,应该对这些基础知识有所掌握,并且能够在操作系统层面理解多线程的运行方式. 1.1 操作系统层面的进程和线程 (1)进程 进程代表了操作系统上运行着的一个应用程序.进程拥有自己的程序块

iOS开发基础知识--碎片2

iOS开发基础知识--碎片2 六:获得另一个控件器,并实现跳转 UIStoryboard* mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; UIViewController *registerViewController = [mainStoryboard instantiateViewControllerWithIdentifier:@"registerView

[转]JavaEE开发基础

JavaEE开发基础 1 JavaEE简介 Java平台有三个版本,分别是JavaSE(Java Platform, Standard Edition),JavaEE(Java Platform, Enterprise Edition)和JavaME(Java Platform, Micro Edititon). JavaSE以前称为J2SE,适用于桌面系统开发,它包含了支持Java Web服务开发的类,并为JavaEE提供基础.JavaEE以前称为J2EE,适用于企业级应用开发,它是在Java

MySQL技术分类一:DB应用开发基础整理

MySQL技术分类整理一:DB应用开发基础1.库1).创建库syntax:CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name    [create_specification] ... create_specification:    [DEFAULT] CHARACTER SET [=] charset_name  | [DEFAULT] COLLATE [=] collation_name 注:如果不使用if not exists,则当数据库