SSH之Struts 2

Struts 2开发步骤
1.在web.xml文件中定义核心的Filter来拦截用户请求
<!--定义Struts 2的核心Filter-->
<filter>
<filter-name> struts2</filter>
<filter-class>org.apache.struts2.dispather.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<!--让Struts 2的核心Filter拦截所有请求-->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2.如果需要以POST方式提交请求,定义包含表单数据的JSP的页面,如果仅仅只是以GET方式发送请求,则无需经过这一步
3.定义处理用户请求的Action类
4.配置Action类,
<action name="login" class="org.crazyit.app.action.LoginAction">
<result name=
</action>

Could not find action or result的原因
form表单的action 可以找到对应的 Java类,只是在返回结果的时候出现问题,struts2中没有找到对应的结果页面。
        解决的方法: 删除struts-convention-plugin.jar文件,这个jar保具体的功能可能是更改了默认的返回路径。
"http://struts.apache.org/dtds/struts-2.1.dtd" 提示
在struts.xml的package标签中加入extends="struts-default"属性
输入命令:netstat -ano,列出所有端口的情况。
查看被占用端口对应的PID,输入命令:netstat -aon|findstr "49157"
继续输入tasklist|findstr "2720"

<!-- bean标签用于创建一个JavaBean实例 -->
<!-- constant 标签Struts默认行为标签 -->
<!-- package包标签,用于区分不同的请求文件的标签 -->
<!-- include标签 引入其他的xml配置文件 -->
<!-- 配置Web的默认编码集,相当于HttpServletRequest.setChartcter -->
<constant name="struts.i18n.encoding" value="utf-8"></constant>
<!-- 默认Strtus2的请求后缀是.action,也就是我们不配置该元素,action/do都可以 -->
<constant name="struts.action.extension" value="do"></constant>
<!-- 设置浏览器是否缓存内容,默认值为true,在开发阶段设置为False -->
<constan name="struts.serve.static.browserCache" value="true"></constan>
<!--当struts配置文件修改后,系统是否自动重新加载该文件,默认为false -->
<constant name="struts.configuration.xml.reload" value="true"></constant>
<!-- 开发模式下使用,这样可以打印出 更加详细的错误信息-->
<constant name="strurs.devMode" value="true"></constant>
<!-- 默认 的试图用主题 -->
<constant name="struts.ui.theme" value="simple"></constant>

Http请求流转流程
Web.xml(经过StrutsPrepareAndExcuteFilter过滤器,只拦截*.action的请求)
Struts.xml(根据请求的Url地址与action地址进行匹配,匹配成功进入相应的类文件)
前置拦截器(执行相关action的前置拦截器,例如封装数据,上传文件等等)
xxx.java(action 处理请求的数据,执行类似servlet的操作,(接收数据、持久化数据)返回一个字符串标示结果页)
后置拦截器(执行相关action后置拦截器,例如异常等信息的拦截,日志信息的处理等)
struts.xml(根据类返回的字符串匹配,跳转到相应的结果页面)
xxx.jsp(结果页面)

OGNL标签
可直接操作对象
表单标签
添加支持: <%@taglib prefix="s" uri="/struts-tags" %>
<s:form action="mylogin" method="post">
<s:textfield label="name" name="user.name"/>
<s:password label="password" name="user.password"/>
<s:submit value="submit"/>
逻辑控制标签
<向pageContext,request中放入名称为age的值
(相当于<%request.setAttribute("age", 60) %>)
<s:set name="age" value="60" scope="session"></s:set>
<s:set name="bookList" value="{'doupo','xianxian','saasdw'}"/>
<s:select label ="book" list="#bookList"></s:select>
<s:property value="#session.age"/><!-- 取值,需要session.age指定范围 -->>

拦截器
作用于请求传递,数据封装,国际化,类型转换,上传文件
AOP思想(解决耦合问题)
通配符 {*}

拦截器
Struts拦截器
package name="test" extends="struts-default" namespace="">
<interceptors>
<interceptor name="FirstInter" class="intercepter.FirstInterceptor">
</interceptor>
<interceptor-stack name="FirstInterStack">
<interceptor-ref name="FirstInter" />
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>
<action name="llos" class="action.MyLogAction" >
<interceptor-ref name="FirstInterStack"></interceptor-ref>
<result name="success">/success.jsp</result>
</action>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值