Struts2中访问Servlet中的API(ActionContext,ServletActionContext)两种方式
来源:互联网 发布:阿里云汽车荣威rx5 编辑:程序博客网 时间:2024/06/06 18:34
1:login.jsp
<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>请登录:</h3>
<form action="islogin2" method="post">
用户名:<input type="text" value="zhangsan" name="loginname"/><br/>
密码:<input type="password" value="123" name="loginpwd"/><br/>
<input type="submit" value="登陆"/><br/>
</form>
</body>
</html>
2:web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<!-- 配置 Struts2 的 Filter -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>struts.i18n.encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>/day01/welcome.jsp</welcome-file>
</welcome-file-list>
</web-app>
3:struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<!-- 一旦Struts.xml文件修改后就自动重新加载 -->
<constant name="struts.configuration.xml.reload" value="true"></constant>
<!--默认视图 -->
<constant name="struts.ui.theme" value="simple"></constant>
<!-- 编码格式 -->
<constant name="struts.i18n.encoding" value="UTF-8"/>
<!-- 配置 Struts 可以受理的请求的扩展名 -->
<constant name="struts.action.extension" value="action,do,"></constant>
<!-- 允许ognl静态访问资源 -->
<constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>
<!-- 设置是否支持动态方法调用 -->
<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
<package name="hellodemo" extends="struts-default" namespace="/">
<default-action-ref name="welcome"></default-action-ref>
<!-- 配置 全局结果集-->
<global-results>
<result name="input">/day01/login.jsp</result>
<result name="error">/day01/error.jsp</result>
</global-results>
<!-- 配置全局异常 -->
<global-exception-mappings>
<exception-mapping result="error" exception="java.lang.NULLPointerException"></exception-mapping>
</global-exception-mappings>
<action name="islogin2" class="cn.itcast.action.LoginAction" method="checklogin">
<result name="suc">/day02/suc.jsp</result>
<result name="input">/day02/index_login.jsp</result>
</action>
<action name="hello" class="cn.itcast.action.HelloAction" method="execute">
<result name="success">/hello.jsp</result>
</action>
<action name="upload" class="cn.itcast.action.UploadFileAction">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
<action name="islogin" class="cn.itcast.action.UserAction" method="islogin">
<!-- action中的方法执行完后不直接返回jsp页面,而是执行另一个action中的方法 -->
<result name="success" type="chain">findsomeinfo</result>
</action>
<action name="isreg" class="cn.itcast.action.UserAction" method="isreg">
<result name="success">/day01/regsuc.jsp</result>
</action>
<action name="findsomeinfo" class="cn.itcast.action.UserAction" method="findinfo">
<result name="success">/day01/success.jsp</result>
</action>
<action name="welcome">
<result>/day01/welcome.jsp</result>
</action>
</package>
</struts>
4:LoginAction
package cn.itcast.action;
import java.util.Map;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
//访问Servlet中的request,session,application
public class LoginAction {
private String loginname;
private String loginpwd;
public String checklogin(){
if("zhangsan".equals(loginname)&&"123".equals(loginpwd)){
//方式一:通过ActionContext
ActionContext ac=ActionContext.getContext();
Map<String, String> request=(Map<String, String>) ac.get("request");
//向request中保存数据
request.put("requestMsg", "request中保存的信息");
Map<String, Object> session=ac.getSession();
//向sesison中保存数据
session.put("sessionMsg", "session中保存的信息");
Map<String, Object> application=ac.getApplication();
//向application中保存数据
application.put("applicationMsg", "application中保存的信息");
//方式二:通过ServletActionContext
HttpServletRequest request2=ServletActionContext.getRequest();
request2.setAttribute("requestMsg1", "request中保存的信息1");
HttpSession session2=ServletActionContext.getRequest().getSession();
session2.setAttribute("sessionMsg1", "session中保存的信息1");
ServletContext application2=ServletActionContext.getServletContext();
application2.setAttribute("applicationMsg1", "application中保存的信息1");
return "suc";
}else
return "input";
}
public String getLoginname() {
return loginname;
}
public void setLoginname(String loginname) {
this.loginname = loginname;
}
public String getLoginpwd() {
return loginpwd;
}
public void setLoginpwd(String loginpwd) {
this.loginpwd = loginpwd;
}
}
5:suc.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>登陆成功</h2>
requestMsg: ${requestMsg}<br/>
sessionMsg: ${sessionMsg}<br/>
applicationMsg: ${applicationMsg}<br/><br/>
requestMsg1: ${requestMsg1}<br/>
sessionMsg1: ${sessionMsg1}<br/>
applicationMsg1: ${applicationMsg1}<br/>
</body>
</html>
- Struts2中访问Servlet中的API(ActionContext,ServletActionContext)两种方式
- struts2中,action访问servlet api的两种方式
- Struts2(6):使用ServletActionContext访问Servlet API
- ActionContext和ServletActionContext区别以及action访问servlet API的三种方法
- ActionContext和ServletActionContext区别以及action访问servlet API的三种方法
- ActionContext和ServletActionContext区别以及action访问servlet API的三种方法
- ActionContext和ServletActionContext区别以及action访问servlet API的三种方法
- struts 访问servlet api (ServletActionContext 方式)
- Struts2中的ActionContext和ServletActionContext
- struts2 中的ActionContext与ServletActionContext
- Struts2(4):Action访问Servlet API---ActionContext
- Struts2中ActionContext、 ServletActionContext详解
- struts 访问 servlet api (ActionContext方式)
- Struts2中Action访问Servlet API的两种方法
- Struts2中Action访问Servlet API的两种方法
- Struts2中Action访问Servlet API的两种方法
- struts2中Action访问servlet的两种方式
- Struts2中访问Servlet API的几种方式
- Sublime Text2.0.2注册码-亲测可用
- 2017.7.12 确定了方向,大数据。
- 8步助你开源硬件起步!
- SQL 语句(二)--------------数据查询(简单查询)
- Codeforces #803E: Roma and Pokers 题解
- Struts2中访问Servlet中的API(ActionContext,ServletActionContext)两种方式
- 线段树求和
- 《GPU高性能编程 CUDA实战》(CUDA By Example)读书笔记
- 友元函数
- qml与c++的简单实例,Connections信号连接
- python爬虫
- JVM内存泄露与内存溢出的区别
- c++字符串读入写入小结
- SQL 语句(三)--------------数据查询(连接查询)