ssh框架文档格式.docx

上传人:b****1 文档编号:1359214 上传时间:2023-04-30 格式:DOCX 页数:68 大小:46.45KB
下载 相关 举报
ssh框架文档格式.docx_第1页
第1页 / 共68页
ssh框架文档格式.docx_第2页
第2页 / 共68页
ssh框架文档格式.docx_第3页
第3页 / 共68页
ssh框架文档格式.docx_第4页
第4页 / 共68页
ssh框架文档格式.docx_第5页
第5页 / 共68页
ssh框架文档格式.docx_第6页
第6页 / 共68页
ssh框架文档格式.docx_第7页
第7页 / 共68页
ssh框架文档格式.docx_第8页
第8页 / 共68页
ssh框架文档格式.docx_第9页
第9页 / 共68页
ssh框架文档格式.docx_第10页
第10页 / 共68页
ssh框架文档格式.docx_第11页
第11页 / 共68页
ssh框架文档格式.docx_第12页
第12页 / 共68页
ssh框架文档格式.docx_第13页
第13页 / 共68页
ssh框架文档格式.docx_第14页
第14页 / 共68页
ssh框架文档格式.docx_第15页
第15页 / 共68页
ssh框架文档格式.docx_第16页
第16页 / 共68页
ssh框架文档格式.docx_第17页
第17页 / 共68页
ssh框架文档格式.docx_第18页
第18页 / 共68页
ssh框架文档格式.docx_第19页
第19页 / 共68页
ssh框架文档格式.docx_第20页
第20页 / 共68页
亲,该文档总共68页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

ssh框架文档格式.docx

《ssh框架文档格式.docx》由会员分享,可在线阅读,更多相关《ssh框架文档格式.docx(68页珍藏版)》请在冰点文库上搜索。

ssh框架文档格式.docx

height:

400px;

border:

1pxsolidred;

/*居中显示*/

position:

absolute;

left:

50%;

margin-left:

-500px;

}

--------或-------------------

margin:

0pxauto;

/*firefox居中*/

body{

padding:

0px;

center;

/*IE居中*/

5、控制器的职责

/**

*控制器的处理流程

*1、获取请求参数

*2、验证请求参数

*3、处理用户请求(访问业务组件)

*4、处理异常

*5、为视图准备数据(将数据放入模型[model])

*6、选择视图生成响应

*/

6、Action不是Servlet

7、Struts2的Action每次请求创建一个

8、输入校验

、Action继承ActionSupport,覆盖validate()方法

、在参数格式不满足条件是调用addFieldError();

、只有调用过addFieldError()方法,代表验证失败,如果验证失败不会再执行execute()方法

、校验失败时action的执行结果为input,需要在struts.xml中添加name为input的result

、在jsp页面中要显示验证失败的错误消息,需要使用struts2的标签<

s:

fielderror/>

9、struts2框架自身可能产生5种result

success

none

error

input

login

==================================================================================================

10、捕获请求参数

、将请求参数设置为Action的属性

<

tr>

<

tdwidth="

70"

align="

right"

>

用户名:

<

/td>

td>

inputtype="

text"

name="

username"

/>

/tr>

tdalign="

密码:

password"

publicclassReg1ActionextendsActionSupport{

privateStringusername;

privateStringpassword;

、直接将请求参数封装为对象

user.username"

user.password"

privateUseruser;

、使用模型驱动(ModelDriven)

publicclassReg1ActionextendsActionSupportimplementsModelDriven<

User>

{

publicUsergetModel(){

if(user==null){

user=newUser();

}

returnuser;

}

默认情况下,请求参数是绑定至Action对象的属性,如果Action实现了ModelDriven接口,请求参数将不再绑定至Action,而是

getModel()方法返回的对象上

11、Action如何向JSP传递数据

、使用Action的属性

privateStringmsg;

publicStringgetMsg(){

returnmsg;

}

@Override

publicStringexecute()throwsException{

msg="

用户注册成功!

"

;

return"

message"

、使用ActionContext

newUserServiceBean().save(user);

//执行保存

ActionContext.getContext().put("

msg"

"

@@用户注册成功"

);

12、访问Servletapi

HttpServletRequest:

getParameter():

获取请求参数

getParameterValues()

getHeader("

getContextPath()

getCookies()

setAttrbute(key,value):

共享数据

getRequestDispatcher().forward():

转发

HttpServletResponse

addHeader():

添加响应头

addCookie():

添加Cookie

sendRedirect():

重定向

HttpSession

get/setAttribute()

invalidate():

销毁session

ServletContext

getRealPath()

a>

、如果只是为了共享数据,可以使用Map

aa>

、直接获取

Map<

String,Object>

session=context.getSession();

//获取用于存储数据的map对象

Map<

application=context.getApplication();

Stringcompany=(String)session.get("

company"

session.put("

data"

asessionscopedata"

application.put("

aapplicationscopedata"

bb>

、依赖注入

publicclassServletApi2ActionextendsActionSupportimplementsRequestAware,SessionAware,ApplicationAware{

privateMap<

String,Object>

request;

session;

application;

@Override

publicvoidsetRequest(Map<

request){

System.out.println("

callsetRequest()"

this.request=request;

publicvoidsetApplication(Map<

application){

this.application=application;

publicvoidsetSession(Map<

session){

this.session=session;

b>

、如果要执行其它操作,则必须使用原生对象

HttpServletRequestrequest=ServletActionContext.getRequest();

HttpServletResponseresponse=ServletActionContext.getResponse();

HttpSessionsession=request.getSession();

ServletContextapplication=ServletActionContext.getServletContext();

publicclassServletApi4ActionextendsActionSupportimplements

ServletRequestAware,ServletResponseAware,ServletContextAware{

privateHttpServletRequestrequest;

privateHttpServletResponseresponse;

privateHttpSessionsession;

privateServletContextapplication;

@Override

publicvoidsetServletContext(ServletContextapplication){

this.application=application;

}

publicvoidsetServletResponse(HttpServletResponsearg0){

this.response=arg0;

publicvoidsetServletRequest(HttpServletRequestarg0){

this.request=arg0;

this.session=request.getSession();

13、一个Action处理多个请求

、一个Action类有多个与execute()相似签名的方法,每个方法处理一个请求

publicclassUserActionextendsActionSupport{

publicStringsave()throwsException{

return"

publicStringupdate()throwsException{

publicStringdelete()throwsException{

、从struts2.3开始不可使用

ahref="

userMgr!

save.action"

添加用户<

/a>

update.action"

修改用户<

delete.action"

删除用户<

、动态方法调用

!

--{1}代表第一个*号的值-->

actionname="

user_*"

class="

com.sxt.struts2.web.action.UserAction"

method="

{1}"

resultname="

/WEB-INF/jsp/message.jsp<

/result>

/action>

user_save.action"

user_update.action"

user_delete.action"

、更复杂的示例

User_add.action,Employee_delete.action,Dept_query.action

<

*_*"

xxx.action.{1}Action"

{2}"

input"

/WEB-INF/jsp/{1}/{2}.jsp<

14、struts.xml中的配置项

struts>

beanclass="

/>

--注册bean组件-->

--注册未知处理器-->

unknown-handler-stack>

unknown-handler-refname="

/unknown-handler-ref>

/unknown-handler-stack>

includefile="

user.xml"

--包含另一个配置文件-->

--修改struts2工作中的一些设定,可修改的设定来自于struts2-core-2.x.xx.jar中org.apache.struts2包中default.properties-->

constantname="

struts.i18n.encoding"

value="

utf-8"

/constant>

--post请求参数的字符集-->

--抽象包中不能定义action-->

--一个action请求路径由package的namespace+action的name属性组成-->

packagename="

default"

extends="

struts-default"

abstract="

false"

namespace="

/system/base"

--注册result解析器类-->

result-types>

result-typename="

sxt"

com.sxt.struts2.result.TestResult"

/result-type>

/result-types>

--注册拦截器-->

interceptors>

interceptorname="

test"

com.sxt.struts2.web.interceptor.TestInterceptor"

/interceptor>

--用于将多个拦截器组合成一个-->

interceptor-stackname="

testStack"

<

interceptor-refname="

defaultStack"

/interceptor-stack>

/interceptors>

--指定默认的拦截器-->

default-interceptor-refname="

--指定默认的Action类<

>

-->

--<

default-class-refclass="

/default-class-ref>

--指定默认的action-->

default-action-refname="

--全局result设定,可以被该包中的所有action使用-->

global-results>

/global-results>

--全局的异常处理声明-->

global-exception-mappings>

exception-mappingresult="

error"

exception="

java.lang.Exception"

/global-exception-mappings>

result>

result"

com.sxt.struts2.web.action.ResultAction"

--当action的执行结果为a时,由sxt所对应的解析器类生成响应-->

a"

type="

paramname="

location"

/param>

--声明Action需要使用哪些拦截器,一旦使用该元素,则默认拦截器不再有效-->

--

/interceptor-ref>

-->

/package>

/struts>

=======================================================================================================

15、result的设定(决定如何生成响应)

--转发至一个jsp-->

dispatcher"

--重定向至一个jsp-->

b"

redirect"

--转发至一个Action-->

c"

chain"

namespace"

/aaa<

actionName"

other<

--重定向至一个Action-->

d"

redirectAction"

--动态传参-->

other?

username=${name}<

--文本响应-->

e"

plainText"

--Content-Type:

text/plain;

charset=utf-8-->

charSet"

utf-8<

、转发操作,向下一个组件传值,直接将值存入ActionContext

ActionContext.getContext().put(key,value);

、重定位操作向下一

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 教学研究 > 教学计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2