开发者学堂课程【Java Web开发系列课程 - Struts2框架入门:Servlet API 二】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/537/detail/7304
Servlet API 二
内容简介
一、 struts2获取 servletAPI 方式
二、 解耦
三、 通过 ActionContext 直接获取 HttpServletRequset
四、 耦合
五、 获取 HttpServletRequset 对象
一、 struts2获取 servletAPI 方式
struts2有2种方式去获取 servletAPI;
一种解耦,一种耦合;解耦使得使用 struts2来进行测试的时候不需要启动服务器。
在一定程度上提高开发效率的。
Action--->service--->dao
二、解耦
使用解耦的方式来获取 servlet api;通过 ActionContext 对象获取。
ActionContext.getContext().getSession().put(“user”,name);
package cn.sxt.action
import com.opensymphony.work2.ActionContext;
pubilc class LoginAction {
private String name;
private String pwd;(该绿色部分可以省略)
//处理方法
public String execute(){
System.out.println(name+”---“+pwd);
if(“siggy”.equals(name)&&”1111”.equals(pwd))}
//获取 session
ActionContext.getContext().getSession().put(“user”,name);
//获取 request---HttpServeletRequest 对象的 attributes
Maprequest=
(Map)ActionContext.getContext().get(“request”);
//获取 application
Map application=ActionContext.getContext().getApplication();
//获取 parameters
Mapparameters=ActionContext.getContext().getparameters
//相当于 request。Getparameter(“name”);
System.out.println(“name====”+((String【】parameters.get(“name”)))【0】;
return “success”;
}else{
return”login”;
}
}
Public String logout(){
ActionContext.getSession().remove(“user”);
System.out.println(“退出“)(该绿色区域可以省略)
三、通过 ActionContext 直接获取 HttpServletRequset
//处理方法
Public String execute(){
System.out.println(name+”---“pwd);
if(“siggy”.equals(name)&&”1111”.equals(pwd)){
HttpServletRequest
request=(HttpServletRequest) ActionContext . getContext (). get ( StrutsStatics . HTTP _ REQUEST );
request.getSession (). setAttribute ("user", name );
System.out.println(“name===="+request.getParameter (" name"));
return “ success ";
}else{
return " login ";
}
}
四、耦合
通过耦合的方式获取 HttpServletRequset,实现 ServletRequestAware 接口
Publicclass LoginAction2 implements ServletReguestAwaref{
private String name ;
private String pwd ;
HttpServletReguest request ;
//处理方法
public String execute (){
System.out. println ( name +"---"+ pwd );
if ("siggy”. equals (name)&&"1111”.equals ( pwd )){
request.getSession().setAttribute (" user", name );
System.out.println(“name===="+request. getParameter (" name "));
return " success ";
}else{
return "login“;
}
}
public void setServletRequest ( HttpServletRequest request ){
this.request = request;
}
public String logout (){
ActionContext.getContext (). getSession (). remove (" user"); System.out.println (“退出”);
return “ success ";
}
public String getName () {
return name ;
}
public void setName (String name){
this.name = name;
}
public String getPwd (){
return pwd;
}
public void setPwd ( String pwd) {
this.pWd=pwd ;
}
}
五、通过获取 ServletActionContext
获取 HttpServletRequset 对象
public String execute (){
System.out . println ( name +”---”'+ pwd );
if ( siggy”.equals ( name )&&"1111”. equals ( pwd )){
HttpServletRequest request =
ServletActionContext . getRequest();
request . getSession () setAttribute (" user ", name ); System.out .println ("name ===="+ request.getParameter(" name");
return"success";
}else{
return " login ";
}
}
建议大家用第一种和第四种