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日

相关文章

  • Spring Boot 整合 Thymeleaf 实例分享

    下面是 Spring Boot 整合 Thymeleaf 实例分享的完整攻略。 什么是Spring Boot和Thymeleaf Spring Boot是Spring框架的一款快速开发框架,可以快速搭建一个基础的web应用 Thymeleaf是一款非常流行的模板引擎,可以将数据渲染成HTML页面,使用简单,容易上手 如何整合Spring Boot和Thyme…

    Java 2023年5月20日
    00
  • springboot2.x整合shiro权限框架的使用

    下面我将详细讲解springboot2.x整合shiro权限框架的使用的完整攻略。 一、前置知识 在学习springboot2.x整合shiro权限框架之前,需对以下知识点进行了解: Spring框架 SpringMVC框架 Maven工具 Shiro框架 二、整合步骤 1.创建Springboot工程 在Maven中新建一个springboot项目,添加w…

    Java 2023年5月20日
    00
  • IntelliJ IDEA 2021.3 正式发布之支持远程开发、IDE故障排查等多项优化改进

    下面是详细讲解IntelliJ IDEA 2021.3 正式发布之支持远程开发、IDE故障排查等多项优化改进的完整攻略。 1. 远程开发支持 IntelliJ IDEA 2021.3 版本新增了远程开发支持,可以让开发者在本地使用 IntelliJ IDEA 集成开发环境开发远程的应用程序。该功能可以大大节省开发人员的时间和自由度,避免了传统远程登录进行开发…

    Java 2023年5月27日
    00
  • Java 多线程实例详解(二)

    Java 多线程实例详解(二) 本文是Java多线程实例系列的第二篇,将进一步介绍Java多线程的实现方式以及相关应用的代码实例。 线程的生命周期 Java线程有5种状态: 新建状态(New):当线程被创建时,它处于新建状态。 就绪状态(Runnable):线程获得了CPU资源,并可以执行,但它还未开始执行它的代码。 运行状态(Running):线程正在执行…

    Java 2023年5月19日
    00
  • SpringBoot整合Spring Security的详细教程

    SpringBoot整合SpringSecurity的详细教程 Spring Security是Spring框架家族中的一员,是基于Spring的实现了安全控制的框架。 SpringBoot是一个快速开发的框架,整合SpringSecurity可以让开发者快速实现安全控制功能。 下面我们一步步的来学习如何在SpringBoot中整合SpringSecurit…

    Java 2023年5月15日
    00
  • 基于servlet的执行原理与生命周期(全面解析)

    基于servlet的执行原理与生命周期(全面解析) Servlet 是一种 Java 技术,可以用于生成动态 Web 内容。本文将详细介绍 Servlet 的执行原理与生命周期。 Servlet 执行原理 Servlet 是基于请求/响应模型的,当客户端发送请求时,Servlet 容器会根据请求的 URL 将请求分发到相应的 Servlet,并调用相应的方法…

    Java 2023年5月26日
    00
  • Hibernate5新特性介绍

    Hibernate5新特性介绍 Hibernate是一个广泛使用的ORM(对象关系映射)框架,致力于使得数据库的操作变得更为容易和快捷。而在Hibernate5中,新增了一些重要的特性,既改善了ORM的用法,又增强了其性能和扩展性。本篇文章将会介绍Hibernate5中的一些新特性,并带有相应的示例,以便让读者更好地理解和使用。 JPA2.1规范的实现 Hi…

    Java 2023年5月19日
    00
  • Java 切割字符串的几种方式集合

    Java 切割字符串的几种方式集合 在Java中,切割字符串是非常常见的操作。本文将介绍Java中切割字符串的几种方式,包括使用StringTokenizer、split()函数和正则表达式等。 使用StringTokenizer java.util.StringTokenizer类是Java内置用来分割字符串的类,它可以将一个字符串按照指定的分隔符进行分割…

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