Stuts2学习——HelloWorld
这两天从对Struts一窍不通到成功运行HelloWorld,在SSH这条路上迈出了第一步。
下面我把我的第一个Struts程序放上来:
一、新建web project,配置文件等准备工作
1. 新建一个Web Project项目,这个不用多说了把。
2. 在WebRoot -> WEB-INF -> lib下导入jar包

3. 配置 web.xml、struts.xml、logging.properties文件
(1) 在WEBRoot -> WEB-INF 下新建web.xml,代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<display-name>TestStruts2</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>Struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
web.xml
(2) 在 src 下新建struts.xml,代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
<constant name="struts.devMode" value="true"></constant>
<package name="helloworld" namespace="/helloworld" extends="struts-default">
<global-allowed-methods>regex:.*</global-allowed-methods>
<action name="hello" class="com.mike.struts.HelloWorldAction" method="execute">
<result name="success">/pages/HelloWorld.jsp</result>
</action>
</package>
</struts>
struts.xml
(3) 在 src 下新建logging.properties,代码如下:
org.apache.catalina.core.ContainerBase.[Catalina].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].handlers =java.util.logging.ConsoleHandler
logging.properties
二、 建立一个Action

代码如下:
package com.mike.struts;
public class HelloWorldAction {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String execute() throws Exception {
return "success";
}
}
HelloWorld.java
三、jsp界面代码
1. index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%
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 'index.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="helloworld/hello">
<label for="name">Please enter your name:</label><br>
<input type="text" name="name"/>
<input type="submit" value="Say Hello!"/>
</form>
</body>
</html>
index.jsp
2. 在 WebRoot -> WEB-INF 下,新建一个 pages 文件夹用来存放其它jsp文件,
在 pages 文件夹下,新建HelloWorld,jsp,代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%
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 'HelloWorld.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>
Hello World!
<s:property value="name"/>
</body>
</html>
HelloWorld.jsp
四、整体预览

五、运行结果
1. 打开浏览器,输入url,http://localhost:8080/TestStruts2。

2. 输入内容

3. 点击提交

六、在编写过程中遇到的和需要注意的问题
1. Struts版本为2.5。
2. web.xml的所在位置要注意一下,博主最开始建错地方了。
3. 注意jsp页面上方别忘引入Struts2标签库 <%@ taglib prefix="s" uri="/struts-tags"%>。
4. 对于Struts2.xml配置namespace的详解(引荐其它博主):http://www.cnblogs.com/hongten/archive/2011/07/29/2121450.html
5. 编写完成后,运行出错。

原因是 lib 中的 jar包有一个struts2-rest-plugin-2.5.10.1.jar,把这个jar包删掉就好了。

七、心得体会
在学习Struts2的过程,坐我旁边的同学给予了我很大的帮助,很感激。万事开头难,下定决定很重要,坚持去做更重要!落下多少,就要更加努力多少补回来。希望自己可以不偷懒不懈怠的坚持编程之路。
Stuts2学习——HelloWorld的更多相关文章
- Ext学习-HelloWorld以及基础环境搭建
1.目的 在eclipse中搭建EXTJS的基础环境,学习如何按照从官方下载的代码中搭建新的Extjs工程 2.主要包含内容: 1.ExtJS文件下载以及目录说明 2.ExtJS开发环境 ...
- SpringBoot学习helloworld
这几天开始学习springBoot记录一下(Hello World) pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0 ...
- [java]基础学习HELLOWORLD系列
(一)手把手教你做JDK环境变量配置 步骤 1 : 首先看配置成功后的效果 点WIN键->运行(或者使用win+r) 输入cmd命令 输入java -version 注: -version是小写 ...
- Android Studio 学习 - HelloWorld
今天是学习Android Studio的第2天,加油! 1. 首先要记录下使用Android Studio的一个代码自动完成的功能.平常基本上用Delphi,乍一换工具,各种不习惯,或者说不熟悉.按照 ...
- android-----JNI学习 helloworld
(1)新建android工程 (2)添加NDK路径 (3)添加本地支持 给本地库起名 此时工程目录下会自动生成jni文件夹 此时Makefile也自动生成 LOCAL_PATH := $(call m ...
- springboot入门学习-helloworld实例
今天学习了springboot,发现使用springboot创建项目确实非常方便,创建第一个springboot项目之前先看一下下面两个问题. 一.什么是springboot? Spring Boot ...
- Java基础学习-HelloWorld案例的编写和运行
一.HelloWorld案例的流程: 第一步:编写一个.java的源文件.通过Windows自带的记事本文件就可以完成. 第二步:将.java的源文件通过编译器编译生成 ...
- Spring学习--HelloWorld
Spring: Spring 是一个开源框架. Spring 是为简化企业级应用开发而生,使用 Spring 可以使简单的 JavaBean 实现以前只有 EJB 才能实现的功能. Spring 是一 ...
- Java基础学习-HelloWorld案例常见问题
注意:控制台曾经写过的命令,我们可以通过上下箭头进行选择,不需要重新进行输入,以节省时间,提高效率. 1.单词拼写问题 -class 不要写成Class -String ...
随机推荐
- 使用Zabbix监控ZooKeeper服务的健康状态
一 应用场景描述 在目前公司的业务中,没有太多使用ZooKeeper作为协同服务的场景.但是我们将使用Codis作为Redis的集群部署方案,Codis依赖ZooKeeper来存储配置信息.所以做好Z ...
- WPF获取原始控件样式
要获取WPF控件的原始样式,需要我们安装Blend for Visual Studio. 然后,我们打开Blend for Visual Studio,创建一个WPF项目. 然后,我们向页面拖动一个B ...
- 杂项-Java:FreeMarker
ylbtech-杂项-Java:FreeMarker 1.返回顶部 1. FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页.电子邮件.配置文件.源 ...
- 用C#读取txt文件的方法(转)
.使用FileStream读写文件 文件头: using System; using System.Collections.Generic; using System.Text; using Syst ...
- Linux压缩命令(zip/gz/bz2/tar/tar.gz/tar.bz2)
一.Linux的压缩格式 .zip . gz . bz2 .tar 1..zip格式(Linux和Windows是可以互传的) 压缩命令 语法:zip 文件名.zip 文件名 ------压缩 ...
- bzoj 1050: [HAOI2006]旅行comf【枚举+并查集】
m是5000,就想到了直接枚举比例 具体做法是是先把边按照边权从小到大排序,然后先枚举最小边权,再枚举最大边权,就是从最小边权里一个一个加进并查集里,每次查st是否联通,联通则退出,更新答案 #inc ...
- 一个简陋的个人小项目,也是个人第一个真正意义上的独立项目——Graph
由来 我最早接触到图这个概念是在大二的离散数学当中图论相关的内容,当时是以著名的哥尼斯堡七桥问题引出图论的概念,现在依然记忆犹新(不过只是记得这个名字,具体的解题思路我重新温习了一下才想起来),当时也 ...
- centos docker 安装mysql 8.0
centos 版本 CentOS Linux release 7.5.1804 (Core) 内核版本: 3.10.0-862.el7.x86_64 下载最新版mysql docker pull m ...
- 洛谷 P1064 金明的预算方案(有依赖的背包问题)
题目描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间.更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”.今 ...
- JavaScript编程艺术-第10章-10.1-动画
10.1—最简单的动画 ***代码亲测可用*** 动画:让元素位置随着时间而不断地发生变化 HTML: <!DOCTYPE HTML> <html> <head> ...