玩转 SSH(一):使用 Struts 搭建简单站点
我们将使用 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 搭建简单站点的更多相关文章
- nginx+php+mysql+wordpress搭建简单站点 安装及配置过程
环境 阿里云ECS云服务器 CPU:1核 内存:2G 操作系统:Centos 7.3 x64 地域:华北 2(华北 2 可用区 A) 系统盘:40G 安装及配置 主要使用 nginx . php 和 ...
- 玩转 SSH 目录
在做一个新的项目的时候,需要重新搭建一个项目. 于是趁着这个机会把之前学的几个框架的搭建都写一写,整理一下,同时也可以给大家一些参考.何乐而不为叻. 在这个系列中, 我将使用 IntelJ IDEA ...
- 玩转SSH(五):Struts + Spring + MyBatis(注解版)
本文将在 玩转SSH(四):Struts + Spring + MyBatis 的基础上进行一些小的改动,将原本是 xml 配置方式的项目,改成注解的配置方式. 要将项目改成注解方式,一般是将在 Sp ...
- 玩转Node.js(四)-搭建简单的聊天室
玩转Node.js(四)-搭建简单的聊天室 Nodejs好久没有跟进了,最近想用它搞一个聊天室,然后便偶遇了socket.io这个东东,说是可以用它来简单的实现实时双向的基于事件的通讯机制.我便看了一 ...
- eclipse中SSH三大框架环境搭建<二>
通过上一篇博客我们可以轻松搭建strtus2的环境,接下来由我来继续介绍spring的环境搭建以及spring注入的简单使用 相关链接:eclipse中SSH三大k框架环境搭建<一> ec ...
- eclipse中SSH三大框架环境搭建<一>
这里先简单介绍一下我用的三大框架版本以及下载地址 相关链接:eclipse中SSH三大框架环境搭建<二> eclipse中SSH三大框架环境搭建<三> struts-2.3.3 ...
- 【转载】Ssh整合开发介绍和简单的登入案例实现
Ssh整合开发介绍和简单的登入案例实现 Ssh整合开发介绍和简单的登入案例实现 一 介绍: Ssh是strtus2-2.3.1.2+ spring-2.5.6+hibernate-3.6.8整合的开 ...
- eclipse中SSH三大框架环境搭建<三>
相关链接: eclipse中SSH三大框架环境搭建<一> eclipse中SSH三大框架环境搭建<二> 引言:通过上两篇文章我们已经可以掌握struts2和spring的环境的 ...
- Ubuntu 14.04搭建简单git服务器
/****************************************************************************** * Ubuntu 14.04搭建简单gi ...
随机推荐
- 用qemu搭建aarch64学习环境
作者信息 作者: 彭东林 邮箱: pengdonglin137@163.com QQ: 405728433 软件平台 主机: Ubuntu14.04 64位版本 模拟器:Qemu-2.8.0 Linu ...
- 第四章:JQuery选择器
一.使用选择器的目的 从页面上的万万千千个元素中选择自己需要的. 二.选择器的分类 1.基本选择器 *:标签 *:类 *:ID 交集 AB AB共同的部分 并集 A,B AB使用相同的 ...
- Android学习20--OpenGL的"mapPoints"
在OpenGL中有时会需要求一个3维空间中的点在平移(缩放,旋转)后坐标是多少.需求相当于二维的mapPoints.可以通过这个函数实现 void multiplyMV (float[] result ...
- 解决Ubuntu不能连接xshell
首先,判断Ubuntu是否安装了ssh服务: 1.ps -e |grep ssh 如果服务已经启动,则可以同时看到“ssh-agent”和“sshd”,否则表示没有安装服务,或没有开机启动 2.安装s ...
- windows 地址空间分配
当系统创建一个进程同时为其创建它地址空间时,此地址空间中大部分都是闲置的.为了使用这部分地址空间,我们必须调用VirtualAlloc来分配其中的区域.分配区域的操作被称为预定. 当应用程序预定地址空 ...
- CSS下拉菜单
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...
- mysql uodate select子查询
UPDATE user SET pwd='123' WHERE id in ( SELECT id from user WHERE username = 'zx' ); 报错[Err] 1093 ...
- 讲一个使用jquery-slick旋转木马效果插件案例
效果展示连接 http://www.jqcool.net/demo/201405/jquery-slick/ 今天刚接触这个插件,被这插件搞的大脑风暴了 所以来记录一下使用方法 首先注意一点 不特别标 ...
- Java并发之需要了解但不能太依赖的东东
<Java 编程思想>在并发一章中提到了Sleep休眠.优先级.后台线程,提醒读者需要了解但又不能太依赖他们.就让我们一起看看吧. 休眠Sleep import java.util.con ...
- appium初学者,使用之检查appium环境报错Could not detect Mac OS X Version from sw_vers output: '10.12.1’,
这个问题存在的原因就是appium不兼容最新的mac10.12版本. 由于10.12是最新mac版本,appium1.5.3并未提供支持,所以: 在终端输入grep -rl "Could n ...