01-struts

快速开发基于struts的web项目步骤---以简单的登录为例

1.配置struts开发环境

   (1)把struts lib下的jar包拷贝到新建web项目的lib下

   (2)修改web.xml文件--ActionServlet的配置文件(中央控制器)

          添加的代码如下:

 <!-- Standard Action Servlet Configuration (with debugging) -->
  <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>
    <init-param>
      <param-name>debug</param-name>
      <param-value>2</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>2</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
  </servlet>


  <!-- Standard Action Servlet Mapping -->
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

     (3)新建struts-config.xml文件

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
          "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
</struts-config>

   该文件是由ActionServlet读取的配置文件,定义了所有关于Action、ActionForm、ActionForward等的详细信息(具体配置见后面步骤)。

2.创建需要的jsp页面和各java文件

     (1)创建JSP文件(login.jsp   success.jsp   failure.jsp)

       login.jsp主要代码如下

 <form action="login.do" method="post">
    	用户名:<input type="text" name="username"/>
    	<input type="submit" value="登录"/>
    </form>

     success.jsp主要代码如下

<body>
   <%=request.getAttribute("username") %>,登录成功
  </body>

      failure.jsp主要代码如下

<body>
   登录失败
  </body>

      (2)创建LoginActionForm.java文件

package edu.yy.struts;

import org.apache.struts.action.ActionForm;

public class LoginActionForm extends ActionForm {
	
	private String username;

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}
}

   注意:

   A:LoginActionForm是一个JavaBean,需要继承org.apache.struts.action.ActionForm类,功能是捕获通过HTTP请求传递的参数;

   B:LoginActionForm针对HTML表单中的字段都有一个对应的属性;

   C:ActionServlet匹配请求中的参数和LoginActionForm中的属性,并调用该类中的setter方法,将参数传入LoginActionForm;

    (3)创建LoginAction.java文件

package edu.yy.struts;

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;

public class LoginAction extends Action {

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		//把ActionForm强转为LoginActionForm
		LoginActionForm laf=(LoginActionForm)form;
		//从LoginActionForm中获取用户名
		String username=laf.getUsername();
		//用户名的逻辑判断,并决定返回哪个ActionForward
		if(username.equals("struts")){
			//把用户名放入request中
			request.setAttribute("username", username);
			//跳转到成功页面
			return mapping.findForward("success");
		}else{
			return mapping.findForward("error");
		}
	}
	
}

     注意:

    A:Action是一个Java类,需要继承org.apache.struts.action.Action类;

   B:ActionServlet将会组装ActionForm,并将其传递给Action;

   C:Action通常负责

              a.输入参数的校验;

              b.调用业务逻辑类;

              c.返回ActionForward。

   (4)配置struts-config.xml文件

<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
          "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">



<struts-config>
	<form-beans>
		<form-bean name="form" type="edu.yy.struts.LoginActionForm"></form-bean>
	</form-beans>

	<action-mappings>
		<action path="/login"
		type="edu.yy.struts.LoginAction"
		name="form"
		scope="request"
		>
		<forward name="success" path="/success.jsp"></forward>
		<forward name="error"   path="/failure.jsp"></forward>
		</action>
	</action-mappings>
</struts-config>

 说明:

  @:<form-beans>标签内部可以包含多个<form-bean>标签

 @@:<form-bean>标签需要指定name和type属性

              name:给ActionForm一个表示名字

              type:包名+类名

@@@:action标签中重要属性含义如下

               path:即form表单提交时通过使用说明URL路径来访问Action

               type:处理URL请求的action类:包名+类名

               name:标识哪个ActionForm将被创建,并把提交的表单组件给它

              scope:FormBean的作用范围


 

   

   


 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值