day1:struts2环境搭建

简介: day1:struts2环境搭建

文章目录

MVC框架模式

MVC框架模式

M:model 数据层数据访问,数据库交互(JavaBean)

V: view视图层界面(JSP) 承载数据

C: Controller控制器作用:将对应的数据显示在相应的视图中枢管控

image.png

mvc模型流程

mvc特点

数据的获取与显示分离;

控制器将不同的模型和视图组合在一起;

应用分为三部分:模型丶视图和控制器,三部分之间松耦合并协同工作,从而提高应用的可扩展性和可维护性;

各层负责应用的不同功能,各司其职,便于通过工程化和工具化产生程序代码。

创建Javaweb工程

image.png

maven导入依赖

    <dependency>
      <groupId>org.apache.struts</groupId>
      <artifactId>struts2-core</artifactId>
      <version>2.5.10.1</version>
    </dependency>

修改web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
  <!--引入struts2过滤器
  定义filter,此处加载struts2过滤器。-->
 <filter>
    <filter-name>struts2</filter-name>
    <!-- 配置Struts2核心Filter的实现类 -->
    <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
    <!-- 配置Struts2的核心FilterDispatcher拦截所有用户请求 -->
  <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>

创建struts.xml

image.png

<?xml version="1.0" encoding="UTF-8"?>
<!--这段内容可以在struts的jar包中找到-->
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
        "http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
    <package name="null" extends="struts-default">
        <!--这里的name自定义、尽量与Action中的name相同,method定位到所处action中的class的具体方法,result的name为return 后返回的方法名称-->
        <action name="helloWord" class="com.demo.mystruts2.action.HelloWordAction" method="helloWord">
            <result name="success">helloword.jsp</result>
        </action>
    </package>
</struts>

image.png

创建类

此类作用是通过structs2调用此类中的方法实现一些功能

package com.demo.mystruts2.action;
public class HelloWordAction {
    public  String helloWord(){
        System.out.println("成功访问HelloWord  Action");
        System.out.println("调用Service");
        return "success";
    }
}

创建helloword.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>helllllllll</title>
</head>
<body>
asddsasd4asdasds4a54d56as45d
</body>
</html>

更改index.jsp

<html>
<body>
<h2>Hello Worl</h2>
<a href="helloWord.action">点我</a>
</body>
</html>

运行即可测试效果

创建javabeans

这里模拟数据库存取的模式,来创建javabean,在展示层进行输出

Book.java

package com.struts2.beans;
public class Book {
  private String name;
  private String id;      
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public String getId() {
    return id;
  }
  public void setId(String id) {
    this.id = id;
  }
  public Book() {
    super();
    // TODO Auto-generated constructor stub
  }
}

创建Action.java

package com.struts2.actions;
import com.struts2.beans.Book;
public class Action {
  private Book book=new Book();
  public String show(){
    book.setName("JAVA");
    return "win";
  }
  public Book getBook() {
    return book;
  }
  public void setBook(Book book) {
    this.book = book;
  }
}

更改struts.xml

其中result的name属性对应函数的返回值

<?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="package_1" extends="struts-default">
    <action name="showbook" class="com.struts2.actions.Action" method="show">
      <result name="win">show.jsp</result>
    </action>
  </package>
</struts>

编写show.jsp

通过el表达式来得到内容

<%@page isELIgnored="false" %>
${book.name}

运行访问showbook.action

即可看到book.name的内容


相关文章
|
8月前
|
人工智能 算法 安全
OpenRouter 推出百万 token 上下文 AI 模型!Quasar Alpha:提供完全免费的 API 服务,同时支持联网搜索和多模态交互
Quasar Alpha 是 OpenRouter 推出的预发布 AI 模型,具备百万级 token 上下文处理能力,在代码生成、指令遵循和低延迟响应方面表现卓越,同时支持联网搜索和多模态交互。
744 1
OpenRouter 推出百万 token 上下文 AI 模型!Quasar Alpha:提供完全免费的 API 服务,同时支持联网搜索和多模态交互
|
机器学习/深度学习 自然语言处理 数据可视化
BERT-IMDB电影评论情感分类实战:SwanLab可视化训练
这篇文章介绍了使用BERT模型进行IMDB电影评论情感分类的实战教程,涉及SwanLab、transformers和datasets库。作者提供了一键安装库的命令,并详细解释了每个库的作用。文章展示了如何加载BERT模型和IMDB数据集,以及如何利用SwanLab进行可视化训练。训练过程在SwanLab平台上进行,包括模型微调、指标记录和结果可视化。此外,还提供了完整代码、模型与数据集的下载链接,以及相关工具的GitHub仓库地址。
BERT-IMDB电影评论情感分类实战:SwanLab可视化训练
|
存储 Unix Linux
操作系统和内核有什么区别?
操作系统和内核有什么区别?
2333 0
操作系统和内核有什么区别?
|
SQL 缓存 关系型数据库
(十二)MySQL之内存篇:深入探寻数据库内存与Buffer Pool的奥妙!
MySQL是基于磁盘工作的,这句几乎刻在了每个后端程序员DNA里,但它真的对吗?其实答案并不能盖棺定论,你可以说MySQL是基于磁盘实现的,这点我十分认同,但要说MySQL是基于磁盘工作,这点我则抱否定的态度,至于为什么呢?这跟咱们本章的主角:Buffer Pool有关,Buffer Pool是什么?还记得咱们在《MySQL架构篇》中聊到的缓存和缓冲区么,其中所提到的写入缓冲区就位于Buffer Pool中。
1341 1
|
存储 Java
java使用pdfbox 3.0版本删除pdf文件中指定字符所在行,生成新的pdf文件
【5月更文挑战第25天】java使用pdfbox 3.0版本删除pdf文件中指定字符所在行,生成新的pdf文件
1844 1
|
存储 人工智能 算法
Unity 实现A* 寻路算法
Unity 实现A* 寻路算法
752 2
Unity 实现A* 寻路算法
|
XML JavaScript 前端开发
《原型链重置版》一万多字让你读懂JavaScript原型对象与原型链的继承,探秘属性的查找机制! (6)
其实javascript中很多方面都跟原型链有关系,你如果没有弄懂,就等同于没有学会javascript...
124 1
《原型链重置版》一万多字让你读懂JavaScript原型对象与原型链的继承,探秘属性的查找机制! (6)
|
XML Java Android开发
Android Studio App开发中异步任务AsynTask与异步服务IntentService的讲解与实战(实现四大名著的加载进度条 附源码)
Android Studio App开发中异步任务AsynTask与异步服务IntentService的讲解与实战(实现四大名著的加载进度条 附源码)
487 0
|
传感器 大数据 物联网
【Flink】Flink 应用场景解析
【1月更文挑战第26天】【Flink】Flink 应用场景解析
|
SQL 关系型数据库 MySQL
【Hello mysql】 mysql的基本查询(二)
【Hello mysql】 mysql的基本查询(二)
294 0