`

Java Web快速入门——第5讲

阅读更多

1、JavaBean
 
    JavaBean是使用Java语言编写的组件。组件是组成一个大的系统的一部分,并且组件能够完成特定的功能,能够共享。
    可以认为JavaBean是Java类,但是具有特定的功能,并且这些功能是共享的。例如,连接数据库的功能可以封装单独的Java类,常用处理方法可以封装成JavaBean。

2、早期的JSP中提供的对JavaBean的支持

   <jsp:useBean>标签用于定义JavaBean的对象;<jsp:setProperty>标签用于设置JavaBean的属性;<jsp:getProperty>用于获取并输出JavaBean的属性。
   因为Java Web中,很少在JSP中直接访问JavaBean,所以实际上这些标签几乎没有用。现在主要在Servlet中访问JavaBean。

3、JavaBean的编写和用法

   例:以用户信息验证为例介绍JavaBean的编写。
 
   1)声明包
package bean;

   2)引入相应的类或者包
import java.sql.*;
// java.sql是访问数据库所需要的包

   3)类头的定义
public class UserBean

   4)成员变量
private String username;
private String userpass;

   5)构造方法
// JavaBean要求应该提供一个无参数的构造方法
   public UserBean(){
   }

   public UserBean(String username,String userpass){
      this.username = username;
      this.userpass = userpass;
   }

   6)对属性进行操作的方法
   包括获取属性值的方法和对属性进行赋值的方法。
   命名方法:
   对于普通属性来说,如果属性为a,应该提供setA(属性类型 a)方法和getA()方法。
   对于布尔类型的属性来说,应该提供类似于isA()方法。
   public void setUsername(String username){
      this.username = username;
   }

   public String getUsername(){
      return username;
   }

   public void setUserpass(String userpass){
      this.userpass = userpass;
   }

   public String getUserpass(){
      return userpass;
   }

   7)功能类方法
   该JavaBean完成的功能是判断用户信息是否合法,需要在JavaBean中编写相应的方法。  
   public boolean login(){
      return username.equals(userpass);
   }

   8)编译JavaBean
   9)部署
   所有的Java类都应该放在WEB-INF下面的classes下面,所以该JavaBean也应该放在这个地方。

4、使用JDBC的准备工作

   JDBC是Java DataBase Connectivity的缩写,是一组标准的接口,用于完成Java应用与各种数据库之间的交互。
   要使用JDBC需要做哪些准备工作?
   1)创建数据库
   2)得到JDBC驱动程序,驱动程序是完成具体的交互过程的,每种数据库有自己特定的驱动程序,从数据库管理系统的提供商的网站下载
   3)要知道数据库的相关信息:JDBC驱动程序的名字、数据库的位置、数据库的端口、用户名和口令、url的格式(建立连接的时候用)
   注意:我们使用JDBC-ODBC桥的方式连接数据库。JDBC-ODBC桥是一种类型的驱动程序,共有4种类型的驱动程序,JDBC-ODBC桥是建立在ODBC数据源基础上的。驱动是JDK中附带的,不用下载。

5、创建数据库及测试数据
create table usertable
(
   username varchar(10) primary key,
   userpass varchar(10)
)
insert into usertable values('lisi','lisi');
insert into usertable values('zhangsan','zhangsan');

6、创建ODBC数据源
   在 开始--〉设置--〉控制面板-->管理工具--〉数据源(ODBC)  设置ODBC数据源的名字为bookstore
7、修改login方法,通过数据库进行验证
   1)使用JDBC连接数据库的基本过程
   加载驱动程序;
   建立与数据库之间的连接;
   创建一个执行SQL语句的语句对象;
   编写要执行的SQL语句;
   使用语句对象执行SQL语句;
   如果有结果,需要对结果进行处理;
   关闭相关对象;
   注意:异常处理。

   2)修改login方法
   public boolean login() throws Exception{
      // return username.equals(userpass);
      // 第一步:加载驱动程序,如果使用其它的驱动程序,写出相应的名字即可
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

      // 第二步:建立连接,第一个参数是url(定位数据库),第二个参数是用户名,第三个参数是口令
      Connection con = DriverManager.getConnection("jdbc:odbc:bookstore","","");  // bookstore是所创建的ODBC数据源的名字

      // 第三步:创建SQL语句
      String sql = "select * from usertable where username=? and userpass=?";

      // 第四步:创建语句对象,用于执行SQL语句的
      PreparedStatement stmt = con.prepareStatement(sql);

      // 对变量赋值,第一个参数表示变量的序号(第几个问号),第二个参数表示所赋的值
      stmt.setString(1,username);
      stmt.setString(2,userpass);

      // 第五步:执行SQL语句,因为有查询结果,所以使用executeQuery方法,结果保存在rs中
      ResultSet rs = stmt.executeQuery();

      //  rs相当于一个表格,有若干行、若干列组成,指针指向第一条记录的前面
      // 第六步:对结果进行处理,使用next方法进行遍历,使用get方法得到当前行的列
      boolean b = rs.next();

      // 第七步:关闭相关对象
      rs.close();
      stmt.close();
      con.close();

      return b;     
   }

   3)修改LoginProcessServlet.java

修改后的代码为:

package servlet;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

import bean.*;

public class LoginProcessServlet extends HttpServlet
{
  public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
  {
        // 获取用户输入的信息
        String username = request.getParameter("username");
        String userpass = request.getParameter("userpass");

        // 调用JavaBean,创建对象、初始化、然后调用方法
        UserBean user = new UserBean();
        user.setUsername(username);
        user.setUserpass(userpass);
        boolean b = false;
        try{
            b = user.login();
        }catch(Exception e){
            // 当产生异常的时候,把异常信息输出在界面上
                // 设置编码方式
                response.setContentType("text/html;charset=gb2312");
                // 得到输出流对象
                PrintWriter out = response.getWriter();
                out.println(e.toString());
                return;
        }

        // 转向响应界面
        if(b){
           RequestDispatcher rd = request.getRequestDispatcher("success.jsp");  // 跳转到成功的页面
           rd.forward(request,response); // 完成跳转
        }else{
           RequestDispatcher rd = request.getRequestDispatcher("index1.jsp");  // 跳转到登录页面
           rd.forward(request,response); // 完成跳转
        }
/*
        if( username.equals("zhangsan") && userpass.equals("zhangsan") )
        {
           RequestDispatcher rd = request.getRequestDispatcher("success.jsp");  // 跳转到成功的页面
           rd.forward(request,response); // 完成跳转
        }else
        {
           RequestDispatcher rd = request.getRequestDispatcher("index1.jsp");  // 跳转到登录页面
           rd.forward(request,response); // 完成跳转
        }
*/
  }

  public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
  {
     doGet(request,response);
  }

}


找到:
        boolean b = user.login();
修改为:     
        boolean b = false;
        try{
            b = user.login();
        }catch(Exception e){
            // 当产生异常的时候,把异常信息输出在界面上
                // 设置编码方式
                response.setContentType("text/html;charset=gb2312");
                // 得到输出流对象
                PrintWriter out = response.getWriter();
                out.println(e.toString());
                return;
        }

分享到:
评论

相关推荐

    Java Web快速入门——全十讲

    ### Java Web快速入门——全十讲 #### 一、Java与Web开发的融合:JavaEE标准框架 在探讨Java Web开发之前,我们首先要理解Java在Web领域的定位。Java不仅仅是一种编程语言,它还是一套完整的生态系统,适用于各种...

    Java_Web快速入门——全十讲

    以上是对“Java_Web快速入门——全十讲”的部分知识点进行了详细的总结,这些知识点涵盖了 Java Web 技术的基础概念、核心技术和实践应用,对于初学者来说是非常宝贵的参考资料。接下来的几讲会继续深入探讨更高级的...

    JSP快速入门教程——全十讲

    **第五讲:EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)** EL是JSP 2.0引入的表达式语言,简化了数据访问。JSTL是一组标准标签库,用于执行常见的JSP任务,如循环、条件判断等。本讲...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    第5章 Web应用的缔造者 ——Servlet技术 5.1 本章学习任务 5.1.1 本章知识体系 5.1.2 实例开发任务 5.2 与时俱进——了解Servlet技术 5.2.1 初步认识Servlet 5.2.2 Servlet与JSP的区别 5.3 为我所用——Servlet技术...

    《Java高手真经:Java Web高级开发技术》读书笔记模板.pptx

    * 第5课:消息驱动Bean(Message-Driven Bean)——接收JMS消息 + JMS与消息驱动Bean的工作原理 + 处理点对点消息——队列Queue + 处理发布/订阅消息——主题Topic * 第6课:实体Bean(Entity Bean)——Java持久...

    [翻译]Firefox OS开发入门——第一个app

    Firefox OS,最初称为Boot to Gecko(B2G),旨在打破传统移动操作系统对特定编程语言的依赖,如iOS的Objective-C和Android的Java,转而支持HTML5作为主要开发语言。尽管底层系统是Linux,但其核心是围绕Web技术构建...

    深入体验Java Web开发内幕

    4.2 Servlet开发入门  4.3 Servlet的特点及运行过程  4.4 ServletConfig接口  4.5 GenericServlet与HttpServlet类  4.6 ServletContext接口  4.7 思考与实践 第5章 HttpServletResponse的...

    《java web编程宝典-十年典藏版》 源码

    《Java Web编程宝典——十年典藏版》是一本深入探讨Java Web开发的权威书籍,其源码提供了丰富的实例,帮助读者深入理解并实践相关技术。这本书覆盖了从基础到高级的Java Web开发各个方面,包括Servlet、JSP、Java...

    重磅!《Go Web编程实战派从入门到精通》随书源码开源啦,Go语言-Web-goWebActualCombat.zip

    《Go Web编程实战派从入门到精通》是一本专注于Go语言在Web开发领域的专著,其开源的随书源码库名为"Go语言-Web-goWebActualCombat",压缩包内的主要内容是goWebActualCombat-master目录,这代表了一个完整的Go语言...

    云应用开发 ——Google App Engine & Google Web Toolkit入门指南

    ### 云应用开发 ——Google App Engine & Google Web Toolkit入门指南 #### 第1章 应该了解下 ##### 1.1 云基本知识 云计算是一种通过互联网提供按需计算资源和服务的方式,包括网络、服务器、存储、应用程序和...

    JAVA入门教程21天学通JAVA2第三版

    ### JAVA入门教程21天学通JAVA2第三版——关键知识点解析 #### 一、JAVA入门书籍推荐 - **《Java语言》**:适合初学者,全面覆盖Java基础语法及面向对象的基本概念。 - **《Thinking in Java》**:虽然内容深入且...

    Java基础入门教程

    还会介绍如何编写并运行第一个Java程序——经典的"Hello, World!"示例。 3. **JAVA基本程序实践**:在理论知识的基础上,这部分将深入到实际编程中,涵盖类和对象的概念,这是面向对象编程的基础。学习者会了解如何...

    JSF入门必读——JSF入门基础

    JavaScript Server Faces(JSF)是Java平台上用于构建Web应用程序的一种框架,它旨在简化Web开发,尤其是在处理用户界面和服务器端逻辑交互方面。JSF的核心设计理念是通过组件模型、事件驱动和声明式编程来抽象出...

    从零开始——Java基础培训教程

    【Java基础培训教程】是为初学者设计的一套详尽的学习资源,涵盖了从入门到进阶的各个环节。在这个教程中,我们将深入理解Java语言的基本概念,掌握编程技巧,并熟悉常用的开发工具,如Eclipse、NetBeans和Struts。...

    java+web开发教程

    在“Java Web开发教程——入门与提高篇(JSP+Servlet)”这个教程中,你将系统学习这些知识点,逐步掌握如何使用Java进行Web开发,建立起从零到一的实战能力。无论是对HTTP协议的理解,还是对Java Web组件的运用,都...

    Eclipse Web开发从入门到精通(实例版)

    #### 第5章 数据库开发实例——学生成绩管理系统 通过开发一个学生成绩管理系统,详细讲解了如何使用HSQLDB数据库、SQLExplorer插件、JavaBean以及DAO设计模式来实现数据的增删查改。这一章节不仅教授了数据库开发的...

    java基础知识详解 Java入门必看 Java面试题集锦

    这份资料集主要涵盖Java基础知识、初学者入门指南以及常见的Java面试题,旨在帮助学习者系统地理解和掌握Java的核心概念。 首先,Java基础知识是理解任何Java程序的基础。这包括: 1. **Java环境搭建**:学习如何...

    java编程 入门第一步 jdk安装 路径增加 第一个java范例

    本文将详细讲解Java编程的“第一步”——JDK的安装、环境变量配置以及编写并运行你的第一个Java程序。 首先,我们来了解一下JDK(Java Development Kit)。JDK是Oracle公司提供的Java开发工具包,包含了编译Java源...

Global site tag (gtag.js) - Google Analytics