java中struts配置

下面是关于Java中Struts配置的详细攻略。

Struts框架的基本介绍

Apache Struts是一个基于Java EE的Web应用程序开发框架,它采用了Model-View-Controller(MVC)的架构模式,并通过多种标准技术来实现Web应用的开发,如Java Servlet、JavaBean、XML、JSP和Java的反射机制等。Struts框架的开发主要涉及Struts配置文件的编写,其中最基本的配置文件就是struts-config.xml。这个配置文件中主要包含一个或多个action元素,每个action元素通常会对应到应用中的一个页面或一个请求,并指定一组处理此请求的类和方法。

Struts框架的环境准备

首先,我们需要在本地机器上安装好Java开发环境和Apache Tomcat服务器环境,这里我们以Tomcat作为Web容器。其次,下面是一些必要的Struts框架的jar包:

  • struts.jar
  • struts-el.jar
  • commons-beanutils.jar
  • commons-digester.jar
  • commons-collections.jar
  • commons-chain.jar
  • xwork-core.jar
  • ognl.jar
  • freemarker.jar

在项目中增加这些jar包依赖:

<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts-core</artifactId>
    <version>1.3.8</version>
</dependency>

其中,1.3.8是Struts框架的版本号。

配置struts-config.xml

下面是一个简单的Struts配置文件示例:

<?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.example.struts.action.LoginActionForm"/>
  </form-beans>
  <global-exceptions>
    <exception
      key="error.db.exception"
      type="java.sql.SQLException"
      path="/error/error.jsp"/>
    <exception
      key="error.generic.exception"
      type="java.lang.Exception"
      path="/error/error.jsp"/>
  </global-exceptions>
  <action-mappings>
    <action
      path="/login"
      name="loginForm"
      type="com.example.struts.action.LoginAction"
      validate="true"
      input="/login.jsp"
      scope="request">
      <forward name="success" path="/welcome.jsp"/>
      <forward name="failure" path="/login.jsp"/>
    </action>
  </action-mappings>
</struts-config>

在这个配置文件中,我们定义了一个名为“login”的action,定义了一个名为“loginForm”的formBean,也定义了几个全局异常。当名字为“login”的请求被发送时,它会跳转至类com.example.struts.action.LoginAction,并在LoginForm中进行输入验证,验证成功将跳转至/welcome.jsp,否则跳转至/login.jsp。

下面是另一个简单的示例:

<action
    name="loginForm"
    path="/login"
    scope="request"
    validate="true"
    input="/login.jsp"
    type="com.example.struts.LoginAction"
    parameter="execute">
    <forward name="success" path="/welcome.jsp" />
    <forward name="failure" path="/login.jsp"/>
</action>

该示例也是定一个名为“login”的action,它将请求发送到loginForm实例上,并对用户输入进行验证。如果验证成功,则跳转至/welcome.jsp;如果验证失败,则返回/login.jsp

配置Action类

在Struts中,Action类是用来处理请求的具体实现,它通常继承org.apache.struts.action.Action,并实现execute方法。

下面是一个简单的Action类:

package com.example.struts.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.example.struts.actionform.LoginActionForm;

public class LoginAction extends org.apache.struts.action.Action{
    public ActionForward execute(
        ActionMapping mapping,
        ActionForm form,
        HttpServletRequest request,
        HttpServletResponse response) throws Exception {

        LoginActionForm loginForm = (LoginActionForm) form;
        String username = loginForm.getUsername();
        String password = loginForm.getPassword();
        if ("admin".equals(username) && "password".equals(password)) {
            return mapping.findForward("success");
        } else {
            return mapping.findForward("failure");
        }
    }
}

该简单示例中,我们对用户输入进行了简单的检查,若用户名为“admin”,密码为“password”,则跳转至“success”,否则跳转至“failure”。

另一个简单的示例:

package com.example.struts;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport{
    private String username;
    private String password;

    public String execute(){
        if("admin".equals(username) && "password".equals(password)){
            return SUCCESS;
        }else{
            return ERROR;
        }
    }

    public void setUsername(String username){
        this.username = username;
    }
    public void setPassword(String password){
        this.password = password;
    }
    public String getUsername(){
        return username;
    }
    public String getPassword(){
        return password;
    }
}

结论

这就是关于Java中Struts配置的详细攻略,希望对你有帮助。在实际应用中,我们可能需要根据具体需求进行更加复杂的配置。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java中struts配置 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • java基础知识之FileInputStream流的使用

    Java基础知识之FileInputStream流的使用 在Java中,FileInputStream(字节流)是用于读取文件的流类之一。该类继承了InputStream类,并且提供了基本的方法来读取数据。 前置知识 在使用FileInputStream类之前,需要掌握以下Java基础知识: 输入/输出流(I/O Stream) Java中的文件操作概念,如…

    Java 2023年5月27日
    00
  • Java实现自定义ArrayList类的示例代码

    下面我将详细讲解如何使用Java来实现自定义的ArrayList类的完整攻略。 1. 什么是ArrayList? 在开始编写代码之前,我们需要先了解一下ArrayList是什么。ArrayList是Java集合框架中的一种数据结构,它是基于数组实现的,可以存储任意类型的对象。与数组相比,ArrayList有更多的优点,如可以自动扩容、支持插入、删除操作等。 …

    Java 2023年5月26日
    00
  • java实现简单快递系统

    下面我将详细讲解“java实现简单快递系统”的完整攻略。 确定系统需求和功能 在实现简单快递系统前,需要先确定系统的需求和功能。例如: 快递员可以通过系统输入包裹信息,包括收件人信息和快递信息。 用户可以通过系统查询包裹状态和物流信息。 系统可以自动生成运单号并存储包裹信息。 系统可以自动发送短信或邮件通知用户包裹状态更新。 系统可以支持多种快递公司,用户可…

    Java 2023年5月18日
    00
  • Java过滤器与监听器间区别与联系

    Java过滤器与监听器的区别和联系 本文主要讲解Java Web中过滤器和监听器的区别和联系。过滤器(Filter)和监听器(Listener)都可以通过Web.xml进行配置,并且也可以通过注解的方式进行配置。 过滤器(Filter) 过滤器是在请求被处理之前对http请求和response进行预处理的技术,它可以拦截客户端发送的请求和服务器返回的响应,同…

    Java 2023年6月15日
    00
  • maven 解包依赖项中的文件的解决方法

    当我们使用 Maven 来管理 Java 项目时,常常需要依赖于其他的第三方库,我们通常会将这些依赖项打包到项目的 war 或 jar 文件中。但是有些情况下,我们需要访问依赖项中的文件,如配置文件、资源文件等,这时我们就需要将依赖项中的文件解包到特定的位置。下面是解决方法的详细攻略。 方法一:使用 Maven 插件解包依赖项 在项目的 POM.xml 文件…

    Java 2023年5月19日
    00
  • Java的wait(), notify()和notifyAll()使用心得

    Java 中的 wait(), notify() 和 notifyAll() 方法 介绍 在 Java 中,线程是独立执行的,但是在某些情况下,我们希望线程之间能够进行同步和通信。这时,Java 提供了一些同步机制。其中,使用最广泛的机制就是对象的 wait()、notify() 和 notifyAll() 方法。 线程可以通过调用 wait() 方法来等待…

    Java 2023年5月26日
    00
  • java基础入门之IO流

    Java基础入门之IO流 本文主要介绍Java IO流的基础知识,包括IO流的概述、IO流分类、IO流的读取和写入操作以及常用IO流示例。 IO流概述 Java IO(Input/Output)流是一种用于处理输入/输出的机制。它提供了一种操作任意数据源的方式,包括磁盘文件、网络连接等等。 Java IO流由四个抽象类组成: InputStream:字节输入…

    Java 2023年5月26日
    00
  • Java常用函数式接口总结

    Java常用函数式接口总结 Java已经从JDK 8开始支持函数式编程,因此添加了许多的函数式接口,包括常用的Function、Predicate、Consumer等等。本文将对Java中常用的函数式接口进行总结,并给出相应的使用示例。 Function Function接口定义了一个输入参数类型,返回一个结果类型的方法,通常用于将一个类型的值转换为另一个类…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部