(21) java web的struts2框架的使用

Posted 洋子哥哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(21) java web的struts2框架的使用相关的知识,希望对你有一定的参考价值。

在javaweb开发过程中,如果只使用servlet,jdbc,jsp进行开发,也可以遵从MVC的模式,这时候,servlet相当于control层,属于负责处理业务逻辑的控制器,同时也需要对获取和返回数据,链接的跳转和转发进行封装。那么就显得比较臃肿了。(类似ios开发中的MVC,如果viewController负担了数据处理,业务处理和页面跳转逻辑,会变得臃肿不堪,所以后面MVVM,VIP等模式进一步细化了模块划分)。

struts框架,是apache公司开发的一款基于servlet封装而成的框架,遵从MVC的设计模式,能进一步提高开发效率。

如果脱离struts框架,使用Servlet做项目开发,在项目启动以后,每个模块中的各个接口,都会被可能写成一个Servlet,每个Servlet在服务器启动一个都会在第一访问(可以配置)建时候被创建一个servlet对象。Struts框架,可以通过过滤器,把Servlet降低为一个,通过区分不同的action,来区分不同的业务功能接口,某种程度上优化了Servlet的实现。

 

structs2框架的使用:

1,导入struts2的jar包:

  struts2-core-xxx.jar 核心功能包

  xwork-core-xxx.jar  xword核心包

  commons-fileupload-xxx.jar  文件上传功能包

  commons-io-xxx.jar   io读写支持文件上传功能

  ognl-xxx.jar   ognl表达式支持包

  commons-langxxx.jar lang的扩展

  freemarker-xxx.jar 标签模版庫

  javassist-xxx.jar  字节码处理

  其他按需求导入

2,配置web.xml

  主要是引入过滤器,StrutsPrepareAndExecuteFilter,核心过滤器

	<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>

3,开发Action

  action是动作类,通常继承ActionSupport

  action进行业务处理,执行具体的请求。

    必须返回字符串类型String

    方法无参数。

  

package actions;

import java.io.PrintWriter;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public String login() throws Exception {
		HttpServletResponse response = ServletActionContext.getResponse();  
        response.setContentType("text/html;charset=UTF-8");  
        PrintWriter out = response.getWriter();  
  
        out.write("success");
        out.close();
        return null;
	}
}

  如果返回具体的字符串,客户端会展示struts.xml中配置的result返回页面,返回null,然后进行response write方法,可以单纯返回字符串,相当于api接口

4,配置struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
          "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <package name="actions" extends="struts-default">
    	<action name="login" class="actions.LoginAction" method="login">
    		<result name="success">/index.jsp</result>
    	</action>
    </package> 
</struts>

  name: 访问的接口uri

  class:具体执行的Action类,带完整包名

  method:Action处理的具体函数名

以上是关于(21) java web的struts2框架的使用的主要内容,如果未能解决你的问题,请参考以下文章

Struts2框架 Web.xml, Struts.xml, Action.Java 基本配置

为什么做Java的web开发我们会使用struts2,springMVC和spring这样的框架?

(25) java web的struts2框架的使用-基于表单的文件上传

(27) java web的struts2框架的使用-基于表单的多文件上传

CTFshow刷题日记-WEB-JAVA(web279-300)Struts2全漏洞复现,Java漏洞复现

(22) java web的struts2框架的使用-struts配置文件