Struts2的初步介绍
Struts2是apache项目下的一个web 框架,普遍应用于阿里巴巴、京东等互联网、政府、企业门户网站。虽然之前存在了很大的安全漏洞,在2013年让苹果、中国移动、中国联通、百度、腾讯、
淘宝、京东、Sohu、民生银行等大型企业的网站均遭毒手。但这也恰恰说明struts2框架在当前应用的优越性,那么到底什么是struts2呢?
Struts2 是目前较为普及和成熟的基于MVC设计模式的web应用程序框架,它不仅仅是Struts1 的升级版本,更是一个全新的Struts架构。最初,是以WebWork框架和Struts框架为基础,通过提供
增强和改进的Struts框架,进而实现简化web技术人员开发工作的目标。不久之后,Webwork框架和Struts社区联合创造了现在流行的Struts2框架。
如果有同学想了解更多的内容的话,推荐大家查看https://www.w3cschool.cn/struts_2/,这里,我们直接进入主题:
1.在搭建struts2之前,首先我们要确保struts2的运行环境正确无误。这里就不多说了,本项目用到的运行环境为:
- JDK 1.8
- Eclipes(IDE)
- Tomcat 7.0
2.如果第一步的运行环境搭建好了,最好能下载最新版本的Struts2 二进制文件,下载地址为 http://struts.apache.org/download.cgi ,在编写本博客时我下载的是 struts-2.5.13-all.zip,当然如果大家害怕后续出现运行时异常,也可以下载这一版本。下载完毕后将压缩包解压。
3.创建一个动态Web项目,启动你的Eclipse,然后打开“File”>“New”>“Dynamic Web Project”,输入的项目名称,比如struts2-test2
4.从解压好的Struts2文件下的lib文件夹中拷贝以下文件到项目 WEB-INF\lib 文件夹。
- commons-fileupload-1.3.3.jar
- commons-io-2.5.jar
- commons-lang-2.5.jar
- commons-lang3-2.5.jar
- commons-logging-1.1.3.jar
- freemarker-2.3.26-incubating.jar
- javassist-3.20.0-GA.jar
- log4j-api-2.8.2.jar
- ognl-3.1.15.jar
- struts2-core-2.5.14.jar
(如果大家没有选择下载和我一样的Struts2版本,那么就找到对应的版本号的jar包)
5.按照如图所示,创建相应的文件
1).UserAction.java
1 package com.nine; 2 3 public class UserAction { 4 5 private String name; 6 7 public String getName() { 8 return name; 9 } 10 11 public void setName(String name) { 12 this.name = name; 13 } 14 15 public String execute() throws Exception { 16 return "success"; 17 } 18 }
UserAction.java 的execute方法返回的结果,要对应struts2.xml
2).struts2.xml
1 xml version="1.0" encoding="UTF-8"?> 2 DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 4 "http://struts.apache.org/dtds/struts-2.0.dtd"> 5 <struts> 6 <package name="helloworld" extends="struts-default"> 7 8 <action name="hello" 9 class="com.nine.UserAction" 10 method="execute"> 11 <result name="success">/hello.jspresult> 12 action> 13 package> 14 struts>
struts2配置文件要注意的是:
1.
2.
3.
4.
3).web.xml
1 xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xmlns="http://java.sun.com/xml/ns/javaee" 4 xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 5 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 6 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 7 id="WebApp_ID" version="3.0"> 8 9 <display-name>Struts 2display-name> 10 <welcome-file-list> 11 <welcome-file>/index.jspwelcome-file> 12 welcome-file-list> 13 14 <filter> 15 <filter-name>struts2filter-name> 16 <filter-class> 17 org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter 18 filter-class> 19 filter> 20 21 <filter-mapping> 22 <filter-name>struts2filter-name> 23 <url-pattern>/*url-pattern> 24 filter-mapping> 25 web-app>
中的内容是部署描述符(web.xml)中,Struts2 应用程序的接入点会定义为一个过滤器为 org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
*并非所有的struts过滤器都是通过上述过滤器完成的,如果有同学在运行时发现找不到这个.class 就查一下对应版本的struts中对应得过滤器是如何定义的
4).index.jsp
1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <%@ taglib prefix="s" uri="/struts-tags"%> 4 DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 5 "http://www.w3.org/TR/html4/loose.dtd"> 6 <html> 7 <head> 8 <title>Hellotitle> 9 head> 10 <body> 11 <h1>Hello World From Struts2h1> 12 <form action="hello" method="post"> 13 <label for="name">Please enter your namelabel><br/> 14 <input type="text" name="name"/> 15 <input type="submit" value="Say Hello"/> 16 form> 17 body> 18 html>
5).hello.jsp
1 <%@ page contentType="text/html; charset=UTF-8" %> 2 <%@ taglib prefix="s" uri="/struts-tags" %> 3 <html> 4 <head> 5 <title>Hello Worldtitle> 6 head> 7 <body> 8 Hello World, <s:property value="name"/> 9 body> 10 html>
6.右键点击项目名称,接着点击“Export”>“WAR File”创建WAR文件,然后将WAR部署到Tomcat的webapps目录中。最后,启动Tomcat服务器并尝试访问URL http://localhost:8080/struts2-test2/index.jsp
输入任意内容,比如 “大圣”
不知道大家完成的怎么样了,如果出现问题,可以在下面进行留言,我会为大家进行解答.