我们将使用 Struts 搭建一个简单的应用,当用户发送 HTTP 请求时,Action 类响应并设置返回信息,JSP 页面显示 Action 类中设置的信息。

首先,我们使用 Maven 的 maven-archetype-webapp 模版创建创建一个 StrutsDemo 项目。创建完成之后检查一下工程的 JDK 版本、classpath 路径等基本信息(详见这里)。

之后修改 pom.xml 文件,导入依赖的 jar 包:

 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.chanshuyi.sshm</groupId>
   <artifactId>StrutsDemo</artifactId>
   <packaging>war</packaging>
   <version>1.0-SNAPSHOT</version>
   <name>StrutsDemo Maven Webapp</name>
   <url>http://maven.apache.org</url>

     <properties>
         <struts.version>2.3.24</struts.version>
     </properties>

   <dependencies>
       <!-- 1. Struts -->
       <dependency>
           <groupId>org.apache.struts</groupId>
           <artifactId>struts2-core</artifactId>
           <version>${struts.version}</version>
       </dependency>
   </dependencies>
   <build>
     <finalName>StrutsDemo</finalName>
       <plugins>
           <!--  Maven的Tomcat插件(支持Maven以"tomcat7:run"方式启动web项目)  -->
           <plugin>
               <groupId>org.apache.tomcat.maven</groupId>
               <artifactId>tomcat7-maven-plugin</artifactId>
               <version>2.1</version>
               <configuration>
                   <port>5050</port>
                   <path>/</path>
                   <uriEncoding>UTF-8</uriEncoding>
                   <finalName>mgr</finalName>
                   <server>tomcat7</server>
               </configuration>
           </plugin>
       </plugins>
   </build>
 </project>

第17行导入了 Struts 的依赖包。

第34行导入了 tomcat 插件,可以通过 maven 命令行的方式启动项目,而不用在本地用 tomcat 启动。

第 39 行配置的端口就是我们之后要 tomcat 启动的端口。

创建包 com.chanshuyi.action,并创建 UserAction:

package com.chanshuyi.action;

import com.opensymphony.xwork2.ActionSupport;

/**
 * Created by chanshuyi on 2016/1/18.
 */
public class UserAction extends ActionSupport{

    public String login(){
        msg = "Hello Man.";
        return SUCCESS;
    }

    public String msg;

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }
}

在 resources 下创建 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>
     <!-- 所有匹配*.action的请求都由struts2处理 -->
     <constant name="struts.action.extension" value="action" />
     <!-- 是否启用开发模式(开发时设置为true,发布到生产环境后设置为false) -->
     <constant name="struts.devMode" value="true" />
     <!-- struts配置文件改动后,是否重新加载(开发时设置为true,发布到生产环境后设置为false) -->
     <constant name="struts.configuration.xml.reload" value="true" />
     <!-- 设置浏览器是否缓存静态内容(开发时设置为false,发布到生产环境后设置为true) -->
     <constant name="struts.serve.static.browserCache" value="false" />
     <!-- 请求参数的编码方式 -->
     <constant name="struts.i18n.encoding" value="utf-8" />
     <!-- 每次HTTP请求系统都重新加载资源文件,有助于开发(开发时设置为true,发布到生产环境后设置为false) -->
     <constant name="struts.i18n.reload" value="true" />
     <!-- 文件上传最大值 -->
     <constant name="struts.multipart.maxSize" value="104857600" />
     <!-- 让struts2支持动态方法调用,使用叹号访问方法 -->
     <constant name="struts.enable.DynamicMethodInvocation" value="true" />
     <!-- Action名称中是否还是用斜线 -->
     <constant name="struts.enable.SlashesInActionNames" value="false" />
     <!-- 允许标签中使用表达式语法 -->
     <constant name="struts.tag.altSyntax" value="true" />
     <!-- 相当于普通xml配置中的extends,指定默认的继承包 -->
     <constant name="struts.convention.default.parent.package" value="struts-default" />
     <!-- 结果资源所在路径,这个地方要注意,详见下面解释 -->
     <constant name="struts.convention.result.path" value="/jspPage" />
     <!-- 指定以那些后缀结尾的java类package包被搜索,以发现注解 -->
     <constant name="struts.convention.package.locators" value="web,action" />
     <!-- 对于WebLogic,Orion,OC4J此属性应该设置成true -->
     <constant name="struts.dispatcher.parametersWorkaround" value="false" />
     <!-- Action 映射配置 -->
     <package name="basePackage" extends="struts-default">
         <!-- 访问路径:http://localhost:5050/index.jsp -->
         <action name="login" class="com.chanshuyi.action.UserAction"  method="login">
             <result name="success">/index.jsp</result>
             <result name="input">/index.jsp</result>
         </action>
     </package>
 </struts>

在 webapp 目录下创建 index.jsp 文件:

<%@page language="java" pageEncoding="UTF-8"%>
<%@ page contentType="text/html;charset=utf-8" %>
<%@ page isELIgnored="false"%>
<html>
<body>
<h2>${msg}</h2>
</body>
</html>

修改 web.xml 文件:

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>StrutsDemo Application</display-name>
    <!-- Struts核心过滤器 -->
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

创建完成后,项目结构是这样的:

接下来,我们用 Maven 命令行的方式启动项目,并尝试访问。

点击“Run -> Edit Configurations” 打开 “运行/调试窗口”

配置 StrutsDemo 项目的 Maven 启动命令:

之后我们打开浏览器访问:http://localhost:5050/login.action

如果看到下面的页面,那就是成功了。

项目文件链接:http://pan.baidu.com/s/1c1czEUW 密码:qyhk

玩转 SSH(一):使用 Struts 搭建简单站点的更多相关文章

  1. nginx+php+mysql+wordpress搭建简单站点 安装及配置过程

    环境 阿里云ECS云服务器 CPU:1核 内存:2G 操作系统:Centos 7.3 x64 地域:华北 2(华北 2 可用区 A) 系统盘:40G 安装及配置 主要使用 nginx . php 和 ...

  2. 玩转 SSH 目录

    在做一个新的项目的时候,需要重新搭建一个项目. 于是趁着这个机会把之前学的几个框架的搭建都写一写,整理一下,同时也可以给大家一些参考.何乐而不为叻. 在这个系列中, 我将使用 IntelJ IDEA ...

  3. 玩转SSH(五):Struts + Spring + MyBatis(注解版)

    本文将在 玩转SSH(四):Struts + Spring + MyBatis 的基础上进行一些小的改动,将原本是 xml 配置方式的项目,改成注解的配置方式. 要将项目改成注解方式,一般是将在 Sp ...

  4. 玩转Node.js(四)-搭建简单的聊天室

    玩转Node.js(四)-搭建简单的聊天室 Nodejs好久没有跟进了,最近想用它搞一个聊天室,然后便偶遇了socket.io这个东东,说是可以用它来简单的实现实时双向的基于事件的通讯机制.我便看了一 ...

  5. eclipse中SSH三大框架环境搭建<二>

    通过上一篇博客我们可以轻松搭建strtus2的环境,接下来由我来继续介绍spring的环境搭建以及spring注入的简单使用 相关链接:eclipse中SSH三大k框架环境搭建<一> ec ...

  6. eclipse中SSH三大框架环境搭建<一>

    这里先简单介绍一下我用的三大框架版本以及下载地址 相关链接:eclipse中SSH三大框架环境搭建<二> eclipse中SSH三大框架环境搭建<三> struts-2.3.3 ...

  7. 【转载】Ssh整合开发介绍和简单的登入案例实现

    Ssh整合开发介绍和简单的登入案例实现 Ssh整合开发介绍和简单的登入案例实现 一  介绍: Ssh是strtus2-2.3.1.2+ spring-2.5.6+hibernate-3.6.8整合的开 ...

  8. eclipse中SSH三大框架环境搭建<三>

    相关链接: eclipse中SSH三大框架环境搭建<一> eclipse中SSH三大框架环境搭建<二> 引言:通过上两篇文章我们已经可以掌握struts2和spring的环境的 ...

  9. Ubuntu 14.04搭建简单git服务器

    /****************************************************************************** * Ubuntu 14.04搭建简单gi ...

随机推荐

  1. java_获取多个文件夹下所有.java源码的总行数

    import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOExcepti ...

  2. Python脚本收集腾讯云CDN日志,并入ELK日志分析

    负责搭建公司日志分析,一直想把CDN日志也放入到日志分析,前些日志终于达成所愿,现在贴出具体做法: 1.收集日志 腾讯云CDN日志一般一小时刷新一次,也就是说当前只能下载一小时之前的日志数据,但据本人 ...

  3. [Qt初级] 解决 中QMainWindow和QDockWidget添加布局失败问题

    初接触Qt,使用的教程是陆文周编写的<Qt5开发及实例>一书. 其中有关于QDockWidget.QStackedWidget这些类的介绍和使用实例. 要首先说明的是书上讲的非常的清楚,代 ...

  4. Web前端与移动开发学习路线图

    文章转载自「开发者圆桌」一个关于开发者入门.进阶.踩坑的微信公众号 这里整理的Web前端与移动开发学习路线图包含初中级两个部分,你可以通过百度云盘下载观看对应的视频 链接: http://pan.ba ...

  5. TP框架数据库操作(增删改)

    首先选择一张表,对其进行操作: 对数据库操作之前首先要创建模型: $n = M("account"); 数据库添加数据: 1.使用数组: 1.使用数组 $arr = array(& ...

  6. HTML初学者常用标签及属性

    1.HTML5头部结构   [DOCTYPE html] 声明文档类型为HTML5文件. 文档声明在HTML5文档必不可少,且必须放在文档的第一行.   [meta标签] 1-charset属性:单独 ...

  7. 说说如何用js实现一个模板引擎

    本文同步更新在: https://github.com/whxaxes/blog/issues/4 ,在 github 看文章显示效果会更好一些. 前言 不知不觉就很长时间没造过什么轮子了,以前一直想 ...

  8. 微信公众平台跳转网页url详解

    1.利用Tomcat服务器部署项目,本地访问可以获取路径资源 2.开辟外网映射,实现全网访问 利用nat123端口映射工具 全网访问 3.将所获取的域名和端口设置到微信页面跳转的url,就完成了该项功 ...

  9. shp文件的读取

    http://blog.csdn.net/q_l_s/article/details/41486813

  10. php流程管理练习

    今天我们做一个流程管理: 1.流程管理的用法是什么样的? 2.怎么发起想要的流程? 3.审批的人要是怎么审批通过? 4.流程审核是不是要挨个走过? 一. 做这个流程管理肯定要有数据库: 二.数据库结束 ...