java jsf教程_使用jsf + hibernate制作一个login实例教学录像

速动画教程系列第11集

这一集将介绍jsf的基本使用

使用jsf + hibernate制作一个login实例

开发工具:Eclipse3.1、MyEclipse4.0.3、Tomcat、MySql

打开Eclipse

新建 web 工程,名称为login,j2ee版本为2.4

创建jsf框架

在工程目录上点右键-->MyEclipse-->Add JSF Capabilities

在弹出配置对话框时,使用默认的设置就可以了。

这时打开web.xml文件就可以看到以下的配置信息了

javax.faces.CONFIG_FILES

/WEB-INF/faces-config.xml

Faces Servlet

javax.faces.webapp.FacesServlet

0

Faces Servlet

*.faces

现在创建两个Bean,一个用来处理用户信息的验证,一个是和页面中的数据进行绑定

UserValidator.java

public class UserValidator {

// 这是验证用户名和密码的过程

public String validator(String username, String password) {

if ((username == null) || (username.length() < 1))

return "failure";

if ((password == null) || (password.length() < 1))

return "failure";

if ((username.equals("test")) && (password.equals("test")))

return "success";

else

return "failure";

}

}

LoginBean.java

public class LoginBean {

private String username;//用户名称

private String password;//密码

private UserValidator uv;//用户验证的实例

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public UserValidator getUv() {

return uv;

}

public void setUv(UserValidator uv) {

this.uv = uv;

}

// 用户登录过程

public String login() {

return uv.validator(username, password);

}

}

现在按下Ctrl + N 键,使用jsp的向导来配置这两个Bean

MyEclipse-->WEB-JSF-->Managed Bean

Project:login

选中:Open Config File in Editor

Name: userValidator 就是Bean中的一个,这里的name可以自己起一个,如将第一个字母改为小写userValidator

Class:com.jsf.UserValidator

Scope:request

点击完成生成配置内容如下:

userValidator

com.jsf.UserValidator

request

再次配置另一个Bean,不过这一回增加了一个属性

按下Ctrl + N 键,选择MyEclipse-->WEB-JSF-->Managed Bean

Project:login

选中:Open Config File in Editor

Name:loginBean

Class:com.jsf.LoginBean

Scope:request

点击add按钮

Name:uv这里的内容为LoginBean中的uv属性,这个可是不能乱填的

Class: 这个不填

点下一步

Property Value: #{userValidator} 这里花括号中的内容为刚才配置的UserValidator的name属性,name属性的第一个字母使用的是小写

好,确定,完成

配置文件中新增了如下代码:

loginBean

com.jsf.LoginBean

request

uv

#{userValidator}

在这一个bean中,它的uv属性被指定要在运行时注入一个com.UserValidator的实例。

现在创建jsp文件

打开WEB-INF目录下的faces-config.xml文件(如果你已经关闭了)

使用工具栏中的工具创建四个页面index.jsp、login.jsp、ok.jsp、error.jsp

使用工具栏中的工具navigation创建页面的关系

在弹出对话框中的From Outcome中分别填入success、failure

新增的配置信息如下:

/login.jsp

success

/ok.jsp

failure

/error.jsp

/ok.jsp

/error.jsp

现在编写login.jsp中的代码如下:

Login

这里的password要和上一行的id="password"对应才可以返回错误消息

修改index.jsp,代码如下:

Index

Login

修改ok.jsp,代码如下:

Login OK!!!

Login Ok!!!

修改error.jsp,代码如下:

Error!!!

Error!!!

好了,代码完成可以进行测试了

首先部署web程序到服务器,如果在这一段遇到错误的话请查看我以前发布的关于Eclipse+MyEclipse配置的录像

输入正确的用户名和密码 (test , test),提交后进入ok.jsp,输入错误的密码后进入error.jsp

JSF部份已经完成,现在添加Hibernate框架

在工程目录上点右键-->MyEclipse-->Add Hibernate Capabilities

在弹出的对话框中使用默认设置

dca0a61bb0c385eee90bb8af1eb5b2fe.gif

下一步,使用默认设置

下一步,如图

ea940f0e16580386591617d4eb80da21.gif

点击完成

在 hibernate 的配置图型介面中,点击New...创建一个数据库连接(具体方法请看录像)

配置完成后,内容如下:

/p>

"-//Hibernate/Hibernate Configuration DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

conn_mysql

jdbc:mysql://localhost:3306/test

root

root

com.mysql.jdbc.Driver

org.hibernate.dialect.MySQLDialect

在配置文件加入一行,增加一个属性,可以在状态栏中显示hibernate的查询语句

true

修改后的配置文件内容如下:

conn_mysql

jdbc:mysql://localhost:3306/test

root

root

com.mysql.jdbc.Driver

true

org.hibernate.dialect.MySQLDialect

点击Copy JDBC Driver and add to classpath将jdbc文件拷贝到lib目录中

现在启动MySql,并创建一张新表,这里我已经创建完成了,并在其中添加了一个用户名为test密码也是test的用户

CREATE TABLE `user` (

`ID` int(11) NOT NULL auto_increment,

`USERNAME` varchar(50) NOT NULL default '',

`PASSWORD` varchar(50) NOT NULL default '',

PRIMARY KEY(`ID`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1;

打开 MyEclipse 的数据浏览工具

选中user表,点右键-->Create Hibernate Mapping

dc9b95d6548d05b1558130bf4d4b1e9a.gif

回到MyEclipse状态中

打开UserValidator.java文件

修改为以下内容:

import java.util.List;

import org.hibernate.Query;

import org.hibernate.Session;

import org.hibernate.Transaction;

import com.Hibernate.SessionFactory;

public class UserValidator {

// 这是验证用户名和密码的过程

public String validator(String username, String password) {

if ((username == null) || (username.length() < 1))

return "failure";

if ((password == null) || (password.length() < 1))

return "failure";

// 创建连接

Session session = SessionFactory.currentSession();

// 创建事务

Transaction tx = session.beginTransaction();

// 创建对话

Query query = session

.createQuery("from User as u where u.username=? and u.password=?");

query.setString(0, username);

query.setString(1, password);

List list = query.list();

// 事务提交

tx.commit();

if (list.size()>0)

return "success";

else

return "failure";

}

}

现在完成了全部的代码,可以进行测试了,修改后代码将会读取数据库的信息进行验证

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值