博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
struts的模拟---框架起步篇
阅读量:6475 次
发布时间:2019-06-23

本文共 2272 字,大约阅读时间需要 7 分钟。

hot3.png

                                                        struts初步学

目的:       

   一个servlet  process方法处理所有的 .do  

-----------------------------------------------------------------------------

主要的不同之处是只用到一个servlet   来截获我们的所有的.do 请求  

----------------------------------------------------------------------------

然后 我们拿到url 参数

Exmple:   

       

   

     通过request.getRequestURI   来拿到url参数

   /struts/addUser.do

------------------------------------------------------------------------

        但是我们需要的是    /addUser  这个东西来创建                                         addUserAction

        对于action需要的是一个execute方法

 --------------------------------------------------------------------

相当于我们将所有的servlet修改成为action

通过种种方法我们进入action,并拿到跳转信息

在servlet(中央控制器中跳转)

-------------------ok----------------------------------------

如下是actionServlet

-----------------------actionServlet-----------------------------

public class ActionServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {        this.process(request,response);   } public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {            this.process(request,response);  }   protected    void   process (HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{         String url   =         request.getRequestURI();//从View层我拿到了url请求地址         String path  = url.substring(url.lastIndexOf("/"), url.lastIndexOf("."));//将请求地址截获修剪           //  load  properties          Properties     prop  = new Properties();          InputStream    ips  = this.getClass().getClassLoader().getResourceAsStream("actionconfig.properties");          prop.load(ips);                String actionName =        prop.getProperty(path);//拿到我们的actionName之后我们可以生成对象了      System.out.println(actionName);           Action  action  = null;           try {action   = (Action) Class.forName(actionName).newInstance();     } catch (InstantiationException e) {  e.printStackTrace();     } catch (IllegalAccessException e) {  e.printStackTrace();     } catch (ClassNotFoundException e) { e.printStackTrace();     }           String  actionForward  = action.execute(request, response);           response.sendRedirect(actionForward);      }

-----------------------END-----------------------------

转载于:https://my.oschina.net/u/858119/blog/85636

你可能感兴趣的文章
Algs4-2.3.1如何切分数组
查看>>
uva 10815 - Andy's First Dictionary(快排、字符串)
查看>>
观察者模式
查看>>
在properties.xml中定义变量,在application.xml中取值问题
查看>>
js 数组
查看>>
Linux scp命令详解
查看>>
struct和typedef struct
查看>>
cell reuse & disposebag
查看>>
【故障处理】ORA-12545: Connect failed because target host or object does not exist
查看>>
云时代,程序员将面临的分化
查看>>
js判断移动端是否安装某款app的多种方法
查看>>
学习angularjs的内置API函数
查看>>
4、输出名称 Exported names
查看>>
paste工具
查看>>
Pre-echo(预回声),瞬态信号检测与TNS
查看>>
【转载】如何发送和接收 Windows Phone 的 Raw 通知
查看>>
WCF简要介绍
查看>>
NYOJ 97
查看>>
poj2378
查看>>
【译】SQL Server误区30日谈-Day12-TempDB的文件数和需要和CPU数目保持一致
查看>>