标签:
1.第一个Struts2入门案例
1.找jar包
Struts2-core
xwork-core
ognl
javasist
freemarker
commons-lang
commons-io
commons-fileupload
2.在web.xml文件中植入配置,配置了核心过滤器(XXXXFilter)
核心控制器
核心过滤器的名称:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
Ctrl+Shift+T
3.在src下创建一个struts.xml文件
<package name="default" namespace="/" extends="struts-default">
<action name="xxAction逻辑名称:URL请求书写的名称" class="类的物理地址">
<result name="success">/index.jsp</result>
<result name="login">/login.jsp</result>
</action>
</package>
4.在action包中创建一个Action类
实现了特定接口的一个类 Action接口
public class LoginAction implements Action{
public String execute(){
return "success";
}
}
5.写一个index.jsp页面
2.实现登录:认证自动装配
初级的自动装配
page:name Action: name保持一致
中级的自动配置
page:user.namee Action :user对象
高级的自动配置
page:name Action:user(多实现了一个接口:ModelDriven)
前提条件:要手动new出user
3.保存用户信息:ServletAPI如何使用?在Action中如何获取到session对象
解耦
方式一:ActionContext.getContext().getSession()
方式二:IOC注入
实现了接口:SessionAware: 核心方法 setSession(Map<String,Object> map)
Map<String,Object> map;
形成get和set方法
Action的execute方法中,使用map.put()
耦合
方式一:ServletActionContext.getRequest().getSession();
方式二:IOC 注入
实现一个接口:ServletRequestAware setServletRequest(HttpServletRequest request)
Action 中公开一个变量:HttpServletRequest request; get和set方法
Action中的execute方法中就可以 HttpSession=request.getSession();
1.Struts2和MVC
解析:MVC是一种模式,设计思想
Struts2是这种模式的一种实现
Spring MVC
2.WebWork和Struts2关系
解析:Struts1 官方提供的框架
WebWork
3.Struts2标签
1.导入指令
<%@ taglib uri="/struts-tags" prefix="s"%>
2.使用
<s:form>
</s:form>
4.自动装配autoaware
1.login.jsp
name="username"
2.Action中的成员变量名称和登录界面中name属性值一致
5.一个异常
Stacktraces (栈跟踪)
java.lang.NullPointerException 空指针异常
cn.happy.action.LoginAction.execute(LoginAction.java:12)
6.username password ------->user
jsp页面
<input name="user.username"/>
<input name="user.password"/>
解析:ModelDriven (模型驱动)
public abstract interface com.opensymphony.xwork2.ModelDriven {
public abstract java.lang.Object getModel();
}
小tip:
1.让Action实现一个ModelDriven<UserInfo>
2.user对象手动实例化
3.UserInfo getModel(){
return user;
}
8.Servlet API
解析:API(Application Programming Interface) 应用程序编程接口
就是和Servlet相关的一组接口和类
Servlet API 文档
接口和类以及方法的说明,描述
xxx.chm
9.我想在登录成功后,拿到Session,给Session保存用户名。
1.如何在Action中获取到session对象
2.将用户名放入session作用域
10.获取session的两种方案
方式一:耦合
HttpSession session2 = ServletActionContext.getRequest().getSession();
方式二:解耦
Map<String, Object> session = ActionContext.getContext().getSession();
通过注入方案:IOC
标签:
原文地址:http://www.cnblogs.com/6zhi/p/5908690.html