wordpress关闭略缩图,网站怎么优化关键词快速提升排名,温州网站建设温州,关键词大全今天做了这个StrutsDAO框架#xff0c;可以说是又向SSH迈了一步。 做的过程中又发现了一些问题#xff0c;但是在我和其他人的努力下一起解决了。这个问题是MyEclipse的Tomcat的启动问题。#xff08;已经解决并发帖解答了#xff09; 好了#xff0c;下面切入正题…今天做了这个StrutsDAO框架可以说是又向SSH迈了一步。 做的过程中又发现了一些问题但是在我和其他人的努力下一起解决了。这个问题是MyEclipse的Tomcat的启动问题。已经解决并发帖解答了 好了下面切入正题 StrutsDAO框架实现用户登录。连接MYSQL数据库 环境MyEclipse 步骤 1.新建WebProject命名为LoginProject点击确定 2.给项目加入Struts支持Add Struts Capabilities....选Struts1.2Base package for new classes:命名为cn.mldn.lxh.struts,完成 3.src下新建一个类名为PersonVO,放在org.lxh.vo,完成写入代码如下// 只包含setter和getter方法的类 package org.lxh.vo ; import java.util.* ; public class PersonVo { // 表中所有字段 private String id ; private String name ; private String password ; // 此属性用于保存全部错误信息 private List errors ; public boolean invalidate() { boolean flag true ; // 验证ID if(this.idnull||.equals(this.id)) { flag false ; errors.add(ID不能为空) ; } else { // 进行长度验证3~10位 if(this.id.length()3||this.id.length()10) { flag false ; errors.add(ID的长度应为3~10位) ; } } // 验证密码 if(this.passwordnull||.equals(this.password)) { flag false ; errors.add(密码不能为空) ; } else { // 进行长度验证3~10位 if(this.password.length()3||this.password.length()10) { flag false ; errors.add(密码的长度应为3~10位) ; } } return flag ; } public void setErrors(List errors) { this.errors errors ; } public List getErrors() { return this.errors ; } // 生成getter和setter方法 public void setId(String id) { this.id id ; } public void setName(String name) { this.name name ; } public void setPassword(String password) { this.password password ; } public String getId() { return this.id ; } public String getName() { return this.name ; } public String getPassword() { return this.password ; } }; 4.src下新建一个类名为DAOFactory,包名为org.lxh.factory,完成写入代码// 取得DAO实例的工厂类 package org.lxh.factory ; import org.lxh.dao.* ; import org.lxh.daoimpl.* ; public class DAOFactory { public static PersonDAO getPersonDAOInstance() { return new PersonDAOImpl() ; } }; 5.src下新建类名为DateBaseConnection,包名org.lxh.dbc,完成写入代码 // 本类只用于数据库连接及关闭操作 package org.lxh.dbc ; import java.sql.* ; public class DataBaseConnection { // 属性 // 定义数据库操作的常量、对象 // 数据库驱动程序 private final String DBDRIVER com.mysql.jdbc.Driver ; // 数据库连接地址 private final String DBURL jdbc:mysql://localhost:3306/people ; // 数据库用户名 private final String DBUSER root ; // 数据库连接密码 private final String DBPASSWORD hicc ; // 声明一个数据库连接对象 private Connection conn null ; // 在构造方法之中连接数据库 public DataBaseConnection() { try { // 加载驱动程序 Class.forName(DBDRIVER) ; // 连接数据库 conn DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ; } catch (Exception e) { System.out.println(e) ; } } // 返回一个数据库连接 public Connection getConnection() { /// 返回连接对象 return this.conn ; } // 关闭数据库连接 public void close() { try { this.conn.close() ; } catch (Exception e) { } } }; 6.src下新建类名为PersonDAOImpl,包名为org.lxh.daoimpl,完成。写入代码如下 // 具体实现DAO接口的类 package org.lxh.daoimpl ; // 需要连接数据库 // 需要对VO的内容进行具体的验证 import java.sql.* ; import org.lxh.dao.* ; import org.lxh.dbc.* ; import org.lxh.vo.* ; public class PersonDAOImpl implements PersonDAO { public boolean isLogin(PersonVo pv) { boolean flag false ; // 在此处成具体的数据库验证 // 声明一个数据库操作对象 PreparedStatement pstmt null ; // 声明一个结果集对象 ResultSet rs null ; // 声明一个SQL变量用于保存SQL语句 String sql null ; // DataBaseConnection为具体的数据库连接及关闭操作类 DataBaseConnection dbc null ; // 连接数据库 dbc new DataBaseConnection() ; // 编写SQL语句 sql SELECT name FROM person WHERE id? and password ? ; try { // 实例化数据库操作对象 pstmt dbc.getConnection().prepareStatement(sql) ; // 设置pstmt的内容是按ID和密码验证 pstmt.setString(1,pv.getId()) ; pstmt.setString(2,pv.getPassword()) ; // 查询记录 rs pstmt.executeQuery() ; // 判断是否有记录 if(rs.next()) { // 如果有记录则执行此段代码 // 用户是合法的可以登陆 flag true ; pv.setName(rs.getString(1)) ; } // 依次关闭 rs.close() ; pstmt.close() ; } catch(Exception e) { System.out.println(e) ; } finally { // 最后一定要保证数据库已被关闭 dbc.close() ; } return flag ; } 7.src下新建PersonDAO,包名org.lxh.dao // 本接口定义本项目中所操作person表的全部方法 package org.lxh.dao ; // 使用PersonVo类 import org.lxh.vo.* ; public interface PersonDAO { // 需要一个登陆验证的方法 public boolean isLogin(PersonVo pv) ; } 8.WebRoot下新建文件命名为数据库创建脚本.sql完成写入内容如下 DROP TABLE person ; CREATE TABLE person ( id varchar(20) not null primary key , name varchar(20) not null , password varchar(20) ) ; INSERT INTO person (id,name,password) VALUES (lxh,LiXingHua,ffffff) ; INSERT INTO person (id,name,password) VALUES (mldn,mole,mldn) ; -- 提交事务 commit ; 9.WebRoot下新建两个JSP页面分别命名为login和login_success。完成写入代码 login.jsp %page contentTypetext/html;charsetgb2312% %page importjava.util.*% % taglib urihttp://struts.apache.org/tags-bean prefixbean % % taglib urihttp://struts.apache.org/tags-html prefixhtml % % taglib urihttp://struts.apache.org/tags-logic prefixlogic % % taglib urihttp://struts.apache.org/tags-tiles prefixtiles % html head title登陆/title /head body center h1登陆范例――Struts实现/h1 hr br br !-- 加入更加详细的错误提示 -- html:errors/ html:form actionlogin.do methodpost table tr td colspan2用户登陆/td /tr tr td用户名/td tdhtml:text propertyid//td /tr tr td密nbsp;nbsp;码/td tdhtml:password propertypassword//td /tr tr td colspan2 html:submit value登陆/ html:reset value重置/ /td /tr /table /html:form /center /body /html login_success.jsp %page contentTypetext/html;charsetgb2312% html head title登陆/title /head body center h1登陆范例――Struts实现/h1 hr br br h2登陆成功/h2 h3欢迎font colorred size15 ${person.name} /font光临/h3 /center /body /html 10.插入ActionForm和Form的方法。在src下建立在菜单空白处点右键选自定义透视图添加方法add name和password。 11.修改Struts配置文件最终代码如下 ?xml version1.0 encodingUTF-8? !DOCTYPE struts-config PUBLIC -//Apache Software Foundation//DTD Struts Configuration 1.2//EN http://struts.apache.org/dtds/struts-config_1_2.dtd struts-config data-sources / form-beans form-bean nameloginForm typecn.mldn.lxh.struts.form.LoginForm / /form-beans global-exceptions / global-forwards / action-mappings action attributeloginForm input/login.jsp nameloginForm path/login scoperequest typecn.mldn.lxh.struts.action.LoginAction forward namesuc path/login_success.jsp/forward /action /action-mappings message-resources parametercn.mldn.lxh.struts.ApplicationResources / /struts-config 12.在资源文件ApplicationResources.properties中写入代码实现错误提示。 # Resources for parameter cn.mldn.lxh.struts.ApplicationResources # Project P/LoginProject id.null li\u7528\u6237ID\u80fd\u4e3a\u7a7a\uff01\uff01\uff01 password.null li\u5bc6\u7801\u4e0d\u80fd\u4e3a\u7a7a\uff01\uff01\uff01 error.login li\u9519\u8bef\u7684\u7528\u6237\u540d\u6216\u5bc6\u7801\uff01\uff01\uff01 13.编辑LoginForm.java,代码如下/** * MyEclipse Struts * Creation date: 12-14-2006 * * XDoclet definition: * struts.form nameloginForm */ public class LoginForm extends ActionForm { /* * Generated fields */ /** password property */ private String password; /** name property */ private String id; /* * Generated Methods */ /** * Method validate * param mapping * param request * return ActionErrors */ public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { // TODO Auto-generated method stub ActionErrors errors new ActionErrors() ; if(this.idnull||.equals(this.id)) { errors.add(name,new ActionMessage(id.null)) ; } if(this.passwordnull||.equals(this.password)) { errors.add(password,new ActionMessage(password.null)) ; } return errors; } /** * Method reset * param mapping * param request */ public void reset(ActionMapping mapping, HttpServletRequest request) { // TODO Auto-generated method stub } /** * Returns the password. * return String */ public String getPassword() { return password; } /** * Set the password. * param password The password to set */ public void setPassword(String password) { this.password password; } public String getId() { return id; } public void setId(String id) { this.id id; } } 14.编辑LoginAction.java,代码如下: * Generated by MyEclipse Struts * Template path: templates/java/JavaClass.vtl */ package cn.mldn.lxh.struts.action; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionMessage; import org.apache.struts.action.ActionMessages; import org.lxh.factory.DAOFactory; import org.lxh.vo.PersonVo; import cn.mldn.lxh.struts.form.LoginForm; /** * MyEclipse Struts * Creation date: 12-14-2006 * * XDoclet definition: * struts.action path/login nameloginForm input/form/login.jsp scoperequest validatetrue */ public class LoginAction extends Action { /* * Generated Methods */ /** * Method execute * param mapping * param form * param request * param response * return ActionForward */ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { LoginForm loginForm (LoginForm) form;// TODO Auto-generated method stub String id loginForm.getId() ; String password loginForm.getPassword() ; PersonVo per new PersonVo(); per.setId(id) ; per.setPassword(password) ; System.out.println(DAOFactory.getPersonDAOInstance().isLogin(per)); if(DAOFactory.getPersonDAOInstance().isLogin(per)) { // 用户ID和密码合法 request.setAttribute(person,per) ; } else { // 错误要回到login.jsp页面 ActionMessages errors new ActionMessages() ; errors.add(error,new ActionMessage(error.login)) ; super.saveErrors(request, errors) ; return mapping.getInputForward() ; } return mapping.findForward(suc); } } 15.启动MyEclipse中的Tomcat。运行项目。完成 施杨出品