第九野,DJ野,学习,休闲,生活,分享,社区,~~~,路人乙,很高兴你能来这里! SiteMap | About Us | Guest Book | Contact Us | Search | Tags | Rss
第九野(DJ野)~生活学习休闲情感分享社区~分享一切~All for me , All for you !
Search 
<< 我们还需要JSP吗?你快回来,我一人忽悠不来! >>

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

字体大小:   

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

下载:http://sonic.peakle.net/download/sonic011.rar


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

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

打开Eclipse

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

创建jsf框架

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

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

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


<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<context-param>

<param-name>javax.faces.CONFIG_FILES</param-name>

<param-value>/WEB-INF/faces-config.xml</param-value>

</context-param>

<servlet>

<servlet-name>Faces Servlet</servlet-name>

<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>

<load-on-startup>0</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>Faces Servlet</servlet-name>

<url-pattern>*.faces</url-pattern>

</servlet-mapping>

</web-app>



现在创建两个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



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

<faces-config >

<managed-bean>

<managed-bean-name>userValidator</managed-bean-name>

<managed-bean-class>com.jsf.UserValidator</managed-bean-class>

<managed-bean-scope>request</managed-bean-scope>

</managed-bean>

</faces-config>



再次配置另一个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属性的第一个字母使用的是小写



好,确定,完成

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

<managed-bean>

<managed-bean-name>loginBean</managed-bean-name>

<managed-bean-class>com.jsf.LoginBean</managed-bean-class>

<managed-bean-scope>request</managed-bean-scope>

<managed-property>

<property-name>uv</property-name>

<value>#{userValidator}</value>

</managed-property>

</managed-bean>



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



现在创建jsp文件

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

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

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



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



新增的配置信息如下:

<navigation-rule>

<from-view-id>/login.jsp</from-view-id>

<navigation-case>

<from-outcome>success</from-outcome>

<to-view-id>/ok.jsp</to-view-id>

</navigation-case>

<navigation-case>

<from-outcome>failure</from-outcome>

<to-view-id>/error.jsp</to-view-id>

</navigation-case>

</navigation-rule>

<navigation-rule>

<from-view-id>/ok.jsp</from-view-id>

</navigation-rule>

<navigation-rule>

<from-view-id>/error.jsp</from-view-id>

</navigation-rule>





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

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>

<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>

<%@ page language="java" pageEncoding="UTF-8"%>

<html>

<head>

<title>

Login

</title>

</head>



<body>

<f:view>

<h:form>

<h:panelGrid columns="3">

<h:outputLabel for="username" value="User Name:" />

<h:inputText id="username" value="#{loginBean.username}" required="true" />

<h:message for="username" />

<h:outputLabel for="password" value="Password:" />

<h:inputSecret id="password" value="#{loginBean.password}" required="true" />

<h:message for="password" /> 这里的password要和上一行的id="password"对应才可以返回错误消息

</h:panelGrid>

<h:panelGrid>

<h:panelGroup>

<h:commandButton value="Login" action="#{loginBean.login}" />

</h:panelGroup>

</h:panelGrid>

</h:form>

</f:view>

</body>

</html>



修改 index.jsp,代码如下:

<html>

<head>

<title>Index</title>

</head>

<body>

<a href="login.faces">Login</a>

</body>

</html>



修改 ok.jsp,代码如下:

<html>

<head>

<title>Login OK!!!</title>

</head>

<body>

Login Ok!!!<br>

</body>

</html>



修改 error.jsp,代码如下:

<html>

<head>

<title>Error!!!</title>

</head>

<body>

Error!!!<br>

</body>

</html>



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

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

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



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



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

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




下一步,使用默认设置

下一步,如图




点击 完成



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



配置完成后,内容如下:

<?xml version='1.0' encoding='UTF-8'?>

<!DOCTYPE hibernate-configuration PUBLIC

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

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



<!-- Generated by MyEclipse Hibernate Tools. -->

<hibernate-configuration>



<session-factory>

<property name="myeclipse.connection.profile">conn_mysql</property>

<property name="connection.url">jdbc:mysql://localhost:3306/test</property>

<property name="connection.username">root</property>

<property name="connection.password">root</property>

<property name="connection.driver_class">com.mysql.jdbc.Driver</property>

<property name="dialect">org.hibernate.dialect.MySQLDialect</property>

</session-factory>

</hibernate-configuration>



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

<property name="show_sql">true</property>



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

<hibernate-configuration>



<session-factory>

<property name="myeclipse.connection.profile">conn_mysql</property>

<property name="connection.url">jdbc:mysql://localhost:3306/test</property>

<property name="connection.username">root</property>

<property name="connection.password">root</property>

<property name="connection.driver_class">com.mysql.jdbc.Driver</property>

<property name="show_sql">true</property>

<property name="dialect">org.hibernate.dialect.MySQLDialect</property>

</session-factory>

</hibernate-configuration>



点击 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




回到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";



}

}



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

<< 我们还需要JSP吗?你快回来,我一人忽悠不来! >>

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

网站地图 | 合作伙伴 | 隐私保护 | 版权声明 | 商业合作 | 联系我们