接:Myeclipse开发struts+hibernate+spring新手入门---环境配置
如果您按照上篇文章配置成功,可以进行开发简单的J2EE项目。
开发前准备:
1、新建项目包:如下图:
Dao:数据层;service:逻辑层;web:web展现层。
2、建立好三层架构,部署好包名。建立一个jsp文件,取名为:login.jsp
代码如下:
<% @ taglib uri = " http://struts.apache.org/tags-bean " prefix = " bean " %>
<% @ taglib uri = " http://struts.apache.org/tags-html " prefix = " html " %>
<% @ taglib uri = " http://struts.apache.org/tags-logic " prefix = " logic " %>
<% @ taglib uri = " http://struts.apache.org/tags-tiles " prefix = " tiles " %>
< HTML >
< HEAD >
< TITLE > test < TITLE >
< HEAD >
< BODY >
< html:form action = " /login " method = " post " >
用户名: < html:text property = " username " size = " 15 " /> < br >
密 码: < html:password property = " password " size = " 15 " />< br >
< html:submit property = " submit1 " style = " FONT-WEIGHT:bold;COLOR:red " >
登 录
< html:submit >
< html:form >
< BODY >
< HTML >
3、配置struts-config.xml文件;建立action、formbean;
改配置可以自动生成,使用eclipse进行自动生成,在建立时,如下图,可直接生成对应的action类和formbean类。
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
3
4 <struts-config>
5 <data-sources />
6 <form-beans>
7 <form-bean name="LoginForm" type="com.test.web.form.LoginForm" />
8
9 </form-beans>
10
11 <global-exceptions />
12 <global-forwards />
13 <action-mappings>
14 <action attribute="LoginForm" input="/login.jsp" name="LoginForm" path="LoginAction" scope="request" type="com.test.web.action.LoginAction" validate="true">
15 <forward name="faile" path="faile.jsp" />
16 <forward name="success" path="success.jsp" />
17 </action>
18
19 </action-mappings>
20
21 <message-resources parameter="ApplicationResources" />
22 </struts-config>
对应生成的formbean如下代码所示:
1 import javax.servlet.http.HttpServletRequest;
2 import org.apache.struts.action.ActionErrors;
3 import org.apache.struts.action.ActionForm;
4 import org.apache.struts.action.ActionMapping;
5
6 /**
7 * MyEclipse Struts
8 * Creation date: 11-10-2005
9 *
10 * XDoclet definition:
11 * @struts.form name="LoginForm"
12 */
13 public class LoginForm extends ActionForm {
14
15 /** password property */
16 private String password;
17
18 /** username property */
19 private String username;
20
21
22 /**
23 * Method validate
24 * @param mapping
25 * @param request
26 * @return ActionErrors
27 */
28 public ActionErrors validate(
29 ActionMapping mapping,
30 HttpServletRequest request) {
31
32 /**对页面提交的元素进行验证,根据需要进行验证:在struts-config.xml中的 action-mapping配置设置validate="true"
33 * 以下验证才会在页面加载时生效.
34 */
35 ActionErrors errors = new ActionErrors();
36 if(username==null||username.equals(""))
37 {
38 errors.add("username",new ActionMessage("username.errors"));
39 return errors;
40 }
41 if(password==null||password.equals(""))
42 {
43 errors.add("password",new ActionMessage("password.errors"));
44 return errors;
45 }
46 return errors;
47 }
48
49 /**
50 * Method reset
51 * @param mapping
52 * @param request
53 */
54 public void reset(ActionMapping mapping, HttpServletRequest request) {
55
56
57 }
58
59 /**
60 * Returns the password.
61 * @return String
62 */
63 public String getPassword() {
64 return password;
65 }
66
67 /**
68 * Set the password.
69 * @param password The password to set
70 */
71 public void setPassword(String password) {
72 this.password = password;
73 }
74
75 /**
76 * Returns the username.
77 * @return String
78 */
79 public String getUsername() {
80 return username;
81 }
82
83 /**
84 * Set the username.
85 * @param username The username to set
86 */
87 public void setUsername(String username) {
88 this.username = username;
89 }
90
91 }
FormBean中验证后的提示需要在ApplicationResources_zh_CN.properties中配置提示错误信息.
1 username.null.error=\u5462\u79f0\u4e0d\u80fd\u4e3a\u7a7a
2 password.null.error=\u5bc6\u7801\u4e0d\u80fd\u4e3a\u7a7a
下面我们需要对WEB展现中对Action进行配置;我们在这里主要是针对登录进行开发.因此在action中需要完成以下步骤:
1、登录验证;验证用户名是否存在。验证该用户的密码是否正确。
2、增加cookie
3、提示登录成功。
在进行Action类的编写过程中,首先我们需要考虑到对数据的操作有如下步骤。
1、验证用户名是否存在,我们在service层需要提供一个接口:
1 Public boolean isExist(String user);
来判断用户名是否存在,同时要考虑该用户名对应的密码是否正确,需要提供接口:
1 Public UserBasicInfo findByUser(String user);
通过用户名来查找相关数据。
在Action中,我们同时要判断根据用户查找的用户密码是否正确。如果正确,增加cookie。并返回正常登录页面。如果用户不存在、该用户输入的密码与数据库中的密码不相符合。则在配置文件ApplicationResources_zh_CN.properties中,进行设置提示报错内容。并在页面中显示。
具体Action代码如下:
1 public ActionForward execute(
2 ActionMapping mapping,
3 ActionForm form,
4 HttpServletRequest request,
5 HttpServletResponse response) {
6 ActionMessages errors = new ActionMessages();
7 /**
8 * 取得登录用户名与密码
9 */
10 LoginForm lf=(LoginForm)form;
11 UserBasicInfoMgr uu = (UserBasicInfoMgr)getBean("userBasicInfoManager");
12 /**
13 * 验证用户名是否存在
14 */
15 if(uu.isExists(lf.getUsername()))
16 {
17 /**
18 * 验证该用户密码是否正确
19 */
20 if(uu.getBasicInfoByName(lf.getUsername()).getUserpwd().equals(StringUtil.encodePassword(lf.getPassword().trim(),"MD5")))
21 {
22 /**
23 * 用户状态为新增未激活,返回登录页面。不允许登录。
24 */
25 if(uu.getBasicInfoByName(lf.getUsername()).getUserstatus().toString().equals("1"))
26 {
27 errors.add("useract",new ActionMessage("user.activate.error"));
28 saveErrors(request,errors);
29 return mapping.findForward("relogin");
30 }
31 /**
32 * 用户状态为新增待核,返回登录页面。不允许登录。
33 */
34 if(uu.getBasicInfoByName(lf.getUsername()).getUserstatus().toString().equals("3"))
35 {
36 errors.add("usercheck",new ActionMessage("user.check.error"));
37 saveErrors(request,errors);
38 return mapping.findForward("relogin");
39 }
40 /**
41 * 用户状态为暂时锁定,返回登录页面。不允许登录。
42 */
43 if(uu.getBasicInfoByName(lf.getUsername()).getUserstatus().toString().equals("5"))
44 {
45 errors.add("userlock",new ActionMessage("user.lock.error"));
46 saveErrors(request,errors);
47 return mapping.findForward("relogin");
48 }
49 /**
50 * 用户状态为已删除,返回登录页面。不允许登录。
51 */
52 if(uu.getBasicInfoByName(lf.getUsername()).getUserstatus().toString().equals("6"))
53 {
54 errors.add("userdel",new ActionMessage("user.del.error"));
55 saveErrors(request,errors);
56 return mapping.findForward("relogin");
57 }
58 /**
59 * 判断cookie时间。并保存cookie
60 */
61 Cookie cookies = new Cookie("username", lf.getUsername());
62 cookies.setPath("/");
63 if(lf.getCookieDate() != null)
64 {
65 if(lf.getCookieDate().equals("0"))
66 cookies.setMaxAge(-1);
67 if(lf.getCookieDate().equals("1"))
68 cookies.setMaxAge(0x15180);
69 if(lf.getCookieDate().equals("2"))
70 cookies.setMaxAge(0x278d00);
71 if(lf.getCookieDate().equals("3"
分享到:
相关推荐
Myeclipse平台struts+hibernate+spring项目开发示例 接:Myeclipse开发struts+hibernate+spring新手入门---环境配置 如果您按照上篇文章配置成功,可以进行开发简单的J2EE项目。 开发前准备: 1、新建项目包:如下...
Myeclipse平台struts+hibernate+spring项目开发示例
这里介绍一下怎样采用开源的Spring,Hibernate以及Struts构建一个轻量级的架构 实例说明:一个网站登录的例子,比较简单,但能说明各层是如何协调工作的。 工具:jdk1.5,eclipse3.2,myeclipse5.0GA,mysql5.0,...
jsp+struts+hibernate开发示例。 最普通的增加、删除、更新操作。 最适合新人学习MVC模式(没有添加spring)。
该示例使用MyEclipse 5.5 IDE用来整合四个技术(Struts 1.2, Spring 2.0, Hibernate 3.2和Ajax技术)的轻量级的JavaEE。 操作步骤如下: 1. 下载并解压之后,使用MyEclipse导入工程 2. 找到demo目录中的.sql数据库...
Struts2与Spring、Hibernate三者整合的过程示例: 示例工具:MyEclipse 7.0、Tomcat 6.0、MySql
使用myeclipse集成struts,hibernate,spring的一个示例程序
开发环境:Windows XP sp3、SQL Server 2005、JDK 1.6、Struts2.1.6、Spring 2.0、Hibernate3.1、MyEclipse 5.5、Tomcat 6.0 使用步骤: 1、下载解压之后,使用IDE导入工程 2、把工程中的“演示数据脚本.sql”导入到...
在本文中,笔者将Struts2.0.6、Spring2.0.6和Hibernate3.1进行整合,希望通过这样的整合示例,让读者了解这些框架各自的特点,以便于在自己的项目中,根据实际情况,尽快的过渡到Struts2的时代。本文的内容基于...
本示例用的是MyEclipse5.0+Sql2000+Tomcat5.0; 工程中的没有(SSH)框架所需所有JAR包,需要自己导入; db.txt为创建表语句,用的是pubs数据库 博文链接:https://yqq.iteye.com/blog/157558
使用myeclipse 8.5开发环境 是学习JSP + SSH开发的好例子 在学习《21天学通JAVA WEB开发视频》过程编写的DEMO
目前最新版本的S2SH框架(struts2.3.16.3+spring4.0.4+hibernate4.3.5)的搭建DEMO,里面的配置齐全,xml都有配置demo,lib包下为整合的最小jar包,需要其他功能的自行添加,myeclipse项目,MVC三层都有示例class,可以直接...
现在就将笔者使用Myeclipse工具应用struts2 + spring2 + hibernate...在本文中,笔者将Struts2.0.6、Spring2.0.6和Hibernate3.1进行整合,希望通过这样的整合示例,让读者了解这些框架各自的特点,以便于在自己的项目中
自己做的一个Myeclipse Oracle9i hibernate3.2 Spring2.5 Struts2, 包删除了, 自己在myeclipse里添加就行了, 已经调试成功. 建表语句: create table CUSTOMER ( ID INTEGER not null, USERNAME VARCHAR2(12), ...
struts2最新版本,内含APACHE官网下载struts核心jar包,附数据库文件,MyEclipse 7.0开发,使用struts2 iterator标签,绝对是初学SSH的绝佳范例,互联网上仅此一份,没有更全的 注:如果自己用tomcat重新部署,需...
一个简单的采用spring+hibernate+struts访问mysql数据库的例子,由于空间限制,部分jar包未上传。可在myeclipse中加入这些包。