Servlet API 二 | 学习笔记

简介: 快速学习 Servlet API 二,介绍了 Servlet API 二系统机制, 以及在实际应用过程中如何使用。

开发者学堂课程【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 ";

}

}

建议大家用第一种和第四种

相关文章
|
API
05JavaWeb基础 - Servlet的相关API
05JavaWeb基础 - Servlet的相关API
45 0
|
2月前
|
Java 容器
【学习笔记】Jsp与Servlet技术
【学习笔记】Jsp与Servlet技术
84 0
|
4月前
|
人工智能 监控 安全
F5社区学习笔记:API和AI如何改变应用安全?
F5社区学习笔记:API和AI如何改变应用安全?
57 1
|
4月前
|
jenkins API 持续交付
jenkins学习笔记之十五:SonarSQube API使用
jenkins学习笔记之十五:SonarSQube API使用
|
6月前
|
API
获得servlet相关API,获得请求头和cookie-spring23
获得servlet相关API,获得请求头和cookie-spring23
|
7月前
|
XML API 数据格式
【Qt 学习笔记】QWidget的enable属性 | API的介绍
【Qt 学习笔记】QWidget的enable属性 | API的介绍
196 0
|
7月前
|
网络协议 前端开发 Java
异步Servlet学习笔记(一)
异步Servlet学习笔记(一)
|
7月前
|
JSON Java 应用服务中间件
Servlet API 详解
Servlet API 详解
|
前端开发 API
前端学习笔记202305学习笔记第三十天-什么是mvc-c层api 前后端联动1
前端学习笔记202305学习笔记第三十天-什么是mvc-c层api 前后端联动1
82 0
|
前端开发 API
前端学习笔记202305学习笔记第三十一天-什么是mvc-c层api 前后端联动3
前端学习笔记202305学习笔记第三十一天-什么是mvc-c层api 前后端联动3
60 0