亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Struts2(八)訪問Servlet API

2019-11-14 23:32:14
字體:
來源:轉載
供稿:網友
Struts2(八)訪問Servlet API一、Struts2中的Servlet API1.1、struts2的Action實現了MVC中C層的作用

針對請求用戶顯示不同的信息

登錄后段保存用戶信息 ----session

保存當前在線人數等功能---application

1.2、傳統的Servlet API類型

HttpServletRequest

HttpSession

ServletContext

1.3、Struts2中將傳統的Servlet API類型被處理成Map類型

訪問更方便

不依賴傳統Servlet API 類型--解耦合

二、ActionContext

所在包com.opensymphony.xwork2

ActionContext被稱為Action上下文或者Action環境

ActionContext,提供每個Action運行時與之相關的所有信息

訪問Servlet API

ActionContext類提供getContext()方法獲得實例

通過ActionContext類的實例可獲得Map類型的請求,會話等

通過Put()和Get()方法在Map類型的對象中存取數據

二、簡單例子

web.xml中添加

 <filter>        <filter-name>struts2</filter-name>        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPRepareAndExecuteFilter</filter-class>    </filter>    <filter-mapping>        <filter-name>struts2</filter-name>        <url-pattern>/*</url-pattern>    </filter-mapping>

login.jsp頁面

<%@ page language="java" contentType="text/html; charset=UTF-8"    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" "http://www.w3.org/TR/html4/loose.dtd"><html><head><base href="<%=basePath %>>"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>登錄頁面</title></head><body><form action="user01.action" method="post"><table><tr><td>用戶名:<input name="username"/></td></tr><tr><td>用戶名:<input type="passWord" name="password"/></td></tr><tr><td><input type="submit" value="提交"/><input type="reset" value="重置"/></td></tr></table></form></body></html>

loginSuccess.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ taglib prefix="s" uri="/struts-tags"%><!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>登錄成功頁面</title></head><body><h1>jsp方式取值:</h1><%=request.getAttribute("linkaddress") %><br/><%=session.getAttribute("uname") %><br/><%=application.getAttribute("online") %><br/><h1>EL表達式取值:</h1>${request.linkaddress }<br/>${session.uname }<br/>${application.online }<br/><h1>struts取值:</h1><!-- 推薦使用這種 --><s:property value="#request.linkaddress"/><br/><!--  使用attr取值不推薦--><s:property value="#attr.linkaddress"/><br/><s:property value="#session.uname"/><br/><s:property value="#attr.uname"/><br/><s:property value="#application.online"/><br/><s:property value="#attr.online"/><br/><s:debug/></body></html>

UserAction3.java

package com.pb.web.action;import java.util.Map;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;public class UserAction3 extends ActionSupport {        private String username;    private String password;    private Map<String , Object> request;    private Map<String , Object> session;    private Map<String , Object> application;        public String login(){        ActionContext ac=ActionContext.getContext();        request=(Map<String, Object>) ac.get("request");        session=ac.getSession();        application=ac.getApplication();        if(this.getUsername().equals("accp")&&this.getPassword().equals("accp")){            request.put("linkaddress", "這次的登錄地點:SZ");            session.put("uname", username);            application.put("online", "當前在線人數:xxxx");            System.out.println(request.get("linkaddress"));            System.out.println(session.get("uname"));            System.out.println(application.get("online"));                        return SUCCESS;        }        return INPUT;                            }                public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    public Map<String, Object> getRequest() {        return request;    }    public void setRequest(Map<String, Object> request) {        this.request = request;    }    public Map<String, Object> getSession() {        return session;    }    public void setSession(Map<String, Object> session) {        this.session = session;    }    public Map<String, Object> getApplication() {        return application;    }    public void setApplication(Map<String, Object> application) {        this.application = application;    }        }

struts.xml

<struts>    <constant name="struts.enable.DynamicMethodInvocation" value="false" />    <constant name="struts.devMode" value="true" />    <package name="default" namespace="/" extends="struts-default">    <action name="user01" class="com.pb.web.action.UserAction3" method="login">    <result name="success">/loginSuccess.jsp</result>    <result name="input">/login.jsp</result>    </action>    </package></struts>

三、IOC方式獲取Servlet API對象

更改以上的代碼

login.jsp頁面

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ taglib prefix="s" uri="/struts-tags" %><%    String path = request.getContextPath();    String basePath = request.getScheme() + "://"            + request.getServerName() + ":" + request.getServerPort()            + path + "/";%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><base href="<%=basePath %>>"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>登錄頁面</title></head><body><!-- <form action="user01.action" method="post"> --><form action="user02.action" method="post"><table><tr><td>用戶名:<input name="username"/></td></tr><tr><td>用戶名:<input type="password" name="password"/></td></tr><tr><td><input type="submit" value="提交"/><input type="reset" value="重置"/></td></tr></table></form><s:property value="#session.msg"/></body></html>

loginSuccess.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ taglib prefix="s" uri="/struts-tags"%><!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>登錄成功頁面</title></head><body><h1>jsp方式取值:</h1><%=request.getAttribute("linkaddress") %><br/><%=session.getAttribute("uname") %><br/><%=application.getAttribute("online") %><br/><h1>EL表達式取值:</h1>${request.linkaddress }<br/>${session.uname }<br/>${application.online }<br/><h1>struts取值:</h1><!-- 推薦使用這種 --><s:property value="#request.linkaddress"/><br/><!--  使用attr取值不推薦--><s:property value="#attr.linkaddress"/><br/><s:property value="#session.uname"/><br/><s:property value="#attr.uname"/><br/><s:property value="#application.online"/><br/><s:property value="#attr.online"/><br/><s:debug/></body></html>

UserAction2.java

package com.pb.web.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 UserAction2 extends ActionSupport implements RequestAware,        SessionAware, ApplicationAware {    private static final long serialVersionUID = 1L;    //屬性要有getter、setter方法    private String username;    private String password;    //request,session,application不需要getter、setter方法    private Map<String , Object> request;    private Map<String , Object> session;    private Map<String , Object> application;        public String login(){                if(this.getUsername().equals("accp")&&this.getPassword().equals("accp")){            request.put("linkaddress", "這次的登錄地點:SZ");            session.put("uname", username);            application.put("online", "當前在線人數:xxxx");            System.out.println(request.get("linkaddress"));            System.out.println(session.get("uname"));            System.out.println(application.get("online"));                        return SUCCESS;        }        session.put("msg", "用戶名或者密碼不正確!");        return INPUT;                            }        //使用struts2提供接口來生成application,session,request對象,    @Override    public void setApplication(Map<String, Object> application) {        this.application=application;    }    @Override    public void setSession(Map<String, Object> session) {        this.session=session;    }    @Override    public void setRequest(Map<String, Object> request) {        this.request=request;    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }}

struts.xml

<action name="user02" class="com.pb.web.action.UserAction2" method="login">    <result name="success"  type="dispatcher">/loginSuccess.jsp</result>    <result name="input" type="redirect">/login.jsp</result>    </action>

使用傳統的方式獲取Servlet API

實現ServletRequestAware接口

package com.pb.web.action;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.apache.struts2.ServletActionContext;import org.apache.struts2.interceptor.ServletRequestAware;import org.apache.struts2.util.ServletContextAware;import com.opensymphony.xwork2.ActionSupport;public class UserAction04 extends ActionSupport implements ServletRequestAware,        ServletContextAware {    private String username;    private String password;    private HttpServletRequest request;    private HttpSession session;    private ServletContext application;    public String login() {        // 獲取對象        session = request.getSession();        // 保存數據        request.setAttribute("loginAddress", "您本次登錄地點是:北京");        session.setAttribute("username", username);        application.setAttribute("online", "當前在線人數:XXX");        // 獲取數據        System.out.println(request.getAttribute("loginAddress"));        System.out.println(session.getAttribute("username"));        System.out.println(application.getAttribute("online"));        return SUCCESS;    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    @Override    public void setServletRequest(HttpServletRequest request) {        this.request = request;    }    @Override    public void setServletContext(ServletContext application) {        this.application = application;    }}

或者使用時直接獲取對象

package com.pb.web.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 UserAction03 extends ActionSupport {    private String username;    private String password;    private HttpServletRequest request;    private HttpSession session;    private ServletContext application;    public String login() {        // 獲取對象        request = ServletActionContext.getRequest();        session = request.getSession();        application = ServletActionContext.getServletContext();        // 保存數據        request.setAttribute("loginAddress", "您本次登錄地點是:北京");        session.setAttribute("username",username);        application.setAttribute("online","當前在線人數:XXX");        // 獲取數據        System.out.println(request.getAttribute("loginAddress"));        System.out.println(session.getAttribute("username"));        System.out.println(application.getAttribute("online"));        return SUCCESS;    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美中文字幕在线| 日韩在线视频线视频免费网站| 日韩在线播放视频| 九九视频直播综合网| xvideos成人免费中文版| 国产精品一区二区三区免费视频| 亚洲精品一区久久久久久| 在线播放亚洲激情| 国产精品久久久久久久一区探花| 中文字幕欧美国内| 国产精品欧美一区二区三区奶水| 久久免费国产视频| 欧美一级在线播放| 久久久久久久久久久免费| 亚洲女在线观看| 日韩免费黄色av| 日韩在线观看免费av| 亚洲成人久久电影| 国模精品视频一区二区| 日本国产精品视频| 欧美性猛交xxxx黑人猛交| 久久亚洲国产精品成人av秋霞| 精品女厕一区二区三区| 国产午夜精品免费一区二区三区| 日韩精品免费在线视频观看| 国产精品综合久久久| 91久久久国产精品| 亚洲成人性视频| 亚洲人成网站在线播| 日韩欧美一区二区三区久久| 92看片淫黄大片欧美看国产片| 亚洲欧美国产精品久久久久久久| 欧美—级a级欧美特级ar全黄| 国产91精品高潮白浆喷水| 精品国内产的精品视频在线观看| 国产精品久久久久久搜索| 亚洲国产成人av在线| 亚洲91精品在线| 亚洲香蕉成视频在线观看| 日韩欧美亚洲综合| 国产精品美女av| 原创国产精品91| 日韩成人性视频| 精品国内产的精品视频在线观看| 欧美资源在线观看| 亚洲欧美在线磁力| 国产精品丝袜一区二区三区| 中文字幕亚洲欧美一区二区三区| 欧美精品videosex牲欧美| 麻豆国产va免费精品高清在线| 久久久久国产精品免费网站| xxxx性欧美| 日韩在线播放视频| 久久亚洲精品国产亚洲老地址| 亚洲尤物视频网| 精品夜色国产国偷在线| 亚洲欧美激情一区| 中国日韩欧美久久久久久久久| 91日本在线视频| 欧美一区二区三区免费观看| 欧美精品日韩www.p站| 欧美在线中文字幕| 国产成人jvid在线播放| 91久久在线视频| 成人欧美一区二区三区黑人| zzjj国产精品一区二区| 中文字幕亚洲字幕| 热草久综合在线| 欧美成人高清视频| 国产欧美在线视频| 久久久久久综合网天天| xxx欧美精品| 国产精品久久久久av免费| 亚洲天堂av在线免费| 2018日韩中文字幕| 日韩中文字幕不卡视频| www国产亚洲精品久久网站| 久久伊人色综合| 另类专区欧美制服同性| 欧美一级bbbbb性bbbb喷潮片| 亚洲欧美日韩成人| 国产精品久久久久久久久久| 欧美二区乱c黑人| 亚洲色图第三页| 亚洲一区制服诱惑| 自拍偷拍免费精品| 日韩高清av一区二区三区| 日韩亚洲国产中文字幕| 国产精品久久久久久久久免费| 一区二区三区国产视频| 欧美专区第一页| 粉嫩av一区二区三区免费野| 欧美亚洲成人网| 日韩欧美有码在线| 日韩在线免费视频| 在线丨暗呦小u女国产精品| 成人h视频在线| 欧美激情在线一区| 亚洲电影免费观看高清| 国产亚洲一区二区精品| 国产精品永久在线| 91夜夜揉人人捏人人添红杏| 日韩一级裸体免费视频| 久久久精品美女| 91久久在线播放| 亚洲18私人小影院| 成人午夜小视频| 欧美在线一区二区视频| 久久精品福利视频| 亚洲精品福利资源站| 久久精品国产久精国产一老狼| 久久精品视频在线观看| 久久久久久久激情视频| 日韩一区二区三区国产| 欧美日韩国产在线播放| 91精品国产综合久久久久久蜜臀| 97精品一区二区视频在线观看| 亚洲精品欧美日韩| 欧美亚洲另类视频| 欧美亚洲免费电影| 91国产视频在线| 成人黄色免费在线观看| 国产精品成人播放| 欧美日韩亚洲一区二区三区| 精品国产乱码久久久久久虫虫漫画| 日韩高清免费观看| 亚洲精品aⅴ中文字幕乱码| 日本成人免费在线| 日韩av观看网址| 亚洲国产一区二区三区在线观看| 欧美色播在线播放| 久久久久久网址| 全亚洲最色的网站在线观看| 欧美日韩国产专区| 久久久噜噜噜久久| 欧美高跟鞋交xxxxhd| 98精品国产自产在线观看| 主播福利视频一区| 国产精品视频精品视频| 亚洲综合在线小说| 国产精品电影在线观看| 国产日韩欧美综合| 日本高清视频一区| 亚洲天堂一区二区三区| 国产xxx69麻豆国语对白| 国产亚洲精品久久久久动| 日韩欧美第一页| 午夜精品久久久久久久白皮肤| 成人在线国产精品| 欧美日韩ab片| 日韩高清欧美高清| 久久91亚洲精品中文字幕| 视频在线一区二区| 国产91精品视频在线观看| 久久手机免费视频| 亚洲淫片在线视频| 欧美理论电影网| 亚洲国产高清高潮精品美女| 日本精品一区二区三区在线播放视频| 亚洲欧美日韩一区二区在线| 91老司机在线| 亚洲欧美国产一区二区三区| 国产欧美亚洲视频| 大桥未久av一区二区三区|