struts

在做SSH整合之前,首先看下struts单独使用的情况:

部署描述符 web.xml:

<?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">

	<!-- struts的ActionServlet配置 -->
	<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>
	<!-- 配置struts的ActionServlet的请求路径,以.do结尾的请求 -->
	<servlet-mapping>
		<servlet-name>action</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>
	
	<welcome-file-list>
		<welcome-file>login.jsp</welcome-file>
	</welcome-file-list>
</web-app>

在启动项目后,根据web.xml中的配置,首先会登录到欢迎页面 login.jsp:

<%@ page language="java" pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <body>
    <form action="login.do" method="post">
	    <table>
	        <tr><td>用户名:</td><td><input type="text" name="username"></td></tr>
	        <tr><td>密&nbsp;&nbsp;码:</td><td><input type="password" name="password"></td></tr>
	        <tr>
                <td><input type="submit" value="提交"></td>
                <td><input type="reset" value="重置"></td>
            </tr>
	    </table>
    </form>
  </body>
</html>

点击提交按钮后,会把"login.do"提交到struts的action中。在struts的配置文件中查找路径为"/login"的action

struts配置文件struts-config.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config SYSTEM "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
    <!-- Form表单 -->
    <form-beans>
        <form-bean name="userForm" type="com.cos.form.UserForm"></form-bean>
    </form-beans>
    <!-- Struts Action -->
    <action-mappings>
        <action path="/login" type="com.cos.action.LoginAction" scope="request" name="userForm">
            <forward name="success" path="/success.jsp"/>
        </action>
    </action-mappings>
</struts-config>

LoginAction.java:

package com.cos.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 com.cos.form.UserForm;
import com.cos.manager.UserManager;

public class LoginAction extends Action {
    public ActionForward execute(ActionMapping mapping, ActionForm actionfrom,
            HttpServletRequest request, HttpServletResponse response) {
        UserForm loginForm = (UserForm)actionfrom;
        //需要new业务逻辑对象UserManager,代码耦合
        UserManager userManager = new UserManager();
        userManager.createUser(loginForm.getUsername(), loginForm.getPassword());
        return mapping.findForward("success");
    }
}

UserForm.java:

package com.cos.form;

import org.apache.struts.action.ActionForm;

public class UserForm extends ActionForm {

    private static final long serialVersionUID = 1L;
    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;
    }
} 

业务逻辑处理类 UserManager.java:

package com.cos.manager;

//业务逻辑处理
public class UserManager {
    public void createUser(String username, String password) {
        System.out.println("业务逻辑处理:用户名:" + username + ",密码:" + password);
    }
}

成功页面 success.jsp :

<%@ page language="java" pageEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <body>
	            登录成功。<a href="login.jsp">返回</a>    
  </body>
</html>

运行结果:跳转到成功页面success.jsp 并且控制台打印出:"业务逻辑处理:用户名:xxx,密码:xxx"

 

缺点:

在LoginAction中,new了一个业务逻辑对象UserManager。这样LoginAction和UserManager代码耦合。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值