皮皮网

【森林龙源码】【spu源码配置】【博客bbs源码】filterdispatcher源码

2024-11-18 21:47:34 来源:vc 网页 源码 http

1.struts2.0的工作原理?
2.struts2如何接收多个参数

filterdispatcher源码

struts2.0的工作原理?

       å®¢æˆ·ç«¯å‘出一个请求,服务器端StrutsPreparedAndExceuteFilter接收请求。

       å¦‚果该请求是一个以 .action 结尾请求,则Struts2将请求转发至相应的Action,进行数据类型转换,如果数据类型转换出错,则返回到 input 指定的结果页面。

       å¦‚果数据类型转换没有出错,则调用setXX 方法进行设值,如果使用了validate()验证方法(或者是使用了验证框架),则进行相应的验证。

       å¦‚果验证出错,回到 input 指定的结果页面。

       å¦‚果没有使用验证,或者验证没有出错,则执行 execute() 方法,返回到相应的页面。

扩展资料:

       Struts2流程注解

       å½“Web容器收到请求(HttpServletRequest)它将请求传递给一个标准的的过滤链包括(ActionContextCleanUp)过滤器。

       ç»è¿‡Other filters(SiteMesh ,源码etc),需要调用FilterDispatcher核心控制器,然后它调用ActionMapper确定请求哪个Action,ActionMapper返回一个收集Action详细信息的ActionMaping对象。

       FilterDispatcher将控制权委派给ActionProxy,ActionProxy调用配置管理(ConfigurationManager) 从配置文件中读取配置信息(struts.xml),然后创建ActionInvocation对象。

       ActionInvocation在调用Action之前会依次的调用所用配置拦截器(Interceptor N)一旦执行结果返回结果字符串ActionInvocation负责查找结果字符串对应的(Result)然后执行这个Result Result会调用一些模版(JSP)来呈现页面。

       æ‹¦æˆªå™¨(Interceptor N)会再被执行(顺序和Action执行之前相反)最后响应(HttpServletResponse)被返回在web.xml中配置的那些过滤器和核心控制器(FilterDispatcher)。

       å‚考资料来源:百度百科-Struts 2

struts2如何接收多个参数

       Struts2的核心是FilterDispatcher,它会处理我们的请求,不用考虑太多,源码森林龙源码它使用了代理模式,源码spu源码配置action里面接收form里面的源码博客bbs源码值,记得form与action里面的OO对象一致,或者采用对象.属性方式进行代码编写 form代码: 1. <form action="resgist" method="post"> 账号:<input type="text" name="username" />

       工号:<input type="text" name="userpassword"/>

       <input type="submit" value=" 注 册 " />

       </form> 2. <form action="resgist" method="post"> 账号:<input type="text" name="user.name" />

       工号:<input type="text" name="user.password"/>

       <input type="submit" value=" 注 册 " />

       </form> action代码:1. private String username; //username对象,源码aspects 源码分析与form一致

       private String userpassword;//userpassword对象与form一致

       public String getUsername() {

       return username;

       } /

**

       * @param username the username to set

       */

       public void setUsername(String username) {

       this.username = username;

       } /

**

       * @return the userpassword

       */

       public String getUserpassword() {

       return userpassword;

       } /

**

       * @param userpassword the userpassword to set

       */

       public void setUserpassword(String userpassword) {

       this.userpassword = userpassword;

       }2.User实体类里面有name、源码gcc文件源码password属性private User user; //user对象,源码与form一致

       /

**

       * @return the user

       */

       public User getUser() {

       return user;

       } /

**

       * @param user the user to set

       */

       public void setUser(User user) {

       this.user = user;

       } 3.获取表单值存入session:if("admin".equalsIgnoreCase(user.getName().trim()&&"".equals(user.getPassword))){ ActionContext.getContext().getSession().put("admin",源码 user.getName());} 其他更详细的请阅读《Struts2权威指南》或者《WebWork in Action》