`

访问Web元素

阅读更多

访问Web元素可以有四种方法,下面依次列出

user_login_success.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding
="utf-8"
%>
<%@taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>success</title>
<%
    
String path = request.getContextPath();
    
String basePath = request.getScheme() + "://"
            
+ request.getServerName() + ":" + request.getServerPort()
            
+ path + "/";
%>
<base href="<%=basePath%>" />
<!-- 使用base标签指定本页面所有链接的参照路径 -->
</head>
<body>

<p>Login success.</p>
<s:property value="#request.r1" />
|
<%=request.getAttribute("r1")%>
<br>
<s:property value="#session.s1" />
|
<%=session.getAttribute("s1")%>
<br>
<s:property value="#application.a1" />
|
<%=application.getAttribute("a1")%><br>

<s:debug></s:debug>
</body>
</html>

 

 

第一种方法:
LoginAction1.java

package com.bebig.struts2.user.action;

import java.util.Map;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction1 extends ActionSupport {
    
//取得Map类型的request、session、application
    private Map request;
    
private Map session;
    
private Map application;

    
public LoginAction1() {
        request 
= (Map) ActionContext.getContext().get("request");
        session 
= ActionContext.getContext().getSession();
        application 
= ActionContext.getContext().getApplication();
    }

    
    
public String execute()
    
{
        request.put(
"r1""r1");
        session.put(
"s1""s1");
        application.put(
"a1""a1");
        
return SUCCESS;
    }


}

第二种方法:
LoginAction2.java

package com.bebig.struts2.user.action;

import java.util.Map;

import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction2 extends ActionSupport implements RequestAware,
        SessionAware, ApplicationAware 
{
    
//三个对象被容器注入
    private Map<String, Object> request;
    
private Map<String, Object> session;
    
private Map<String, Object> application;

    
public String execute() {
        request.put(
"r1""r1");
        session.put(
"s1""s1");
        application.put(
"a1""a1");
        
return SUCCESS;
    }


    @Override
    
public void setRequest(Map<String, Object> request) {
        
this.request = request;
    }


    @Override
    
public void setSession(Map<String, Object> session) {
        
this.session = session;
    }


    @Override
    
public void setApplication(Map<String, Object> application) {
        
this.application = application;
    }


}

第三种方法:
LoginAction3.java

package com.bebig.struts2.user.action;


import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction3 extends ActionSupport {
    
private HttpServletRequest request;
    
private HttpSession session;
    
private ServletContext application;

    
public LoginAction3() {
        request 
= ServletActionContext.getRequest();
        session 
= request.getSession();
        application 
= session.getServletContext();
    }

    
    
public String execute()
    
{
        request.setAttribute(
"r1""r1");
        session.setAttribute(
"s1""s1");
        application.setAttribute(
"a1""a1");
        
return SUCCESS;
    }


}

第四种方法:
LoginAction4.java

package com.bebig.struts2.user.action;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.apache.struts2.interceptor.ServletRequestAware;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction4 extends ActionSupport implements ServletRequestAware {
    
private HttpServletRequest request;
    
private HttpSession session;
    
private ServletContext application;

    
public String execute() {
        request.setAttribute(
"r1""r1");
        session.setAttribute(
"s1""s1");
        application.setAttribute(
"a1""a1");
        
return SUCCESS;
    }


    @Override
    
public void setServletRequest(HttpServletRequest request) {
        
this.request = request;
        session 
= request.getSession();
        application 
= session.getServletContext();
    }


}

总结:
第一种方法依赖于Struts2容器,取得相关对象数据;
第二种方法,依赖注入DI(dependency injection),控制反转IoC(Inverse of control),对象数据被容器注入;
第三种方法,依赖于容器取得相关对象数据;
第四种方法,依赖注入一个对象的数据后,再通过这个对象获取到其它对象数据。

推荐使用第二种方法。
另:取得Map类型request,session,application,真实类型HttpServletRequest,HttpSession,ServletContext的引用:

分享到:
评论

相关推荐

    Struts2_访问web元素_accessWebElements_s

    在Struts2框架中,访问web元素是开发过程中不可或缺的部分,这涉及到与用户界面交互、数据传递以及控制流程的管理。在这个主题“Struts2_访问web元素_accessWebElements_s”中,我们将深入探讨如何在Struts2中有效地...

    struts2访问Web元素

    在“struts2访问Web元素”这个主题中,我们主要关注的是如何通过Struts2框架来操作和控制Web页面上的各种元素。这篇博文可能详细介绍了如何在Struts2中与HTML表单、按钮、文本框等交互,以及如何处理用户提交的数据...

    Struts2访问Web元素

    在"Struts2访问Web元素"这个主题中,我们将深入探讨如何在Struts2框架中与网页元素进行交互。 首先,我们需要了解Struts2的核心组件——Action类。Action类是业务逻辑的载体,负责处理用户请求,并返回相应的结果。...

    Struts2中访问web元素的例子

    在Struts2中,访问web元素是开发过程中常见的需求,比如获取请求参数、session数据或者cookie等。本篇文章将详细介绍Struts2中四种访问web元素的方法。 1. **Action上下文(ActionContext)** ActionContext是...

    struts2 访问web元素

    在"Struts2 访问web元素"这个主题中,我们主要探讨的是如何在Struts2框架中与HTML表单、按钮、文本框等web元素进行交互。这涉及到Action类、Result类型以及Struts2提供的强大数据绑定机制。 1. **Action类**:在...

    DWR3 访问WEB元素的两种方法实例详解

    在DWR3中,访问WEB元素主要有两种方法,这两种方法都能有效地帮助开发者在客户端与服务器之间传递和操作Web元素。 ### 方法一:类似SpringMVC的用法 这种用法借鉴了SpringMVC的风格,通过在远程调用的方法中声明...

    Struts2学习笔记(7)-访问Web元素

    在Struts2框架中,访问Web元素是实现服务器与客户端数据交互的关键步骤。常见的Web元素包括request、session和application,它们分别对应于HTTP请求、会话和全局应用程序范围内的数据存储。在这篇Struts2学习笔记中...

    web.xml元素详解

    `security-constraint`元素用于定义安全约束,包括对URL的访问控制策略,配合`login-config`元素使用,确保Web应用的安全性。 #### 19. Login-Config `login-config`元素用于配置身份验证机制,如表单认证、基本...

    Struts2_1200_AccessWebElements

    在访问Web元素时,拦截器可以用来验证表单数据,进行数据转换和格式化。 5. **Struts2结果类型(Result Types)** 结果类型定义了Action执行后如何呈现结果。常见的结果类型有dispatcher(转发到JSP)、stream...

    常用web开发元素4

    在Web开发领域,熟悉并掌握常用的开发元素是至关重要的。这些元素构成了网页的基础,并且是HTML、JavaScript、CSS以及服务器端技术如Java和JSP的核心组成部分。以下将详细阐述这些关键知识点。 首先,HTML...

    myeclipse的WebRoot下的jsp访问不了

    ### MyEclipse中WebRoot下的JSP访问问题详解 #### 一、问题概述 在使用MyEclipse开发Java Web应用程序时,可能会遇到一种情况:放置在项目目录下的JSP文件可以正常访问,但如果将这些JSP文件放置在项目的WebRoot...

    vue-web-component-wrapper:将Vue组件包装为Web组件自定义元素

    @ vue / web-component-wrapper 包装并将Vue组件注册为自定义元素。兼容性。 不支持IE11及以下版本。 如果定位本机支持ES2015但不支持本机Web组件的浏览器: 您还将需要 。 有关和支持,请访问caniuse.com。 使用...

    J2EE企业级项目开发-1期 单元设计.doc

    重点和难点在于对框架的理解和实际操作,如配置、Action、OGNL、标签、拦截器等,而通配符、访问Web元素、输入校验、控制标签等则是需要特别关注的部分。 教学过程设计强调任务驱动和实践操作,通过案例分析、小组...

    JSP页面中限制对Web资源的访问

    ### JSP 页面中限制对 Web 资源的访问 在现代 Web 开发中,安全性是至关重要的一个方面。为了确保系统的安全性和数据的保护,开发者必须实施有效的访问控制策略。其中一种常见的做法是在 Java Server Pages (JSP) ...

    Web Services3个元素的详解

    Web Services的核心组件主要包括三个关键元素:SOAP(简单对象访问协议)、WSDL(Web服务描述语言)和UDDI(统一描述、发现和集成)。 1. SOAP(Simple Object Access Protocol) SOAP是一种轻量级的、基于XML的...

    Tomcat中用web.xml控制Web应用详解

    下面对 web.xml 文件中的重要元素进行详细解释。 context-param 元素 context-param 元素用于声明应用范围内的初始化参数。这些参数可以被 ServletContext 中的所有组件共享。容器将 context-param 转换为键值对,...

    头歌教学实践平台 Web前端开发基础 JavaScript学习手册十四:HTML DOM-文档元素的操作(二)

    DOM是HTML和XML文档的一种结构化表示,它将网页内容转化为树形结构,使得JavaScript可以方便地访问和修改每个元素。在这个部分,我们将学习更多关于DOM元素操作的方法和技巧。 首先,`getElementById()`是获取特定...

    web.xml配置详解, web.xml web.xml 配置实例

    * session-config 元素:如果某个会话在一定时间内未被访问,服务器可以抛弃它以节省内存。 * mime-mapping 元素:如果 Web 应用具有想到特殊的文件,希望能保证给他们分配特定的 MIME 类型。 * welcome-file-list ...

    web访问摄像头

    在现代互联网技术中,"web访问摄像头"是一个关键功能,特别是在视频聊天、在线教育、远程医疗和各种实时交互应用中。这个话题主要涉及到如何利用Web技术来调用用户的摄像头设备,以便用户可以在网页上进行拍照或录制...

Global site tag (gtag.js) - Google Analytics