原创:第一节struts1的环境搭建及用户注册案例开发

很久没有使用过struts1,今天又一次接触到了struts1,闲来之余,把自己的授课记录发表供大家学习参考,大家都知道  struts是开源软件。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。如果我们想混合使用ServletsJSP的优点来建立可扩展的应用,struts是一个不错的选择。那么在这一节中我们就来学习struts1的入门知识,我们主要通过环境搭建到用户注册的案例来了解struts1的处理流程等知识点。

 

通过struts1.3.8完成简单用户注册的案例及环境搭建

1、搭建struts1的开发环境

      a、创建web项目

      b、添加struts1类库文件:此类库文件在官方网站下载后解压后存放在lib目录下面,直接把此文件赋值粘贴到webRoot/WEB-INF/lib目录中.

      c、由于struts1的请求处理时基于servlet完成,所以要在web容器中添加servlet配置,即在web.xml文件中添加代码:

web.xml代码发布如下:

   <?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

         version="2.5"

         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

 

         <servlet>

                   <servlet-name>action</servlet-name>

                   <!-- 添加struts请求处理的ActionServlet配置 通过此配置解析struts-config.xml文件 -->

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

                   <!-- 配置struts请求处理的URL方式 默认是后缀为.do的请求 -->

                   <url-pattern>*.do</url-pattern>

         </servlet-mapping>

         <welcome-file-list>

                   <welcome-file>index.jsp</welcome-file>

         </welcome-file-list>

</web-app>

      d、添加struts1的默认配置文件 此配置文件位于WEB-INF/下面 默认的名称为struts-config.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>

         <!-- formbean的映射的配置 -->

         <form-beans/>        

         <!-- 映射全局的异常处理配置 -->

         <global-exceptions />

         <!-- 映射全局的跳转处理配置 -->

         <global-forwards />

         <!-- action的映射的配置 -->

         <action-mappings/>        

         <!-- 映射资源文件 -->

         <message-resources parameter="com.yourcompany.struts.ApplicationResources" />

</struts-config>

 

2、创建register.jsp注册页面 代码如下:

    <form action="${pageContext.request.contextPath}/Register.do" method="post">

      用户名:<input type="text" name="username"/><br/>

      密码:<input type="password" name="userpass"/><br/>

      邮箱:<input type="text" name="useremail"/><br/>

      <input type="submit" value="注册"/>

   </form>

3、在配置文件中添加相应的action处理及ActionForm配置代码如下:

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

         <!-- formbean的映射的配置 -->

         <form-beans>

                   <!--

                            name指明ActionForm的名称 此名称与action中相应处理的Action中的name一致

                            type指明ActionForm处理的类

                   -->

                   <form-bean name="userForm" type="cn.csdn.web.formbean.UserForm"></form-bean>

 

         </form-beans>

         <!-- 映射全局的异常处理配置 -->

         <global-exceptions />

         <!-- 映射全局的跳转处理配置 -->

         <global-forwards />

         <!-- action的映射的配置 -->

         <action-mappings>

                   <!--

                            path指明请求的URL地址,type指明此action处理的Action类型 name指明的是请求参数封装的

 

ActionForm的名称

                   -->

                   <action path="/Register" type="cn.csdn.web.action.RegisterAction"

                            name="userForm">

                            <!-- forward name指明名称 path指明跳转的路径 -->

                            <forward name="message" path="/message.jsp"></forward>

                   </action>

         </action-mappings>

         <!-- 映射资源文件 -->

         <message-resources parameter="com.yourcompany.struts.ApplicationResources" />

</struts-config>

 

4、创建相应的ActionFormAction

   ActionForm代码如下:

    package cn.csdn.web.formbean;

 

import org.apache.struts.action.ActionForm;

/**Form要继承struts1作者写好的ActionForm处理类*/

public class UserForm extends ActionForm {

 

         /**

          * 封装用户提交的参数信息,此属性名称一定要与jsp视图中

          * 表单提交的参数名称一致

          */

         private String username;

         private String userpass;

         private String useremail;

        /**以下省略了相应的set get方法 通过set方法把视图的值注入到ActionForm对应的参数中**/

        ........

 

 

 

 

 

   Action代码如下:

    package cn.csdn.web.action;

 

import javax.servlet.http.*;

 

import org.apache.struts.action.*;

 

import cn.csdn.web.formbean.UserForm;

 

/** Action要继承struts1作者写好的Action类型 */

public class RegisterAction extends Action {

 

         /** Action处理的方法 */

         public ActionForward execute(ActionMapping mapping, ActionForm form,

                            HttpServletRequest request, HttpServletResponse response)

                            throws Exception {

                   /** 获取ActonForm封装的请求对象 */

                   UserForm userForm = (UserForm) form;

                   /** 打印输出信息 ---观察效果 */

                   System.out

                                     .println("用户名称:" + userForm.getUsername() + " 用户密码:"

                                                        + userForm.getUserpass() + "   用户邮箱:"

                                                        + userForm.getUseremail());

 

                   try {

                            System.out.println("向数据库发送数据处理.....");

                            /** request中存入message信息 */

                            request.setAttribute("message", "用户注册成功!!!");

                   } catch (Exception ex) {

                            ex.printStackTrace();

                            request.setAttribute("message", "用户注册失败!!!");

                   }

 

                   /** 获取跳转的地址并返回ActionForward */

                   return mapping.findForward("message");

         }

 

}

5、创建相应的message.jsp试图界面。

 

6、发布并运行此项目及可看到结果。

 

 

以上内容归redarmy_chen原创,版权归redarmy_chen所有不得随意转载,如有问题请发送邮件到redarmy_chen@qq.com

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值