利用JSF创建登录验证
环境要求:
服务器:Tomcat6.0或更高,jboss6或更高
集成开发环境:MyEclipse 8.6 或更高
第一步:创建JSF工程
通过菜单打开创建“Web Project”的向导,如图,然后点击“Finish”按钮完成创建。
然后在左侧工程栏处右键单击对应工程,选择Myeclipse->Add JSF Capabilities如下图:
第二步:设置对JSF的支持
在工程上点右键,在弹出的快捷菜单中按图2进行选择,弹出如图对话框,点击“finish”按钮。
第三步:编写页面
删除原有的index.jsp页面,通过菜单打开创建jsp文件的向导如图。
确保“Template to use”选择为“Default JSF template”,点击“Finish”按钮。
创建一个JSP页面:index.jsp。在<@ page ....%>之后加入如下内容,完成对JSF标签库的引入。
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
然后在<body>和</body>之间加入如下代码
<f:view>
<h1>欢迎进入JSF世界</h1>
</f:view>
保存。
第四步:访问JSF页面
首先将此工程发布到Tomcat并启动。
打开浏览器,在地址栏中输入:http://localhost:8080/jsf/index.faces,
实验结果:
2. 编写Manager Bean
第一步:创建一个包:cn.bean。
第二步:创建一个名叫UserBean的Java Bean并桂到cn.bean包中,其有两个成员:name(名字)和passwd(密码)。
第三步:配置Bean
打开WEB-INF/faces-config.xml,切换到“Design”页面,如图5,选择“Managed Beans”
点击“Add”按钮,打开新窗口,如图。“Class”中输入上面建立的UserBean的完整类名,“Name”中输入UserBean的实例对象名(将在代码中引用),点击“Finish”按钮完成。
3. 使用静态导航规则
第一步:修改前面的index.jsp页面<body>和</body>之间的内容为:
<f:view> <h2 align="center">用户登录</h2> <h:form> <div align="center" style="300px;margin:5px auto;"> 用户名:<h:inputText value="#{userBean.name}" /><br /> 密码:<h:inputSecret value="#{userBean.passwd}" /> <br /> <h:commandButton value="Go" action="login"></h:commandButton> </div> </h:form> </f:view>
第二步:创建一个新的JSP页面:welcome.jsp。Body中内容如下:
<f:view> <h:outputText value="#{userBean.name}" />欢迎进本社区。 </f:view>
第三步:创建导航规则
打开“faces-config.xml”文件,切换到“Flow”选项卡,创建规则如图。
注意:导航线的“From Outcome”的值为“login”,必须与index.jsp中<h:commandButto>的aciton属性值一致。
第四步:重新启动Tomcat,然后浏览测试。
1. 使用动态导航
为上面的用户登录添加验证功能。在UserBean中添加如下方法:
public String check(){ if("John".equals(name) && "123456".equals(passwd)){ return "login"; } else{ return "error"; } }
修改index.jsp中<h:commandButto>的aciton属性值为“#{userBean.check}”。
新建一个页面:error.jsp;body内容为:<h3 style=”color:red”>用户名或密码错误....</h3>
辑导航规则如图:
实验结果:
输入用户名John密码123456则登陆成功,否则登录失败;
注意点:
1)bean建立时,其中包含变量以及相应的方法,对于每个变量xxx都应该有setXxx()和getXxx()方法;
2)对于bean,在manage bean中进行托管时,name中的名称应该与jsp页面当中EL表达式中的变量名称保持一致;
3)对于导航规则图来说,应该在from outcome中输入对应的字符所对应的应该跳转的页面,如下图:
就到这吧,暂时只想到了这么多,,,