struts框架的原理,配置和如何让使用

struts框架的原理,配置和如何让使用

1.配置Struts

1.Struts框架简介
1.1.Struts是Apache软件基金会(ASF)赞助的一个开源项目。它最初是jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用JavaServlet/JSP技术,实现了基于JavaEEWeb应用的MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产品。
1.2.Struts框架提供如下服务:
(1)作为控制器的Servlet。
(2)提供大量的标签库。
(3)提供了用于国际化的框架,利用不同的配置文件,可以帮助用户选择合适自己的语言。
(4)提供了JDBC的实现,来定义数据源和数据库连接池。
(5)XML语法分析工具。
(6)文件下载机制。
1.3.引入Struts开发包
(1).下载Struts 包 :http://struts.apache.org/

1.4.创建struts-config.xml 并配置
(1).创建文件truts-config.xml 放在 /WEB-INF目录下
(2).配置表单

[code lang="xml"]
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" 
"http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
<!-- 配置表单 -->
<form-beans>
<form-bean name="employeeForm" type="com.cxk.web.forms.EmployeeForm"></form-bean>
</form-beans>
<!-- 配置action -->
<action-mappings>
<action path="/login" parameter="flag" name="employeeForm" type="com.cxk.web.action.LoginAction">
<forward name="ok" path="/WEB-INF/mainFrame.jsp" />
<forward name="err" path="/WEB-INF/login.jsp" />
</action>
</action-mappings>
</struts-config>
[/code]

1.5.web.xml进行如下配置

[code lang="xml"]
<?xml version="1.0" encoding="UTF-8"?>  
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">  
  <display-name>MyStruts1Prj</display-name>  
    
  <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/conf/struts-config.xml</param-value>  
    </init-param>  
    <init-param>  
        <param-name>debug</param-name>  
        <param-value>3</param-value>  
    </init-param>  
    <init-param>  
        <param-name>detail</param-name>  
        <param-value>3</param-value>  
    </init-param>  
      
    <load-on-startup>0</load-on-startup>  
  </servlet>  
    
  <servlet-mapping>  
    <servlet-name>action</servlet-name>  
    <url-pattern>*.do</url-pattern>  
  </servlet-mapping>  
    
  <welcome-file-list>  
    <welcome-file>index.jsp</welcome-file>  
  </welcome-file-list>  
</web-app>  
[/code]

1.6.登陆页面login.jsp

[code lang="html"]
<%@ page language="java" contentType="text/html; charset=UTF-8"  
    pageEncoding="UTF-8"%>  
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
<html>  
<head>  
<%  
    String basePath = request.getContextPath();  
%>  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
<title>登陆页面</title>  
</head>  
<body>  
    <h1>登陆页面</h1>  
    <hr>  
    <form action="<%=basePath %>/login.do" method="post" >  
        userName:<input id="userName" name="userName" type="text" /><br>  
        passWord:<input id="passWord" name="passWord" type="password" /><br>  
        <input type="submit" id="submit" name="submit" value="submit" />  
    </form>  
</body>  
</html>  
[/code]

1.7.登陆成功后的跳转页面loginSucces.jsp

[code lang="html"]
<%@ page language="java" contentType="text/html; charset=UTF-8"  
    pageEncoding="UTF-8"%>  
<!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=UTF-8">  
<title>登陆成功页面</title>  
</head>  
<body>  
    <h1>欢迎[<%=request.getAttribute("userName") %>]登陆成功!</h1>  
</body>  
</html>  
[/code]

1.8. 登陆失败后的跳转页面loginError.jsp

[code lang="html"]
<%@ page language="java" contentType="text/html; charset=UTF-8"  
    pageEncoding="UTF-8"%>  
<!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=UTF-8">  
<title>登陆失败页面</title>  
</head>  
<body>  
    <h1>登陆失败!</h1>  
</body>  
</html>  
[/code]

1.9.新建LoginActionForm.java

[code lang="java"]
package com.lanp.webapp.form;  
  
import org.apache.struts.action.ActionForm;  
  
/** 
 * 封装登陆表单数据的FORM类 
 */  
@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;  
    }  
}  
[/code]

1.10.新建LoginAction.java

[code lang="java"]
package com.lanp.webapp.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.lanp.webapp.form.LoginActionForm;  
/** 
 * 处理登陆的Action类 
 */  
public class LoginAction extends Action {  
  
    @Override  
    public ActionForward execute(ActionMapping mapping, ActionForm form,  
            HttpServletRequest request, HttpServletResponse response)  
            throws Exception {  
        String path = "error";  
        LoginActionForm loginActionForm = (LoginActionForm)form;  
        String userName = loginActionForm.getUserName();  
        String passWord = loginActionForm.getPassWord();  
          
        if(null != userName && "admin".equals(userName) && null != passWord && "admin".equals(passWord)) {  
            path = "success";  
            request.setAttribute("userName", userName);  
        } else {  
            path = "error";  
        }  
        return mapping.findForward(path);  
    }  
      
}  
[/code]

OK!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值