你的位置:首页 > 软件开发 > Java > JavaWeb框架SSH_Struts2_(一)

JavaWeb框架SSH_Struts2_(一)

发布时间:2017-11-18 21:00:08
1. Struts2 框架入门及结合Intellj idea完成登陆demo测试 1.1 本章目录: 框架入门Struts2简介Struts2入门案例Struts2执行流程分析 2. 具体内容 2.1 框架入门2.1.1 Struts2简介 ...

JavaWeb框架SSH_Struts2_(一)

1. Struts2 框架入门及结合Intellj idea完成登陆demo测试

 

1.1  本章目录:

 

  • 框架入门
    1. Struts2简介
    2. Struts2入门案例
    3. Struts2执行流程分析

 

2. 具体内容

 

2.1  框架入门


2.1.1  Struts2简介

 

(1). Struts2是一种基于MVC模式的的轻量级Web开发框架。

  MVC模式:MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

  • Model(模型):是应用程序中用于处理应用程序数据逻辑的部,通常模型对象负责在数据库中存取数据;
  • View(视图):是应用程序中处理数据显示的部分,通常视图是依据模型数据创建的;
  • Controller(控制器):是应用程序中处理用户交互的部分,通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

(2). Struts2是以WebWork为核心的,它采用**的机制来处理用户的请求。这样的设计也会使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts2可以理解为webwork的产品。

(3). 区别Struts2和Struts1:

  在技术方面,Stuts1有个核心控制器,但是只提供了一个接口,也就是execute,还要配置actionform之类的,所以依赖性比较强;而Struts2是基于webwork,针对**开发的,也就是所谓的AOP思想,可以配置多个action,用起来比较方便,但是因为请求之前的**有一些注入的操作,速度相对Struts1来说慢一点。

(4). Struts2的优点:

  • 项目开源,使用及拓展方便
  • 提供Exception处理机制
  • Result方式的页面导航,通过Result标签很方便地实现重定向和页面跳转
  • 提供强大的、可以减少页面代码的标签
  • 提供良好的Ajax支持

 

2.1.2  Struts2入门案例

 

   笔者利用Intellj idea写了个简单的案例。希望通过这个简单的案例,能够帮助初步认识struts2的运行流程。当然,还有IntelliJ idea的相关配置操作。笔者使用的是ubuntu的系统,不再讲述idea的安装以及JDK配置,tomcat的配置等等问题,相关教程很多,自己动手找找就好啦。

  (1)到官网上面,下载Struts2的最新版本,推荐下载Struts-xxx-min-lib.zip。下载完成之后,lib目录下应该有如下所示的jar包:

JavaWeb框架SSH_Struts2_(一)

  (2)打开IntellJ idea,创建项目create new Project

JavaWeb框架SSH_Struts2_(一)

  (2)选择Java Enterprises--->Web Application(...)--->Struts2(...)--->Use Library

JavaWeb框架SSH_Struts2_(一)

   (3)选择use library,不要选择Download,因为idea配置的Struts2版本不一定一致,我们直接选择自己下好的Struts2中的jar;选择Create-->(找到步骤(1)中的jar包路径)用Ctrl全部选中加进来。

JavaWeb框架SSH_Struts2_(一)

  (4)接着next---->命名(我这里命名是Struts2_TestDemo_Project)完成后,项目栏如下所示:

JavaWeb框架SSH_Struts2_(一)

  (5)完成的项目中,包括了Struts.

  • 打开File--->Project Structure--->Problem--->如果有问题提示,则单击fix,选择add Struts2 to the artifact--->OK;
  • 修改web.org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
  • 将鼠标点到StrutsPrepareAndExecuteFilter上面出现如下所示提示:

JavaWeb框架SSH_Struts2_(一)

(这个时候直接删掉该行中的"ng."即可,完成后不再有提示)

 

  (6)基本的配置到这里也就完成了,接下来写一个登陆Demo;

  • 后端部分,在src中建一个java包(test_login)---->包中建一个java类(LoginAction)代码如下:

    LoginAction:

package test_login;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport { private String username; private String password; @Override public String execute() throws Exception {  if (username.equals("admin") && password.equals("123")) {   return SUCCESS;  } else {   return LOGIN;  } } public String getUsername() {  return username; } public void setUsername(String username) {  this.username = username; } public String getPassword() {  return password; } public void setPassword(String password) {  this.password = password; }}

 

  • Struts.
<?DOCTYPE struts PUBLIC  "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"  "http://struts.apache.org/dtds/struts-2.5.dtd"><struts> <package name="default" namespace="/" extends="struts-default">  <action name="Login" class="test_login.LoginAction">   <result name="success">/success.jsp</result>   <result name="login">/index.jsp</result>  </action> </package></struts>

 

  • 登录界面index.jsp
<%-- Created by IntelliJ IDEA. User: mairr Date: 17-11-17 Time: 下午6:41 To change this template use File | Settings | File Templates.--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html> <head> <title>用户登陆界面</title> </head> <body> <h1>这是一个用户登陆的地方</h1> <form action="Login.action" method="post"> <table> <tr> <td>用户名:</td> <td><input type="text" name="username"></td> </tr> <tr> <td>密码:</td> <td><input type="password" name="password"></td> </tr> <tr> <td colspan="2" style="text-align: center"><input type="submit" value="登录"></td> </tr> </table> </form> </body></html>

 

  • 登陆成功跳转页面success.jsp
<%-- Created by IntelliJ IDEA. User: mairr Date: 17-11-17 Time: 下午7:00 To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>登陆成功</title></head><body><h1>恭喜你,登陆成功啦~~~</h1></body></html>

 

  • 完成之后,进行项目的发布,File--->Project Structure--->Artifacts--->将struts2项目加到OutputLayer--->OK---->最后Run--->index.jsp,打开google浏览器 >JavaWeb框架SSH_Struts2_(一)

    • 输入用户名:admin,密码:123;登陆成功后浏览器界面如下:

    JavaWeb框架SSH_Struts2_(一)

     

    2.1.1  Struts2执行流程分析

     

      Struts2的执行流程图如下所示:

    JavaWeb框架SSH_Struts2_(一)

     

    (1)客户端浏览器发送一个请求,(HttpServletRequest);

    (2)程序会调用StrutsPrepareAndExecuteFilter,然后询问ActionMapper这个请求是否需要调用某个Action;

    (3)如果ActionMapper决定需要调用某个Action,StrutsPrepareAndExecuteFilter会把这个请求处理给ActionProxy(Action代理);

    (4)ActionProxy通过配置管理器(Configuration Manager)从配置文件(Struts.

    (5)ActionProxy会创建一个ActionInvocation的实例;

    (6)ActionInvocation使用命名模式来调用Action,在调用Action前,会依次调用所有配置的**(Intercepter1、Intercepter2、Intercepter3..);

    (7)一旦Action执行完成,返回结果字符串,ActionInvocation就会负责查找结果字符串对应的Result,然后执行这个Result。通常情况下Result会调用一些模板(JSP等)来呈现页面。

    (8)产生的Result信息返回ActionInvocation,此过程中**会被再次执行(顺序与Action执行之前相反);

    (9)产生一个HttpServletResponse的响应行为,通过StructsPrepareAndExecuteFilter反馈给客户端;

     

     

     

     

    参考书籍:《SSH框架整合教程》

    参考文章

     

    海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

    原标题:JavaWeb框架SSH_Struts2_(一)

    关键词:JAVA

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。