struts开发步骤

引言

        上一篇博客我们只是简单介绍了一下struts和它的工作原理,下面小编带大家来看一下使用struts开发的具体步骤~~~

搭建环境配置

       1、  由于struts是对servlet的包装,所以只能适用于web项目,我们新建一个web项目

       2、  引入必要的jar包

 


       3、  在WEB-INF文件夹下新建配置文件struts-config.xml。这个配置文件主要是配置我们定义好的ActonForm和Action。

             <form-bean>标签中配置的是ActionForm的变量名和全名

             <action-mapping>标签中配置的是各个不同的action的信息。

              <action>标签中的各个属性:path=”/”,

                                                                 type是action的全名,name是对应的ActionForm的变量名,

                                                                 scope可以配置成request和session,默认是session。

                                                               <forward>标签中配置的要跳转的页面,默认redirect=”true”。当配置文件中既有同    名的局部的<forward>和全局的<forward>时,使用局部的。



       4、  配置web-xml文件

        配置Struts中的总控制器ActionServlet,把配置文件作为一个实例化参数的值传进来的。启动优先级是0,就是最高的优先级,只要是大于等于0的整数都表示程序一启动的时候就实例化好了servlet,将struts的action标签内容放到了actionmapping中。由于<url-pattern>标签中配置访问的映射url,所以只要是后缀名为.do的就可以

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <display-name></display-name>	
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
   <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>
</web-app>

 

开发

       1、开发actionform

             1)建立一个类,继承ActionForm

             2)注册到struts-config.xml文件中,<form-bean>标签

      实例:

               LoginActionForm

package com.bjpowernode.struts;

import org.apache.struts.action.ActionForm;

/**
 * 登录ActionForm,负责表单收集数据
 * 表单的属性必须和ActionForm 中的get 和set的属性一致
 * @author xingyu
 *
 */
@SuppressWarnings("serial")
public class LoginActionForm extends ActionForm {
	private String username;
	
	private String password;
	
	public String getUsername() {
		return username;
	}

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

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	
}

        需要在struts-config.xml文件中配置:

      <form-beans>
		<form-bean name="loginForm" type="com.bjpowernode.struts.LoginActionForm"/>
      </form-beans>

2、开发action

      1)建立一个类,继承Action,重写execute(ActionMappingmapping, ActionForm form,HttpServletRequest request, HttpServletResponseresponse)方法

      2)注册到struts-config.xml文件中,修改<action>标签信息

             Path:指明调用者(jsp)能通过中心控制器ActionServlt找到该Action

             type: 指明该Action的类名

             name: 该Action应用的ActionForm名称

实例:

         LoginAction

package com.bjpowernode.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;

/**
 * 登录Action
 * 负责取得表单数据、调用业务逻辑、返回转向信息
 * @author xingyu
 *
 */
public class LoginAction extends Action {

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {

		LoginActionForm laf = (LoginActionForm)form;
		String username = laf.getUsername();
		String password = laf.getPassword();
		
		UserManager userManager = new UserManager();
		try{
			userManager.login(username, password);
			return mapping.findForward("success");
			
		}catch(UserNotFoundException e){
			e.printStackTrace();
			request.setAttribute("msg", "用户把能找到,用户名称=【"+username+"】");
		}catch(PasswordErrorException e)
		{
			e.printStackTrace();
			request.setAttribute("msg", "密码错误!");
		}
		return mapping.findForward("error");
	
	}

}

    需要在struts-config.xml文件中配置:

<action-mappings>
		<action path="/login"
				type="com.bjpowernode.struts.LoginAction"
				name="loginForm"
				scope="request"
				>
			<forward name="success" path="/login_success.jsp"/>
			<forward name="error" path="/login_error.jsp"/>
			
		</action>
</action-mappings>

3、建立jsp页面

      1、login.jsp

<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
	<form action="login.do" method="post">
		用户名:<input type="text" name="username"><br>
		密码:<input type="password" name ="password"><br>
		<input type="submit" value="登录">
	</form>	
</body>
</html>

       2、login_success.jsp

<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
	${loginForm.username },登录成功!
</body>
</html>

       3、  login_error.jsp

<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
	${msg }
</body>
</html>


 效果

 

 

 

 

 总结

 框架让我们的系统层次清晰,耦合更松。学习框架,先从一个小例子开始吧!

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 21
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值