自学java_Struts2框架

一.Struts2基础

1.Struts2是有Apache在Struts1和Webwork的基础上研发出的新一代MVC框架。

2.Struts2开发环境的搭建:

打开https://struts.apache.org/download.html页面下载Struts2的版本,我使用是:struts-2.3.14-all.zip

二.HelloWorld示例

  1. 新建一个javaweb项目,把下载好的struts-2.3.14-all.zip解压找到lib文件夹,

导入到项目中,然后加载到项目中(自行百度不细说)

2.新建一个FirstAction.java

package com.scce.struts2.action;

import java.text.SimpleDateFormat;
import java.util.Date;

import com.opensymphony.xwork2.ActionSupport;

public class FirstAction extends ActionSupport {
private String date;
private String message;
@Override
public String execute() throws Exception {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH时ss分mm秒");
date=sdf.format(new Date());
message="Hello World";
return SUCCESS;
}
public String getDate(){
return date;
}
public String getMessage(){
return message;
}
}

3.新建一个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="action" namespace="/" extends="struts-default">
<action name="FirstAction" class="com.scce.struts2.action.FirstAction">
<result>/firstStruts2.jsp</result>
</action>

</package>
</struts>

4.修改web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>
<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>

<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

5.新建一个firstStruts2.jsp页面

<body>

 ${message }
<s:property value="date"/><br>
${date}
</body>

6.浏览器访问地址:http://localhost:8080/struts2_01/FirstAction.action

效果如下图:

三.属性驱动模型

(注解:Struts2与ServletAPI实现了解耦,所以无法直接使用HttpServletRequest对象获取表单提交的参数,但Strtus2提供了属性驱动模型机制来解决问题)

  1. 新建一个login.jsp页面

    <form action="UserManagerAction.action" method="post">
    <p>用户名:<input type="text" name="username"/>${messsage}</p>
    <p>密 码:<input type="text" name="password"/></p>
    <input type="submit" value="提交"/>
    </form>
  2. 自定义Action类UserManagerAction

package com.scce.struts2.action;

import com.opensymphony.xwork2.ActionSupport;

public class UserManagerAction extends ActionSupport {

   public String getMesssage() {

        return messsage;

    }

    public void setUsername(String username) {

        this.username = username;

    }

    public void setPassword(String password) {

        this.password = password;

    }

  private String username;//用户名

   private String password;//密码

   private String messsage;//消息

   @Override

   public String execute()

   { 

       System.out.println("用户名"+username);//打印用户名

       System.out.println("密码"+password);//密码

       //默认账号admin,密码1234验证登陆成功

       if("admin".equals(username)&&"1234".equals(password))

       { 

           messsage="登陆成功!?";

               return "success";

       }

       else

       { 

           messsage="对不起账号或密码错误";

           return "error";

       }

   }

}

3.在struts.xml文件中配置UserManagerAction类的相关信息

<?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="action" namespace="/" extends="struts-default">
        <action name="FirstAction" class="com.scce.struts2.action.FirstAction">
            <result>/firstStruts2.jsp</result>
        </action>
      <action name="UserManagerAction" class="com.scce.struts2.action.UserManagerAction">
           <result name="success">/login.jsp</result>
            <result name="error">/error.jsp</result>
        </action>
    </package>
</struts>

4.在浏览器访问地址:

http://localhost:8080/struts2_01/UserManagerAction.action

原文地址:https://www.cnblogs.com/2828sea/p/9638156.html

时间: 2024-08-29 18:34:24

自学java_Struts2框架的相关文章

Java自学-集合框架 HashSet

Java集合框架 HashSet 示例 1 : 元素不能重复 Set中的元素,不能重复 package collection; import java.util.HashSet; public class TestCollection { public static void main(String[] args) { HashSet<String> names = new HashSet<String>(); names.add("gareen"); Syst

Java自学-集合框架 Collections

Java集合框架 工具类Collections Collections是一个类,容器的工具类,就如同Arrays是数组的工具类 步骤 1 : 反转 reverse 使List中的数据发生翻转 package collection; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class TestCollection { public static void main

自学Spring框架的几个基本概念

第一部分:基本概念 首先我们应该了解这三个框架分别是做什么的,在Java开发中具有什么样的作用,对于理清楚框架中具体的知识点是大有裨益的. 1. Spring:DI/AOP Spring对应的关键词是DI(依赖注入)与AOP(面向切面编程),可以认为是一个以DI和AOP为核心Java Web一站式的集成(粘合)框架. 其中DI也称为IoC(控制发转)用于管理Java对象之间的依赖关系(一定要说DI是IoC实现方式的童鞋们见评论区),AOP用于解耦业务代码和公共服务代码(如日志,安全,事务等).D

Java自学-集合框架 List接口

ArrayList与List接口 步骤 1 : ArrayList和List ArrayList实现了接口List 常见的写法会把引用声明为接口List类型 注意:是java.util.List,而不是java.awt.List package collection; import java.util.ArrayList; import java.util.List; import charactor.Hero; public class TestCollection { public stat

Java自学-集合框架 ArrayList和HashSet的区别

Java ArrayList和HashSet的区别 示例 1 : 是否有顺序 ArrayList: 有顺序 HashSet: 无顺序 HashSet的具体顺序,既不是按照插入顺序,也不是按照hashcode的顺序. 以下是HasetSet源代码中的部分注释 /** * It makes no guarantees as to the iteration order of the set; * in particular, it does not guarantee that the order

Java自学-集合框架 ArrayList和LinkedList的区别

ArrayList和LinkedList的区别 步骤 1 : ArrayList和LinkedList的区别 ArrayList ,插入,删除数据慢 LinkedList, 插入,删除数据快 ArrayList是顺序结构,所以定位很快,指哪找哪. 就像电影院位置一样,有了电影票,一下就找到位置了. LinkedList 是链表结构,就像手里的一串佛珠,要找出第99个佛珠,必须得一个一个的数过去,所以定位慢 步骤 2 : 插入数据 package collection; import java.u

Java自学-集合框架 HashSet、LinkedHashSet、TreeSet之间的区别

HashSet. LinkedHashSet.TreeSet之间的区别 步骤 1 : HashSet LinkedHashSet TreeSet HashSet: 无序 LinkedHashSet: 按照插入顺序 TreeSet: 从小到大排序 package collection; import java.util.HashSet; import java.util.LinkedHashSet; import java.util.TreeSet; public class TestCollec

Java自学-集合框架 聚合操作

聚合操作 步骤 1 : 聚合操作 JDK8之后,引入了对集合的聚合操作,可以非常容易的遍历,筛选,比较集合中的元素. 像这样: String name =heros .stream() .sorted((h1,h2)->h1.hp>h2.hp?-1:1) .skip(2) .map(h->h.getName()) .findFirst() .get(); 但是要用好聚合,必须先掌握Lambda表达式 package lambda; import java.util.ArrayList;

打算做一个视频教程探讨如何自学计算机相关的技术

打算做一个视频教程探讨如何自学计算机相关的技术 第一期:如何自学SSH框架?(最好有Java基础) 第二期:如何自学Redis,Memcached和MongoDB? 第三期:如何自学PHP和Python? 想要学习的同学,留下邮箱和第几期,哪一期人数最多就先开哪个,什么时候开课了通知大家,本人没做过视频教程,到时说得不好别喷哈... 注意:具体什么时候开课还不确定(预计3月份开始),有网络有时间就做,如果你不想邮箱被别人知道,那可以直接私信我