struts2第一个入门案例

author author     2022-08-01     705

关键词:

  一.如何获取Struts2,以及Struts2资源包的目录结构的了解

   Struts的官方地址为http://struts.apache.org 在他的主页当中,我们可以通过左侧的Apache Struts菜单下的Release链接,可以查看Struts各个阶段的词资源,也可以通过Archive Site链接访问来获取版本。

   那我们这里以struts-2.3.15.1-all为例。

技术分享

 

 1.App目录下包含了官方提供的Struts2应用示例,为开发者提供了很好的参照。

 2.doc目录下是官方提供的Struts2文档。

 3.lib目录下是Struts的发行包及其依赖包。

 4.src目录是Struts2项目该版本对应的源码。

 其余部分是Struts2及其依赖包的使用许可协议和声明。

   二.入门案例

1.引入jar包:

   新建一个Java Web项目,将Struts2框架所需的jar包添加到项目的lib文件夹上,Struts2项目所依赖的基础jar包如下:

  技术分享

  2.创建一个登录案例的界面

   01.login.jsp页面

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<!-- 导入Struts2 核心标签库-->
<%@taglib uri="/struts-tags" prefix="s"%>
<head>
<base href="<%=basePath%>">

<title>My JSP ‘login.jsp‘ starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
    <form action="Login3.action" method="post">
        用户名:<input type="text" name="user.name" /> 密码:<input type="text"
            name="user.pwd" /> <input type="submit" value="登录">
    </form>
</body>
</html>

 

   02.登录失败页面:final.jsp:

   

技术分享
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
    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%>">

<title>My JSP ‘final.jsp‘ starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>

<body>
    <h1>登录失败</h1>
</body>
</html>
View Code

    03.登录成功页面scuess.jsp:

技术分享
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<%@ taglib uri="/struts-tags" prefix="s"%>
<head>
<base href="<%=basePath%>">

<title>My JSP ‘scuess.jsp‘ starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>

<body>
    <h1>登录成功! 欢迎你,<s:property value="user.name"/> </h1>
</body>
</html>
View Code

   3.创建cn.entity.User类:

技术分享
package cn.entity;

//用户类
public class User {
    private String name;
    private String pwd;

    public User() {
        super();
        // TODO Auto-generated constructor stub
    }

    public User(String name, String pwd) {
        super();
        this.name = name;
        this.pwd = pwd;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

}
View Code

     4.创建cn.action.LoginAction类:

技术分享
package cn.acction;

import cn.entity.User;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;

public class LojinAction implements Action {
    // 注意User对应必须要有get和set封装不然Strut2框架不会帮你自动装备User对象
    private User user;

    @Override
    public String execute() throws Exception {
        // 如果密码为123,用户名为123表示登录成功
        if (user.getName().equals("123") && user.getPwd().equals("123")) {
            // 表示登录成功。
            return SUCCESS;

        } else {
            // 表示登录失败
            return ERROR;
        }

    }

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

}
View Code

    5.配置web.xml文件:

技术分享
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <display-name></display-name>    
  <!-- 添加struct2的核心过滤器 -->
  <filter>
   <filter-name>struct</filter-name>
  <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
              
  </filter>
  <filter-mapping>
  <filter-name>struct</filter-name>
  <url-pattern>/*</url-pattern>
  </filter-mapping>
  
  
  <welcome-file-list>
    <welcome-file>login.jsp</welcome-file>
  </welcome-file-list>
</web-app>
View Code

    6.在Src目录下创建struts.xml文件:

技术分享
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
    <!-- 配置文件中只要添加以下配置,那么以后修改配置文件不用重启tomcat -->
    <constant name="struts.devMode" value="true"/>
    <package name="default" namespace="/" extends="struts-default">
      <!-- 登录案例 -->
       <action name="Login" class="cn.acction.LojinAction">
       <result name="scuess">
          Login/scuess.jsp
       </result>
       <result name="error">
        Login/final.jsp
       </result>
       </action>
    </package>
</struts>
View Code

 

    执行流程图:

 

    技术分享

   注意点:

      1.一定要在web.xml中配置struts2核心过滤器。

      2.from表单的action提交的名字要和struts.xml中的action节点的名字保存一致。

      3.struts.xml的名字不要写错。

      4.表单的input的name属性值不要写错,要写成执行Action类中成员变量的属性名。

      

 

 

   

struts2第一个入门案例

最近刚刚学习了Struts2的一些基本内容下面我来利用Struts2实现一个小例子想要写Struts2的代码Jia包必不可少如下:8个Jia包必不可少然后就是配置了,大家都知道框架就是配置红色标记的用意是只要是修改的jsp页面的东西都不用重... 查看详情

struts2第一个入门小案例

Struts2框架预先实现了一些功能   1:请求数据自动封装   2:文件上传的功能   3:对国际化功能的简化   4:数据校验的功能第一:首先需要说明的是Struts就是基于MVC模式的框架!(struts... 查看详情

struts2——第一个案例(代码片段)

步骤如下编程工具等百度云分享1、创建一个web项目2、引入struts2的基本jar包struts2的基本jar包百度云链接:https://pan.baidu.com/s/1LBnPJhFjqHuU7XW6m9xIqA密码:d6wg3、新建一个web.xml1<?xmlversion="1.0"encoding="UTF-8"?>2<web-appversion="3.0"3x 查看详情

struts2入门案例

Struts2是常用的web层框架,jar包下载路径开发包目录结构介绍在web工程中引入struts2的开发包如何在web。xml中配置struts2的核心过滤器<filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter 查看详情

struts2入门案例

1:导入对应的核心jar包  2:配置Web<?xmlversion="1.0"encoding="UTF-8"?><web-appxmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation=" 查看详情

spring_第一个spring入门案例

今天我们来写我们的第一个spring 第一步建立一个javaproject第二步添加我们的五个jar文件第三步在项目中建立一个com.zk.spring包第四步建立我们的userservice接口和userserviceImpl.java文件 在我们的UserService和UserServiceImpl添加第五步... 查看详情

关于ideamaven工程创建struts2入门配置及案例

1.在maven工程下添加需要导入的jar包节点<dependencies><dependency><groupId>org.apache.struts</groupId><artifactId>struts2-core</artifactId><version>2.3.24</version>< 查看详情

第一个struts案例及分析

...为框架已经实现了一些功能,这样就可以提高开发效率!Struts2=struts1 + xwork  (struts是基于MVC模式的框架)struts2预先实现的功能:  1、请求数据自动封装  2、文件的上传  3、国际化功能的简化  4、数据效验 ... 查看详情

springmvc的第一个入门案例

用户提交一个请求,服务器端处理器在接收到这个请求后,给出一条欢迎信息,在页面中显示。第一步:导入jar包在原有Springjar包基础上添加2个jar包spring-webmvc-4.2.0.RELEASE.jar 作用:对Springmvc的实现spring-context-support-4.2.0.RELEASE.... 查看详情

struts2入门

1-1Struts2入门概述课程目标01Struts2的概念02MVC03Struts的发展历史04第一个Struts2例子05Struts2的工作原理及文件结构06深入讲解Struts2的用法一、Struts2的概念Struts2是Java程序员所必须学习的一门课程。Struts的英文单词是什么意思? &nbs... 查看详情

struts简单入门

本章主要讲解Struts2简单入门,第一个程序的建立全部代码下载:Github链接:链接https://github.com/wpeace1212/javaBlog/tree/master/struts2Demo写文章不易,欢迎大家采我的文章,以及给出有用的评论,当然大家也可以关注一下我的github;多谢... 查看详情

freemarker页面静态化技术使用入门案例

...。这样一来就减少数据库交互,从而提高查询性能。 Struts2默认使用freemarker实现自定义标签模板,项目导入struts2就已经导入了freemarkerjar包。 使用Freemarker步骤:&n 查看详情

新手小白学java_idea的第一个入门案例(代码片段)

...ipse,那你一定知道eclipse有自己的工作空间,这是一个文件夹,用来存放我们自己写的代码我们就可以在这个工作空间里创建多个JavaProject编写代码了。但是~IDEA的结构与elips 查看详情

intellijideamybatis入门案例(代码片段)

最近打算学习ssm框架 Mybatis作为入门的第一个持久层框架,学习起来实在费劲。故写此文章作为入门案例。先打开IDEA建立一个Maven项目,目录结构如下:源代码已经上传至GitHub https://github.com/Wo-com/mybatis_demo,需要的点击下... 查看详情

springboot入门及第一个案例(代码片段)

...3)SpringBoot使部署变简单4)SpringBoot使监控变简单二:创建第一个SpringBoot工程&nb 查看详情

1mybatis入门案例(代码片段)

...置文件     IUserDao.xml2 环境搭建的注意事项第一个:创建IUserDao.xml和IUserDao.java时名称是为了和我们之前的知识保持一致。     在Mybat 查看详情

❤️harmonyos(鸿蒙)❤️——单击事件(超细入门案例)(代码片段)

...文档1.4、实现步骤二、案例实现2.1、创建项目2.2、定义第一个页面(XML文件)2.3、定义按钮组件2.4、定义第二个页面(Java代码)2.5、定义的按钮绑定单击事件2.6、实现ClickedListener接口并重写onClick()方法三、案例测试3.1、登陆远程模拟... 查看详情

2个案例带你迅速入门pythonflask框架

Flask是python中非常流行的一个web框架,容易学习。这篇文章主要通过2个实际案例讲解Flask如何使用。第一个例子是实现一个调用公交车到站信息的接口服务;第二个例子是通过接口展示所有的测试报告。Flask安装安装pythonpipinstallf... 查看详情