11
struts1.x struts2.x 写一个登陆 struts 学习笔记

用 struts1.x struts2.x 写一个登陆 - BlogJavablogjava.net/Files/gnl/Struts2.pdf · 2012-09-09 · • 1.对于页面表单参数的封装 对于struts1.x 要在后台建立与前台页面相对应

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 用 struts1.x struts2.x 写一个登陆 - BlogJavablogjava.net/Files/gnl/Struts2.pdf · 2012-09-09 · • 1.对于页面表单参数的封装 对于struts1.x 要在后台建立与前台页面相对应

用struts1.x、struts2.x写一个登陆

struts 学习笔记

Page 2: 用 struts1.x struts2.x 写一个登陆 - BlogJavablogjava.net/Files/gnl/Struts2.pdf · 2012-09-09 · • 1.对于页面表单参数的封装 对于struts1.x 要在后台建立与前台页面相对应

思路

• 1首先考虑表示层一个简单登陆要应用到几个页面

login.jsplogin.jsplogin.jsplogin.jsp

success.jspsuccess.jspsuccess.jspsuccess.jsp

fail.jspfail.jspfail.jspfail.jsp

serverserverserverserver

Page 3: 用 struts1.x struts2.x 写一个登陆 - BlogJavablogjava.net/Files/gnl/Struts2.pdf · 2012-09-09 · • 1.对于页面表单参数的封装 对于struts1.x 要在后台建立与前台页面相对应

考虑后台控制

Rquest

Response

Sever

pages

Page 4: 用 struts1.x struts2.x 写一个登陆 - BlogJavablogjava.net/Files/gnl/Struts2.pdf · 2012-09-09 · • 1.对于页面表单参数的封装 对于struts1.x 要在后台建立与前台页面相对应

• 1.对于页面表单参数的封装

对于struts1.x要在后台建立与前台页面相对应的表单LoginForm(继承org.apache.struts.action.ActionForm)进行表单参数的封装

对于struts2.x可以不建立应用于前台对应包装

LoginForm,并且可以在Action进行获取

Page 5: 用 struts1.x struts2.x 写一个登陆 - BlogJavablogjava.net/Files/gnl/Struts2.pdf · 2012-09-09 · • 1.对于页面表单参数的封装 对于struts1.x 要在后台建立与前台页面相对应

• 2.逻辑控制

对于struts1.x 它的控制是LoginAction 即要求处理逻辑类要继承struts1.x中的Action(org.apache.struts.action.Action)

• 对于struts2.x它的控制类LoginAction要继承ActionSupport(com.opensymphony.xwork2.ActionSupport)

Page 6: 用 struts1.x struts2.x 写一个登陆 - BlogJavablogjava.net/Files/gnl/Struts2.pdf · 2012-09-09 · • 1.对于页面表单参数的封装 对于struts1.x 要在后台建立与前台页面相对应

• 如何获得前台表单参数

• 对于Struts1.x中获得参数的方式是

UserForm userform = (UserForm) form 可以通过userform来获得他的属性

• 对于Struts 2.x 要在Action中要设置对应属性的getter和setter方法 这样就可以获得前台参数

Page 7: 用 struts1.x struts2.x 写一个登陆 - BlogJavablogjava.net/Files/gnl/Struts2.pdf · 2012-09-09 · • 1.对于页面表单参数的封装 对于struts1.x 要在后台建立与前台页面相对应

• 对于参数判断处理

• 对于Struts1.x 要在Action的execute方法中进行逻辑控制

if (username.equals("tom") && userpassword.equals("123456")) {return mapping.findForward("success");

} else {return mapping.findForward("fail");

}

• 对于Struts2.x 也是在execute方法中进行逻辑处理if (username.equals("tom") && password.equals("123456")) {

return SUCCESS;} else {

return ERROR;}

Page 8: 用 struts1.x struts2.x 写一个登陆 - BlogJavablogjava.net/Files/gnl/Struts2.pdf · 2012-09-09 · • 1.对于页面表单参数的封装 对于struts1.x 要在后台建立与前台页面相对应

Struts配置文件配置• 对于Struts1.x<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts

Configuration 1.3//EN" "struts-config_1_3.dtd" ><struts-config>

<form-beans><!-- name 是定义的名字是与后面的那个那么相关联 ,type指定的对应的是

那个类--><form-bean name="login" type="com.li.formbean.UserForm"></form-bean>

</form-beans>

<action-mappings><!-- path 前台进行调用的访问方法 --><action input="/login.jsp" path="/dologin" name="login"

type="com.li.formaction.LoginAction"><forward name="success" path="/success.jsp"></forward><forward name="fail" path="/fail.jsp"></forward>

</action></action-mappings>

</struts-config>

Page 9: 用 struts1.x struts2.x 写一个登陆 - BlogJavablogjava.net/Files/gnl/Struts2.pdf · 2012-09-09 · • 1.对于页面表单参数的封装 对于struts1.x 要在后台建立与前台页面相对应

• <?xml version="1.0" encoding="UTF-8" ?>• <!DOCTYPE struts PUBLIC• "-//Apache Software Foundation//DTD Struts

Configuration 2.3//EN"• "http://struts.apache.org/dtds/struts-2.3.dtd">

• <struts>• <package name="logtest" extends="struts-default">

• <action name="login" class="com.li.formaction.LoginAction">• <result name="success">/success.jsp</result>• <result name="error">/fail.jsp</result>• </action>• </package>• </struts>

Page 10: 用 struts1.x struts2.x 写一个登陆 - BlogJavablogjava.net/Files/gnl/Struts2.pdf · 2012-09-09 · • 1.对于页面表单参数的封装 对于struts1.x 要在后台建立与前台页面相对应

在工程中加载Struts配置文件• <!-- 加载struts1的配置文件,由于 struts1的最大的控制器是

ServletAction• 所以首先必须先加载它 -->• <servlet>• <servlet-name>action</servlet-name>

• <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>• <init-param>• <param-name>config</param-name>• <param-value>/WEB-INF/struts-config.xml</param-value>• </init-param>• <load-on-startup>2</load-on-startup>• </servlet>• <servlet-mapping>• <servlet-name>action</servlet-name>• <url-pattern>*.do</url-pattern>

• </servlet-mapping>

Page 11: 用 struts1.x struts2.x 写一个登陆 - BlogJavablogjava.net/Files/gnl/Struts2.pdf · 2012-09-09 · • 1.对于页面表单参数的封装 对于struts1.x 要在后台建立与前台页面相对应

• <filter>• <filter-name>struts2</filter-name>• <filter-

class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

• </filter>

• <filter-mapping>• <filter-name>struts2</filter-name>• <url-pattern>/*</url-pattern>• </filter-mapping>