Struts1入门

 

← java排序算法

 

Struts1入门

发表于2017年1月3日由搬砖工阅读次数 190


JavaEE学习就从最通用的MVC框架Struts开始学习,然后到Hibernate,最后是Spring。
对于Struts来说,Struts1和Struts2区别较大。有部分人认为只需要了解最新的就可以了,但是把最原始的东西多看一下,对我们程序员来说可能收获更多。毕竟编程,思路是最重要的。
Struts1入门
一、什么是Struts?
Struts是开源框架(MVC)。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用,struts是一个不错的选择。

二、Struts的常用组件
1.ActionServlet
2.Action
3.ActionForm
4.ActionMapping
5.ActionForward

三、Struts的优点
1.基于配置文件的松耦合,Struts中的通常类都被写在配置文件里面了。如:Action、ActionForm、ActionForward等。如果需要修改一些常用配置的话,只需要修改配置文件就可以了。
2.Formbean(ActionForm)解决了验证信息的重新显示需要管理员设置的问题。
3.对数据等信息有集中的验证。
4.支持国际化以及异常信息处理。

四、五大组件介绍
1.ActionServlet
Struts中的最大控制器,是Struts框架的入口,并且封装了Servlet,被配置在web.xml当中
2.Action
小控制器,处理具体的业务逻辑
3.ActionForm
和页面表单对应的一个特殊javabean,负责在页面和控制器之间传递数据。同时还提供了集中验证方法
4.ActionMapping
用来从Struts的配置文件中读取信息
5.ActionForward
页面之间的跳转

五、Struts工程创建步骤
1.创建一个Web工程
2.添加Struts的jar包
3.创建一个Struts配置文件struts-config.xml
4.在web.xml添加Struts配置

 

 

1234567891011121314

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

5.创建一个LoginForm

 

 

12345678910111213141516171819202122

package com.demo.form;import org.apache.struts.action.ActionForm; public class LoginForm 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;    }      }

6.创建一个Action类

 

 

123456789101112131415161718192021222324252627

package com.demo.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.demo.form.LoginForm;public class DemoAction extends Action{    public ActionForward execute(ActionMapping mapping, ActionForm form,            HttpServletRequest request, HttpServletResponse response)                    throws Exception {        //String username = request.getParameter("username");        //String password = request.getParameter("password");        LoginForm loginform = (LoginForm)form;        String username = loginform.getUsername();        String password = loginform.getPassword();        if(username!=null&&username.equals("lwh")){            return mapping.findForward("success");            //request.getRequestDispatcher("/Success.jsp").forward(request, response);        }else{            return mapping.findForward("failure");            //request.getRequestDispatcher("/Failure.jsp").forward(request, response);        }        //return null;    }}

7.在struts-config.xml中配置Action、ActionForm和ActionForward

 

 

12345678910111213

<?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="loginform" type="com.demo.form.LoginForm"></form-bean>    </form-beans>    <action-mappings>        <action path="/login" type="com.demo.action.DemoAction" name="loginform">            <forward name="success" path="/Success.jsp"></forward>            <forward name="failure" path="/Failure.jsp"></forward>        </action>    </action-mappings></struts-config>

8.其他代码
登陆页面:

 

 

123456789101112131415161718192021222324252627282930

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">  </head>     <body>    <form name="loginform" id="form1" action="<%=path %>/login.do" method="post">        <table border="0">            <tr>                <td>name:</td>                <td><input type="text" name="username" id="username" /></td>            </tr>            <tr>                <td>password:</td>                <td><input type="password" name="password" id="password" /></td>            </tr>            <tr>                <td colspan="2" align="center"><input type="submit" value="submit"/></td>            </tr>        </table>    </form>  </body></html>

成功页面:

 

 

12345678910111213141516

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">  </head>     <body>    Success!  </body></html>

9.运行结果

 

六、Struts官网链接
Struts下载地址
Struts官网

tips:struts的jar包可以参考Struts给的示例的lib里面jar包来导入

 

50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信