01.创建登录界面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><form action="user/login" method="post"><table><tr><td>用户名:</td><td><input  type="text" name="name"/></td></tr><tr><td>密码:</td><td><input  type="password" name="password"/></td></tr><tr><td></td><td><input  type="submit" value="登录"/></td></tr></table></form></body>
</html>

02.配置struts.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd">
<struts><constant name="struts.devMode" value="true"/><package name="default"  namespace="/user" extends="struts-default"><action name="login" class="cn.bdqn.action.UserAction" method="login"><result>/success.jsp</result></action></package>
</struts>

03.创建对应的UserAction

package cn.bdqn.action;import java.util.Map;import javax.servlet.ServletContext;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
/***  用户登录的action*  jsp九大内置对象*  *  out*  page*  pageContext*  request*  response*  session*  application*  config*  exception*/
public class UserAction extends ActionSupport{/**public  String  login(){获取前台的值01.耦合方式  不推荐使用String name = ServletActionContext.getRequest().getParameter("name");String password = ServletActionContext.getRequest().getParameter("password");System.out.println(name);System.out.println(password);//放入作用域ServletActionContext.getRequest().setAttribute("name",name);ServletActionContext.getRequest().setAttribute("password",password);return  SUCCESS;}*//*** 登录的方法02. 解耦两种方法  001. 使用ActionContext!sturts2在底层把我们的request,session,application用Map集合保存起来了!*/private  String  name;private  String  password;public  String  login(){Map<String, Object> request=(Map<String, Object>) ActionContext.getContext().get("request");//让success.jsp获取数据request.put("name",name);//  等同于setAttribute("name",name); request.put("password",password);return  SUCCESS;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}

04.使用第二种解耦的方式 ,就是实现对应的Aware接口

import org.apache.struts2.interceptor.RequestAware;
import com.opensymphony.xwork2.ActionSupport;
/***  实现对应的Aware接口*/
public class UserAction2 extends ActionSupport implements RequestAware{private  String  name;private  String  password;private Map<String, Object> request;  //并不用写 set和get//登录的方法public  String  login(){request.put("name",name); request.put("password",password);return  SUCCESS;}//重写方法   给请求request赋值
    @Overridepublic void setRequest(Map<String, Object> request) {this.request=request;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}

05.success.jsp

===============el表达式获取数据=============<br/>${name}${password} <br/>===============struts2标签获取数据=============<br/><s:property value="password"/> <%--值栈中获取的    --%><s:property value="#request.password"/>  <%--栈的上下文中获取的    --%><s:property value="#attr.password"/>

转载于:https://www.cnblogs.com/xtdxs/p/7097494.html

Struts07---访问servlet的API相关推荐

  1. (转)Struts2访问Servlet的API及......

    http://blog.csdn.net/yerenyuan_pku/article/details/67315598 Struts2访问Servlet的API 前面已经对Struts2的流程已经执行 ...

  2. 关于Struts2三种访问Servlet API方式的总结

    在开发j2ee过程中,通常我们需要访问的Servlet API是:HttpSession,HttpservletRequest,ServletContext,这三者分别对应于JSP的内置对象:sess ...

  3. Action访问Servlet API的三种方法

    一.为什么要访问Servlet API ? Struts2的Action并未与Servlet API进行耦合,这是Struts2 的一个改良,从而方便了单独对Action进行测试.但是对于Web控制器 ...

  4. Struts2中Action访问Servlet API的三种方法

    Struts2的Action并未直接与任何Servlet API耦合,这是Struts2的一个改良之处,因为Action类不再与Servlet API耦合,能更轻松的测试该Action.但如何访问? ...

  5. Action访问Servlet API的对象

    1,Action访问ActionContext的方式:(request session application) Struts2中的Action与Servlet API完全分离,但是在实现业务逻辑处理 ...

  6. struts2中访问servlet API

    Struts2中的Action没有与任何Servlet API耦合,,但对于WEB应用的控制器而言,不访问Servlet API几乎是不可能的,例如需要跟踪HTTP Session状态等.Struts ...

  7. struts2 - ation 访问 Servlet api

    Web 应用中通常需要访问的 Servlet Api 就是 HttpServletRequest .HttpSession 和 ServletContext,这三个接口分别代表 JSP内置对象中的 r ...

  8. Struts2访问Servlet的三种方式

    Struts2访问Servlet的三种方式 基本介绍 在Struts2中,Action并没有直接和Servlet API耦合.虽然Struts2 中的Action访问Servlet API麻烦一些,但 ...

  9. ssh备考-05Struts2 Action类下的重要API(原生Servlet的API、跳转配置、框架自身的数据封装、自定义拦截器)

    目录 一.Struts框架中如何使用原生Servlet的API 方法一.使用ActionContext类(完全解耦合的方式)(不好用,了解) demo1.jsp demo1Action.java    ...

  10. Servlet中文API文档-个人整理版

    Servlet中文API文档-个人整理版 一.Servlet 说明:servlet抽象集是javax.servlet.Servlet接口,它规定了必须由Servlet类实现由servlet引擎识别和管 ...

最新文章

  1. Java在游戏服务器开发中的应用
  2. 连接MongoDB 3.x 报 Authorization failed 解决办法(创建账号的部分亲测)
  3. 将自己的类封装为lib的方法
  4. php真随机数,php 的伪随机数与真随机数实例详解
  5. 消息中间件系列(八):Kafka、RocketMQ、RabbitMQ等的优劣势比较
  6. html 响应式布局 九宫格,两种方法实现响应式九宫格布局
  7. DirectSound开发
  8. Java学习笔记2.1.3 Java基本语法 - Java关键字与标识符
  9. sql语句返回近似值
  10. 8个很实用的在线工具来提高你的Web设计和开发能力
  11. 一级路由器映射二级路由器端口映射
  12. 计算机cpu天体图,电脑cpu天梯图2019|最新Intel/AMD处理器性能排行2019
  13. python 数独_python 实现 数独 解法 (穷举法)
  14. 利用XMLHTTP实现ASP.NET无刷新提交 (老梁)
  15. numpy的getA()/getA1()/getH()/getI()函数
  16. 用vue自己封装一个分页组件
  17. INT201 决策,计算,语言 笔记
  18. Android 多国家语言适配
  19. postgres 源码解析25 缓冲池管理器-3
  20. JavaScript学习笔记——对象和数组(上)

热门文章

  1. IT 往事录:苹果 Mac 之父,却在 Mac 问世前黯然退场
  2. Docker 学习6 Docker存储卷
  3. 程序员,不要急于学习编程语言,先学会如何解决问题
  4. Foxmail邮件如何导入Outlook中
  5. CISCO 路由器(2)
  6. javascript中async await的用法
  7. 医改大背景下的第三方检验行业发展趋势
  8. 软件工程实践第二次作业——个人项目实战(数独)
  9. x86终端登录horizon view设置
  10. Android众说纷纭分辨率