读书人

Struts 学习札记 二

发布时间: 2012-11-14 10:12:19 作者: rapoo

Struts 学习笔记 二

login.jsp 登陆页面?

<html:form action="/login" >    帐号:<html:text property="userName"/>    <html:errors property="userName"/><br/>    密码:<html:password property="userPassword"/>    <html:errors property="userPassword"/>    <html:submit value="登录"/> </html:form>

success.jsp 登陆成功???????

 <body>   <center>   帐号:${loginBean.userName }<br/>   密码:${loginBean.userPassword }   </center>  </body>

?fail.jsp 登陆失败页面

 <body>              您的帐号和密码有误!  </body>

?
LoginAction.java

public class LoginAction extends Action{@Overridepublic ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception {LoginForm logFor=(LoginForm)form;          UserManager um=new UserManager();          boolean flag=um.userLogin(logFor.getUserName(),logFor.getUserPassword());          String page="fail";          if(flag){              page="success";         }          return mapping.findForward(page);}}

?

?UserManager.java

public class UserManager { public boolean userLogin(String userName,String userPassword){          boolean flag=false;          if("admin".equals(userName)&&"admin".equals(userPassword)){              flag=true;          }          return flag;      }  }

LoginForm.java?

public class LoginForm extends ActionForm{private String userName;private String userPassword;public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getUserPassword() {return userPassword;}public void setUserPassword(String userPassword) {this.userPassword = userPassword;}}

?
struts-config.xml??????????????

?

<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"><struts-config><data-sources /><form-beans><form-bean name="loginForm" type="com.login.LoginForm"></form-bean></form-beans><global-exceptions /><global-forwards /><action-mappings><action path="/login" attribute="loginBean" input="/login.jsp"name="loginForm" scope="request" type="com.login.LoginAction"><forward name="success" path="/success.jsp"></forward><forward name="fail" path="/fail.jsp"></forward></action></action-mappings><message-resources parameter="com.struts.ApplicationResources"></message-resources></struts-config>


<action>标签中的属性含义描述如下:

1. name:表示ActionForm的名称。也就是<form-bean>标签中的name属性的值。

2. path:表示Struts动作,必须以“/”开头。

3. scope:表示ActionForm类的对象实例(在本例中是LoginForm类的对
?象实例)保存的范围。这个属性值只能取request和session。默认值是session。
?如果scope的值为request,表示将LoginForm类的对象实例以LoginForm作为键值保存到了request的属性中。
?如果scope的值为session,表示不将LoginForm类的对象实例保存到request的属性中。
?但不管scope的值是request还是session。Struts都会将LoginForm类的对象实例保存到session的属性中。

4. type:表示LoginAction类的全名。

5. input:表示如果客户端提交的数据未通过简单验证后要跳转到的页面,也就是在

LoginForm类的validate方法中返回的ActionErrors对象中含有错误描述信息。
Struts会自动跳转到input属性所指的JSP页面。

<action>标签中的子标签<forward>定义了可以在动作类(在本例中就是LoginAction类)中读取的forward页的URL。
???????
一个请求的整个流程
util.RequestUtils - ??Get module name for path /login.do
util.RequestUtils - ??Module name found: default
action.RequestProcessor - Processing a 'POST' for path '/login'
util.RequestUtils -? ??Looking for ActionForm bean instance in scope 'request' under attribute key 'loginBean'
util.RequestUtils -? ??Creating new ActionForm instance of type 'com.login.LoginForm'
util.RequestUtils -? --> com.login.LoginForm@d9cbcb
action.RequestProcessor -? Storing ActionForm bean instance in scope 'request' under attribute key 'loginBean'
action.RequestProcessor -? Populating bean properties from this request
beanutils.BeanUtils - ?BeanUtils.populate(com.login.LoginForm@d9cbcb, {userName=[Ljava.lang.String;@d2b64e,
??????userPassword=[Ljava.lang.String;@1bef1ac})
beanutils.BeanUtils -?? setProperty(com.login.LoginForm@d9cbcb, userName, [admin])
beanutils.ConvertUtils - Convert string 'admin' to class 'java.lang.String'
beanutils.ConvertUtils -?? Using converter org.apache.commons.beanutils.converters.StringConverter@9e8c34
beanutils.BeanUtils -?? setProperty(com.login.LoginForm@d9cbcb, userPassword, [admin])
beanutils.ConvertUtils - Convert string 'admin' to class 'java.lang.String'
beanutils.ConvertUtils -?? Using converter org.apache.commons.beanutils.converters.StringConverter@9e8c34
action.RequestProcessor -? Validating input form properties
action.RequestProcessor -?? No errors detected, accepting input
action.RequestProcessor -? Looking for Action instance for class com.login.LoginAction
action.RequestProcessor -?? Returning existing Action instance
action.RequestProcessor - processForwardConfig(ForwardConfig

[name=success,path=/success.jsp,redirect=false,contextRelative=false])
[localhost].[/Struts1] - servletPath=/success.jsp, pathInfo=null, queryString=null, name=null
[localhost].[/Struts1] -? Path Based Forward
servlet.JspServlet - ??JspEngine --> /success.jsp
servlet.JspServlet - ????? ServletPath: /success.jsp
servlet.JspServlet - ???????? PathInfo: null
servlet.JspServlet - ???????? RealPath: E:\EXPL\tomcat5.5\webapps\Struts1\success.jsp
servlet.JspServlet - ?????? RequestURI: /Struts1/success.jsp
servlet.JspServlet - ????? QueryString: null
servlet.JspServlet - ?? Request Params:
servlet.JspServlet - ?? userName = admin
servlet.JspServlet - ?? userPassword = admin???????

???????

??????

?

读书人网 >软件架构设计

热点推荐