麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

Struts2(八)訪問(wèn)Servlet API

2019-11-14 23:32:14
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
Struts2(八)訪問(wèn)Servlet API一、Struts2中的Servlet API1.1、struts2的Action實(shí)現(xiàn)了MVC中C層的作用

針對(duì)請(qǐng)求用戶顯示不同的信息

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

保存當(dāng)前在線人數(shù)等功能---application

1.2、傳統(tǒng)的Servlet API類型

HttpServletRequest

HttpSession

ServletContext

1.3、Struts2中將傳統(tǒng)的Servlet API類型被處理成Map類型

訪問(wèn)更方便

不依賴傳統(tǒng)Servlet API 類型--解耦合

二、ActionContext

所在包c(diǎn)om.opensymphony.xwork2

ActionContext被稱為Action上下文或者Action環(huán)境

ActionContext,提供每個(gè)Action運(yùn)行時(shí)與之相關(guān)的所有信息

訪問(wèn)Servlet API

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

通過(guò)ActionContext類的實(shí)例可獲得Map類型的請(qǐng)求,會(huì)話等

通過(guò)Put()和Get()方法在Map類型的對(duì)象中存取數(shù)據(jù)

二、簡(jiǎn)單例子

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頁(yè)面

<%@ 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>登錄頁(yè)面</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>登錄成功頁(yè)面</title></head><body><h1>jsp方式取值:</h1><%=request.getAttribute("linkaddress") %><br/><%=session.getAttribute("uname") %><br/><%=application.getAttribute("online") %><br/><h1>EL表達(dá)式取值:</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", "這次的登錄地點(diǎn):SZ");            session.put("uname", username);            application.put("online", "當(dāng)前在線人數(shù):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對(duì)象

更改以上的代碼

login.jsp頁(yè)面

<%@ 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>登錄頁(yè)面</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>登錄成功頁(yè)面</title></head><body><h1>jsp方式取值:</h1><%=request.getAttribute("linkaddress") %><br/><%=session.getAttribute("uname") %><br/><%=application.getAttribute("online") %><br/><h1>EL表達(dá)式取值:</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;    //屬性要有g(shù)etter、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", "這次的登錄地點(diǎn):SZ");            session.put("uname", username);            application.put("online", "當(dāng)前在線人數(shù):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提供接口來(lái)生成application,session,request對(duì)象,    @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>

使用傳統(tǒng)的方式獲取Servlet API

實(shí)現(xiàn)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() {        // 獲取對(duì)象        session = request.getSession();        // 保存數(shù)據(jù)        request.setAttribute("loginAddress", "您本次登錄地點(diǎn)是:北京");        session.setAttribute("username", username);        application.setAttribute("online", "當(dāng)前在線人數(shù):XXX");        // 獲取數(shù)據(jù)        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;    }}

或者使用時(shí)直接獲取對(duì)象

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() {        // 獲取對(duì)象        request = ServletActionContext.getRequest();        session = request.getSession();        application = ServletActionContext.getServletContext();        // 保存數(shù)據(jù)        request.setAttribute("loginAddress", "您本次登錄地點(diǎn)是:北京");        session.setAttribute("username",username);        application.setAttribute("online","當(dāng)前在線人數(shù):XXX");        // 獲取數(shù)據(jù)        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;    }}


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 毛片免费视频播放 | 久草在线视频新 | 91 视频网站 | 色污视频 | 国产成人精品一区二区视频免费 | 色妞视频男女视频 | 91情侣偷在线精品国产 | 国产一国产一级毛片视频在线 | 亚洲五码在线观看视频 | 国产乱free国语对白 | 极品美女一级毛片 | 日本在线免费观看视频 | www.成人免费 | 色综合久久久久久久久久久 | 午夜视频免费播放 | 午夜精品在线视频 | 激情大乳女做爰办公室韩国 | 亚洲成人第一区 | 久久久婷婷一区二区三区不卡 | 国产成人精品一区二区视频免费 | 午夜视频国产 | 国产一区二区三区四 | 久久精品国产亚洲7777 | 一本到免费视频 | 在线观看av国产一区二区 | 午夜精品久久久久久久久久久久久蜜桃 | 二区三区四区 | 久草视频国产在线 | 一区二区三区视频在线观看 | 成码无人av片在线观看网站 | 综合在线一区 | 国产九色在线观看 | 久久久久久久一区 | 亚洲码无人客一区二区三区 | 91综合在线观看 | 中国妞xxxhd露脸偷拍视频 | 女18一级大黄毛片免费女人 | 亚洲第一视频 | 亚洲一区 国产精品 | a黄在线观看 | 中文字幕欧美亚洲 |