首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从JSP访问struts操作方法

基础概念

JSP(JavaServer Pages)是一种动态网页技术,它允许在HTML或XML文档中直接嵌入Java代码片段和表达式,这些代码在服务器上执行后生成动态内容。

Struts是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它通过拦截器处理用户请求,并将请求转发到相应的Action类中的方法进行处理。

相关优势

  • JSP:易于学习和使用,能够快速生成动态网页内容。
  • Struts:提供了一种清晰的分离关注点的方式,使得业务逻辑、数据和显示逻辑分离,便于维护和扩展。

类型

  • JSP:主要用于视图层,展示数据。
  • Struts:主要用于控制层,处理用户请求并控制数据流。

应用场景

在Web应用中,通常使用JSP来展示数据,而使用Struts来处理用户请求和业务逻辑。

访问Struts操作方法

要从JSP访问Struts操作方法,通常需要通过表单提交或链接的方式将请求发送到Struts的Action类中的相应方法。

示例代码

struts.xml配置文件

代码语言:txt
复制
<struts>
    <package name="default" extends="struts-default">
        <action name="hello" class="com.example.HelloAction">
            <result>/hello.jsp</result>
        </action>
    </package>
</struts>

HelloAction.java

代码语言:txt
复制
package com.example;

public class HelloAction {
    private String message;

    public String execute() {
        message = "Hello, Struts!";
        return "success";
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}

hello.jsp

代码语言:txt
复制
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
    <title>Hello Struts</title>
</head>
<body>
    <h2><s:property value="message"/></h2>
</body>
</html>

index.jsp(用于提交请求):

代码语言:txt
复制
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Struts Example</title>
</head>
<body>
    <h2>Submit to Struts Action</h2>
    <form action="hello" method="post">
        <input type="submit" value="Say Hello">
    </form>
</body>
</html>

可能遇到的问题及解决方法

问题:页面无法正确跳转到Struts Action

原因:可能是Struts配置文件路径不正确,或者Action类没有正确配置。

解决方法

  1. 确保struts.xml文件放在正确的位置,通常是WEB-INF/classes目录下。
  2. 检查struts.xml中的<action>标签配置是否正确,包括nameclassresult属性。
  3. 确保Action类已经编译并放在正确的包路径下。

问题:JSP页面无法获取Struts Action中的数据

原因:可能是JSP页面没有正确使用Struts标签库,或者Action类中的属性没有正确设置getter方法。

解决方法

  1. 在JSP页面顶部添加Struts标签库的引用:
  2. 在JSP页面顶部添加Struts标签库的引用:
  3. 确保Action类中的属性有对应的getter方法,例如getMessage()方法。

通过以上步骤,你应该能够成功从JSP访问Struts操作方法,并解决常见的相关问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JSP访问原理

JSP访问原理/流程总结 第一阶段(请求阶段):客户端发起请求,请求JSP到服务器。 第二阶段(处理阶段):Tomcat生成请求对象,然后处理请求。...执行JspServlet(或Jsp引擎)将Jsp文件转变成Servlet文件,然后执行该文件。 第三阶段(响应阶段): 服务器最后响应处理结果到客户端 注: ?...第一阶段(请求阶段):客户端发起请求,请求JSP到服务器。 第二阶段(处理阶段):Tomcat生成请求对象,然后处理请求。...执行JspServlet(或Jsp引擎)将Jsp文件转变成Servlet文件,然后执行该文件。...第三阶段(响应阶段): 服务器最后响应处理结果到客户端 注: 1、JSP引擎将生成的Servlet代码编译成Class文件,在这里会进行自动编译不用跟java文件一样需要自己手动编译文件。

71430
  • JSP 页面访问用户验证

    jsp安全性问题,当别人知道某个jsp文件的网址后就可以跳过登陆页面直接访问jsp文件了,这样无法禁止外部无权限用户的访问。本文讨论内容是通过权限验证的用户,才可以访问特定的页面。... 注: 目前配置方式仅仅是在用户访问page222.jsp的时候才走过滤器,也可以配置/*, /user/*等目录进行批量网页过滤...file="head.jsp" %> I am page333.jsp 注: 没有任何验证,用户可以直接输入网址进行访问 7) logout.jsp...页面验证 logincheck.jsp (或LoginFilter.java)页面访问前进行登录验证 3) 验证通过访问JSP页面 login.jsp(或Login.java)用户登录后才可以正常访问...JSP页面 源码下载 参考推荐: 跳过登陆页面直接访问jsp文件 如何实现JSP页面的访问控制 session 保存登录信息 Application Session Cookie区别

    16.5K40

    JSP访问Hadoop 图片存储服务

    hdfs.首先从web页面上上传的文件直接调用hadoop接口将图片文件存入hadoop系统中,hadoop可以设定备份数,这样在hadoop系统中某个datanode死掉并不会造成图片不可能,系统会其他...以下我们编写的一个hadoop的java的访问封装类: import java.io.File; import java.io.IOException; import java.io.InputStream...  } catch (Exception e) {   e.printStackTrace();   return false;   }   return true;  }  /**   * hadoop...当需要访问某个图片时,先访问jsp服务器(如:tomcat)的一个servlet,这个servlethadoop里面读出图片,并 返回给浏览器.以下是我们的servlet: import java.io.IOException...buffer,0,length);   }   os.flush();   os.close();   inputStream.close();  } } 另外,为了避免对hadoop的频繁读取,可以再jsp

    1.8K10

    struts2中action如何获取jsp页面参数

    ServletActionContext),这个类直接继承了我们上面介绍的ActionContext,它提供了直接与Servlet相关对象访问的功能,它可以取得的对象有: (1)javax.servlet.http.HttpServletRequest...javax.servlet.ServletContext : Servlet上下文信息 (4)javax.servlet.ServletConfig : Servlet配置对象 (5)javax.servlet.jsp.PageContext...: Http页面上下文 如何ServletActionContext里取得Servlet的相关对象: 取得HttpServletRequest对象: HttpServletRequest request...我们遵循的原则是:如果ActionContext能够实现我们的功能,那最好就不要使用ServletActionContext,让我们的Action尽量不要直接去访问Servlet的相关对象....4. struts2中获得request、response和session (1)非IoC方式 方法一:使用org.apache.struts2.ActionContext类,通过它的静态方法getContext

    2.3K150

    jsp访问数据库-Javabean实现

    4.JSP访问数据库 JSP就是在html中嵌套的java代码,因此 java代码可以写在jsp中() 导包操作: java项目 :1 Jar复制到工程中 2.右键该Jar :build...path ->add to build Path Web项目:jar复制到WEB-INF/lib 核心:就是将 java中的JDBC代码,复制到 JSP中的 注意:如果jsp出现错误:The...进tomcat目录 删除里面work的子目录) c.删除之前的tomcat,重新解压缩、配置tomcat,重启计算机 d.如果类之前没有包,则将该类加入包中 5.JavaBean 刚才我们将 jsp...JavaBean的作用:a.减轻的jsp复杂度 b.提高代码复用(以后任何地方的 登录操作,都可以通过调用LoginDao实现) JavaBean(就是一个Java类)的定义:满足一下2点 ,就可以称为...并且提供set/get (如果boolean 则get 可以替换成is) 使用层面,Java分为2大类: a.封装业务逻辑的JavaBean (LoginDao.java封装了登录逻辑) 逻辑 可以将jsp

    2K30

    Struts2之Action类访问Servlet API

    Action类访问Servlet API 本人独立博客https://chenjiabing666.github.io Struts2并未直接和Servlet API耦合,这是Struts2的一个改良之处...但是对于web应用控制器而言,不访问Servlet API是不可能,因此下面我们介绍三种方式访问Servlet API ActionContext 使用这个可以获取Servlet中HttpServletRequest...中存放键值对 actionContext.getApplication().put("a", "b"); ​ return SUCCESS; } } success.jsp...h1>application域中的a: ${a } 总结 虽说现在可以向各种域中添加属性获取属性,但是我们不可以移除属性,所以说这种方法不如直接使用Servlet API功能更加强大 实现接口访问...Servlet API 实现接口访问对一个Action类的污染实在太严重了,这个是不推荐使用的,可以了解一下 可以实现的接口 ServletContextAware实现该接口的Action可以直接访问用户请求的

    1.3K50

    简单介绍几种Java后台开发常用框架组合

    三层架构如下图所示(图中的数据访问层就是文中的持久层): ?...下面就简单介绍一下三层架构: 1.表示层 表示层其实就是用户能够看到的界面显示层,但是它的职责并不仅仅是显示界面那么简单,而是需要完成三件事情: 界面中取得数据跟后台服务器交互 跟后台交互后进行数据绑定...3.持久层 也称为数据访问层,顾名思义,这一层其实就是跟数据库直接打交道的层面,通过连接数据库,根据传入的值对数据库进行增删改查。...Spring框架 学习基础的时候大家应该都知道,最传统的Java Web应用程序是采用JSP、Servlet、Javabean来实现的,这种模式实现了最基本的MVC分层,使得程序结构有负责前台展示的 JSP...,省掉很大部分的工作量,在这个框架中,当我们需要相关操作时,不用再关注数据库表也不用再去一行行的查询数据库,只需要通过持久化一个类的方式就可以完成增删改查的功能,因为框架的内部已经实现了很多对数据库的操作方法

    1.7K30

    JAVA中Action层, Service层 ,model层 和 Dao层的功能区分

    ssh框架: SSH是 struts+spring+hibernate的一个集成框架,是目前比较流行的一种Web应用程序开源框架。区别于 Secure Shell 。...集成SSH框架的系统职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。...其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate...Dao层,一般可以再分为***Dao接口和***DaoImpl实现类,如userDao接口和userDaoImpl实现类,接口负责定义数据库curd的操作方法,实现类负责具体的实现,即实现Dao接口定义的方法...对象的调用流程:JSP—Action—Service—DAO—Hibernate—数据库。

    25320

    JAVA中Action层, Service层 ,model层 和 Dao层的功能区分

    ssh框架: SSH是 struts+spring+hibernate的一个集成框架,是目前比较流行的一种Web应用程序开源框架。区别于 Secure Shell 。...集成SSH框架的系统职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。...其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate...Dao层,一般可以再分为***Dao接口和***DaoImpl实现类,如userDao接口和userDaoImpl实现类,接口负责定义数据库curd的操作方法,实现类负责具体的实现,即实现Dao接口定义的方法...对象的调用流程:JSP—Action—Service—DAO—Hibernate—数据库。

    1.3K30
    领券