- 浏览: 79798 次
- 性别:
- 来自: 大连
文章分类
最新评论
-
一辈子的咲子推:
其实很多学生考试不及格未必就是不学习,太多学生把大学几年时间全 ...
真的不想监考 -
jackroomage:
看错了,你写的没有问题。sorry!!!
Java Web实践专题——访问路径问题 -
jackroomage:
<a href="./../bb/b_a.js ...
Java Web实践专题——访问路径问题
目标:
l 掌握JDBC链接数据库的基本过程;
l 掌握使用JDBC进行数据查询。
主要内容:
l 在上一次的实例基础上,通过连接数据库完成用户登录功能,介绍JDBC的基本用法;
l 通过显示所有用户信息进一步介绍JDBC的用法和查询结果的处理。
1、JDBC概念
Java Database Connectivity的缩写,用于连接Java应用程序与各种关系数据库的标准接口。对于编程人员来说,连接任何数据库都是相同的。
2、要使用JDBC开发应用需要哪些准备工作?
安装数据库,包括数据库表的创建;
根据数据库的类型,得到数据库的JDBC驱动程序,不同的数据库管理系统需要不同的JDBC驱动程序,并且不同版本的数据库管理系统需要的驱动程序有可能不同的;这里使用Oracle数据库,驱动程序需要放在WEB-INF\lib下面。
数据库的相关信息:数据库的IP地址,服务的端口号,数据库的名字,连接数据库的用户名和密码。
3、举例:使用数据库对用户登录信息进行验证。
需要修改User.java中验证用户信息的方法。
1)在类的前面增加了一个import语句:
import java.sql.*;
2)增加的后的check方法如下:
public boolean check()
{
/*
if(username==null || userpass==null)
return false;
if(username.equals("zhangsan") && userpass.equals("lisi"))
{
return true;
}else{
return false;
}
*/
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
boolean b = true;
try{
// 指出连接数据库所需要的驱动程序
Class.forName("oracle.jdbc.driver.OracleDriver");
// 建立与数据库之间的连接
//myserver修改为数据库服务器IP,mydb为数据库名
con = DriverManager.getConnection("jdbc:oracle:thin:@myserver:1521:mydb","scott","tiger");
// 编写查询数据库信息的SQL语句
String sql="select * from usertable where username='"+username+"' and userpass='"+userpass+"'";
System.err.println(sql);
// 创建语句对象,用于执行SQL语句
stmt = con.createStatement();
// 执行SQL语句得到结果集
rs = stmt.executeQuery(sql);
// 判断rs中是否有数据
if(rs.next())
b = true;
else
b = false;
}catch(Exception e){
System.out.println(e.getMessage());
}
finally{
// 关闭相关对象
if(rs!=null) try{ rs.close(); }catch(Exception ee){}
if(stmt!=null) try{ stmt.close(); }catch(Exception ee){}
if(con!=null) try{ con.close(); }catch(Exception ee){}
}
return b;
}
4、运行测试
可以使用数据库中的用户名和口令进行登录。
5、向页面传递查询结果
很多时候,客户端需要从服务器端得到数据并显示,因为数据的查询是由JavaBean完成的,对JavaBean的调用是通过Servlet完成的,Servlet中可以得到查询的结果,但是显示信息是由JSP页面完成的,如何把Servlet中查询的信息传递给JSP页面呢?
前面介绍过可以通过request、session和application传递信息,因为可以让Servlet和JSP处于相同的请求,所以3个对象都可以使用。但是因为session和application的保存时间比较长,容易造成服务器资源的浪费,所以通常采用request存储。
下面通过查询并显示所有信息的功能来介绍具体用法。需要完成的工作如下:
l 在User.java中添加查询所有用户信息的方法;
l 编写查询所有用户信息的控制器;
l 编写显示信息的JSP页面。
6、在User.java中添加方法
查询所有用户信息的方法如下:
public ArrayList getAllUser()
{
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
ArrayList users = new ArrayList();
try{
// 指出连接数据库所需要的驱动程序
Class.forName("oracle.jdbc.driver.OracleDriver");
// 建立与数据库之间的连接
con = DriverManager.getConnection("jdbc:oracle:thin:@myserver:1521:mydb","scott","tiger");
// 编写查询数据库信息的SQL语句
String sql="select * from usertable";
// 创建语句对象,用于执行SQL语句
stmt = con.createStatement();
// 执行SQL语句得到结果集
rs = stmt.executeQuery(sql);
// 遍历结果集
while(rs.next())
{
String username = rs.getString(1);
String userpass = rs.getString(2);
// java.util.Date birthday = rs.getDate(3);
// int age = rs.getInt(4);
User user = new User();
user.setUsername(username);
user.setUserpass(userpass);
users.add(user);
}
}catch(Exception e){
System.out.println(e.getMessage());
}
finally{
// 关闭相关对象
if(rs!=null) try{ rs.close(); }catch(Exception ee){}
if(stmt!=null) try{ stmt.close(); }catch(Exception ee){}
if(con!=null) try{ con.close(); }catch(Exception ee){}
}
return users;
}
需要在类的前面引入java.util包,代码如下:
import java.util.*;
7、编写控制器
代码如下:
package servlet;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javabean.*;
import java.util.*;
public class GetAllUser extends HttpServlet
{
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws IOException,ServletException
{
// 第一步:获取用户的输入信息,这里不需要
// 第二步:调用JavaBean
User user = new User();
ArrayList users=null;
users = user.getAllUser();
// 第三步:传值
request.setAttribute("users",users);
// 第四步:选择一个界面对用户进行响应
String forward="userlist.jsp";
RequestDispatcher rd = request.getRequestDispatcher(forward);
rd.forward(request,response);
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws IOException,ServletException
{
doGet(request,response);
}
}
这里假设使用userlist.jsp对用户进行响应。
8、配置控制器
在Web.xml中添加如下代码:
<servlet>
<servlet-name>getAllUser</servlet-name>
<servlet-class>servlet.GetAllUser</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>getAllUser</servlet-name>
<url-pattern>/getAllUser</url-pattern>
</servlet-mapping>
9、编写userlist.jsp响应
<%@ page contentType="text/html;charset=gb2312"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:forEach var="user" items="${users}">
用户名:${user.username} 口令:${user.userpass}<br>
</c:forEach>
这里的c:forEach标签用于循环处理,items指出循环遍历的集合,var声明循环变量,表示集合中的一个元素。循环体中通过表达式语言显示用户信息。
10、 运行测试
http://127.0.0.1:8080/ch7/getAllUser
参考教材:《Java Web程序设计基础教程》
发表评论
-
网页之间共享值
2007-03-19 13:49 454Web应用是由大量的网页组成的,运行的基本原理是:用户通过客 ... -
Java Web实践专题——Eclipse中CVS的使用
2007-03-19 14:50 602CVS概述 主要作用是管理代码的版本,尤其是多人协同开发的时 ... -
Eclipse中Web应用的开发
2007-03-30 09:35 507Eclipse中Web应用的开发 应用服务器:tomcat ... -
MVC模式在Java Web中的应用
2007-04-21 22:06 396流行的Java Web应用框架基本上都实现了MVC模型,下面分 ... -
Tomcat中连接池的配置和使用
2007-04-27 13:19 465对于大型网站来说,信 ... -
WebLogic中连接池错误Failed to Generate Wrapper Class的解决方案
2007-05-01 13:25 543很多人在使用Weblogic配置连接池之后,会碰到这样一个 ... -
Sun Java System Appliation Server中连接池的配置
2007-05-01 14:16 5011、准备驱动程序 把 ... -
Java Web中的分页显示——通过界面实现
2007-05-04 23:11 670在界面完成分页控制, ... -
Java Web中的分页显示——在模型中实现
2007-05-04 23:25 465在模型中实现分页显示,主要是在把查询的结果集转换成对象集合的 ... -
NetBeans中的几个快捷方式
2007-06-15 12:38 507几个比较常用的方便代码编写的功能如下: 1、引入用到的类 ... -
最好的Java Web开发的书应该是什么样子?
2007-06-20 14:50 687关于Java Web开发的技术非常多,JSP、Servet、J ... -
JSP培训(1)——概述
2007-08-21 08:35 520本文是JSP培训的笔记,是培训的第一次——概述。 (参考 ... -
JSP培训(2)——运行原理、文档结构、简单输入输出
2007-08-23 09:16 602目标: l 掌握Web应用的文档结构; l 掌握JSP ... -
JSP培训(3)——客户端验证、常用输出方式、JSTL基本用法
2007-08-30 09:49 512目标: l 掌握客户端验证的基本过程; l 掌握 ... -
JSP培训(4)——实例:登录功能、jsp:forward标签、jsp:include标签、include指令、EL、c:if
2007-08-30 09:55 768目标: l 进一步体会JSP应用; l 掌握表达 ... -
JSP培训(5)——使用JavaBean完成业务逻辑
2007-08-31 16:42 500目标: l 掌握什么是JavaBean; l 掌握如何 ... -
JSP培训(6)——使用Servlet作为控制器实现MVC模式
2007-09-04 13:38 614目标: l 初步理解MVC ... -
JSP培训(8)——添加功能和分页显示
2007-09-04 13:46 577学习目标: l 进一步掌握MVC设计模式; l 掌握添 ... -
JSP连接Microsoft SQL Server出错:Error establishing socket解决方法
2007-09-06 14:09 500安装SQL Server的补丁即可。 安装的时候需要注意:第 ... -
JSP培训(9)——使用MVC模式完成删除和修改功能
2007-09-10 15:43 657目标: l 进一步理解MVC模式; l 掌握删除功能的 ...
相关推荐
第6章 JSP——前后台更好地分离 79 6.1 JSP的概念 79 6.2 JSP页面的组成 80 6.2.1 JSP的指令元素 82 6.2.2 JSP的脚本元素 83 6.2.3 JSP的标准动作元素 85 6.2.4 JSP中的内置对象 87 6.3 实例——利用...
此外,还要考虑开发人员的水平,学习了两年的jsp开发,对于这个系统的编写,我想完整的之需要两个月就可以写出程序,再花上几天的调试,计划两个月左右就可以完成投入使用了。 我们掌握了数据库及其应用技术、...
11.6.1 使用MappingSqlQuery查询数据 11.6.2 使用SqlUpdate更新数据 11.6.3 使用StoredProcedure执行存储过程 11.6.4 SqlFunction类 11.7 小结 第12章 整合其他ORM框架 12.1 Spring整合ORM技术 12.2 在Spring中使用...
11.6.1 使用MappingSqlQuery查询数据 11.6.2 使用SqlUpdate更新数据 11.6.3 使用StoredProcedure执行存储过程 11.6.4 SqlFunction类 11.7 小结 第12章 整合其他ORM框架 12.1 Spring整合ORM技术 12.2 在Spring中使用...
第7章 ssh 2热身——构建新闻发布系统 427 7.1 门户网站新闻资讯基本分类 427 7.2 新闻发布系统需求分析 429 7.3 新闻发布系统功能设计 429 7.4 新闻栏目后台管理 432 7.4.1 展示层jsp 2+struts 2 标签库实现 ...
7.2.2、使用JSP的page指令导入所需要的JavaBean 7.2.3、使用<jsp:useBean>指令 7.3、JavaBean与表单 7.4、设置属性:<jsp:setProperty> 7.4.1、设置指定的属性 7.4.2、指定设置属性的参数 7.4.3、为属性设置...
7.2.2、使用JSP的page指令导入所需要的JavaBean 7.2.3、使用<jsp:useBean>指令 7.3、JavaBean与表单 7.4、设置属性:<jsp:setProperty> 7.4.1、设置指定的属性 7.4.2、指定设置属性的参数 7.4.3、为属性设置...
7.2.2、使用JSP的page指令导入所需要的JavaBean 7.2.3、使用<jsp:useBean>指令 7.3、JavaBean与表单 7.4、设置属性:<jsp:setProperty> 7.4.1、设置指定的属性 7.4.2、指定设置属性的参数 7.4.3、为属性设置...
7.2.2、使用JSP的page指令导入所需要的JavaBean 7.2.3、使用<jsp:useBean>指令 7.3、JavaBean与表单 7.4、设置属性:<jsp:setProperty> 7.4.1、设置指定的属性 7.4.2、指定设置属性的参数 7.4.3、为属性设置...
7.2.2、使用JSP的page指令导入所需要的JavaBean 7.2.3、使用<jsp:useBean>指令 7.3、JavaBean与表单 7.4、设置属性:<jsp:setProperty> 7.4.1、设置指定的属性 7.4.2、指定设置属性的参数 7.4.3、为属性设置...
7.2.2、使用JSP的page指令导入所需要的JavaBean 7.2.3、使用<jsp:useBean>指令 7.3、JavaBean与表单 7.4、设置属性:<jsp:setProperty> 7.4.1、设置指定的属性 7.4.2、指定设置属性的参数 7.4.3、为属性设置...
7.2.2、使用JSP的page指令导入所需要的JavaBean 7.2.3、使用<jsp:useBean>指令 7.3、JavaBean与表单 7.4、设置属性:<jsp:setProperty> 7.4.1、设置指定的属性 7.4.2、指定设置属性的参数 7.4.3、为属性设置...
7.2.2、使用JSP的page指令导入所需要的JavaBean 7.2.3、使用<jsp:useBean>指令 7.3、JavaBean与表单 7.4、设置属性:<jsp:setProperty> 7.4.1、设置指定的属性 7.4.2、指定设置属性的参数 7.4.3、为属性设置...
网上这本书的电子版不好这,这是用money换来的——和大家分享! 由于书太大,我把书分成两部分别上传。 内容简介 本书系统全面地介绍了Java中的各项主流技术,以及基于这些技术的商业化应用程序的开发技巧,在讲解...
4 Jive的中文问题及解决办法 5 Java程序的国际化和本地化介绍 6 Java的i18n问题 7 Java国际化——资源包的使用 8 国际化 9 Supported Encodings 10 native2ascii - Native-to-...
得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥验证签名结果,使用公钥初始化签名对象,用于...
得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥验证签名结果,使用公钥初始化签名对象,用于...