Struts2的介绍和入门(一)

来源:互联网 发布:linux中查看文件内容 编辑:程序博客网 时间:2024/06/04 22:47

Struts2的介绍和入门(一)


1.Struts2的简单介绍

        Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts2采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离。

2.Struts2出现的原因

我们先一起了解一下JavaEE开发模式的变迁
(1)Servlet开发
       最初JavaEE服务端编程采用的是servlet,servlet设计的目的主要用于产生网页程序,采用servlet就可以开发一款web程序,但是存在很大的问题servlet编写界面非常的复杂繁琐导致开发效率比较低。
(2)JSP+JavaBean开发
       为了解决servlet不适合开发网页的问题,后来sun公司推出了jsp技术来弥补这一缺陷,这时JSP+JavaBean的开发模式就出现了,JSP同时负责请求处理,业务逻辑处理,数据回送,数据显示。JSP+JavaBean开发解决了servlet开发界面繁琐的问题,并且比较直观,在前端处理业务逻辑也更加快速。但是也存在很多的问题
【1】JSP作为前端程序不应该有太多的业务处理
【2】界面显示,业务处理都在JSP中,导致代码难以维护
【3】业务逻辑暴露在前端不够安全
(3)JSP+Servlet+JavaBean开发
       为了解决JSP+JavaBean开发模式的不足,出现了JSP+Servlet+JavaBean开发模式。在JSP+Servlet+JavaBean开发模式中,JSP负责界面显示,Servlet负责请求处理,JavaBean负责业务处理,这基本上满足了MVC模式,下面简单介绍一下MVC模式。

MVC的思想
M:代表的是模型,业务逻辑层,用于封装业务逻辑和数据模型
V:代表的是视图,表示层,负责界面显示,就是实现界面显示,通常是数据的输入以及数据的呈现
C:代表的是控制,控制层,负责处理请求,控制整个流程,实现View和Model层的协同工作
深刻内涵
【1】MVC框架的出现是为了将URL映射到Java类或者Java方法中,这是MVC框架的核心功能
【2】MVC框架同时也要负责封装用户提交的数据
【3】处理请求数据-----调用相关业务业务处理-----封装响应数据
【4】将响应数据进行显示
于是更好的实现了Controller的Struts2便出现了
3.Struts2入门案例
(1)工程目录
       这个工程目录包含了运行Struts2程序最少需要的jar包,为了精确我一个一个试过的,同时包含了struts.xml配置文件,和一个UserAction.java文件代码会在下面贴出来
(2)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.devMode" value="true" />    <constant name="struts.action.extension" value="action" /><constant name="struts.ui.theme" value="simple" />    <package name="default" extends="struts-default" namespace="/">        <action name="hello" class="cn.liujunhua.web.action.UserAction" method="login">            <result name="success">/WEB-INF/jsp/hello.jsp</result>        </action>    </package></struts>

(3)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" id="WebApp_ID" version="3.1">  <display-name>struts2-hello</display-name>    <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list>    <filter>  <filter-name>StrutsPrepareAndExecuteFilter</filter-name>  <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>  </filter>    <filter-mapping>  <filter-name>StrutsPrepareAndExecuteFilter</filter-name>  <url-pattern>/*</url-pattern>  </filter-mapping>  </web-app>

(3)UserAction代码
package cn.liujunhua.web.action;import com.opensymphony.xwork2.ActionSupport;@SuppressWarnings("serial")public class UserAction extends ActionSupport {public String login() throws Exception {return "success";}}



0 0
原创粉丝点击