以下是我自工作以来,结合对C/S项目的认知,对B/S项目的一些理解。
如有不足或者错误,请各位指正。
 
由于个人一开始入门时是ASP.NET MVC,是一个比较完善、完整的框架,下面仅对JAVA的web应用框架进行简单介绍。
 
对于JEE Servlet

每写一个功能,都需要写一个servlet,然后执行servlet的service方法,对逻辑进行处理,然后返回结果。
大量的重复性工作。
一个servlet只能做一个功能,是不是有点太浪费了。
我们可以对Servlet进行功能增加。
 
首先,我们看HttpServlet(现在写的servlet大都继承这个类)的方法
继承这个类的servlet只要重写
doGet(HttpServletRequest req, HttpServletResponse resp) 
doPost(HttpServletRequest req, HttpServletResponse resp) 
方法即可处理页面请求的Get跟Post请求。
HttpServlet的service()方法,默认实现的是通过获取request里面的httpMethod,判断页面访问方式是Get还是Post 来执行doGet或者doPost方法。
ASP.NET MVC在controller上面写[HttpGet]、[HttpPost]的声明,本质上也是对方法进行声明,分别处理Get 、Post请求。
 
参考HttpServlet的service()方法的实现,我们也可以尝试从request里面拿参数,然后根据参数,我们去执行我们自己的方法,从而实现对servlet的多次利用,功能扩充。
 
Struts 做的就是这样的工作,获取url,然后按照约定好的配置,得到要执行的servlet及执行的servlet的方法。
 
<action name="userAdd" class="com.demo.user.action.UserAction" method="add">
            <result>/user_add_success.jsp</result>
</action>
 
<action name="userDel" class="com.demo.user.action.UserAction" method="del" >
            <result>/user_del_success.jsp</result>
</action>
同时进行了扩充,不用再在代码里面进行视图的返回,可以根据方法处理结果的不同,返回不同的视图,进一步实现页面与视图的解耦
 <action name = "LoginAction" class = "com.demo.login.LoginServlet" >
            <result name = "input">/login.jsp</result>
            <result name = "error">/error.jsp</result>
            <result name = "success">/main.jsp</result>
 </action>
 
 

最新文章

  1. Linux下的解压命令小结
  2. aspose words 介绍
  3. 课前HTML基础
  4. PHP单一入口apache配置和去除index.php
  5. MySQL中文全文检索
  6. radius服务器搭建
  7. gitd模式-主从备份恢复
  8. C++堆栈生长方向
  9. [Hyper-V]在Windows 8.1 操作系统中启用Hyper-V功能
  10. 第二十八篇、自定义的UITableViewCell上有图片需要显示,要求网络网络状态为WiFi时,显示图片高清图;网络状态为蜂窝移动网络时,显示图片缩略图
  11. C、Shell、Perl基于Tomcat开发CGI程序环境配置
  12. 十个JAVA程序员容易犯的错误
  13. script —— 终端里的记录器
  14. Spark Streaming的wordcount案例
  15. 巧用css text-indent减小中文标点符号的占位大小
  16. 【转】国际GNSS服务组织IGS
  17. pig脚本不需要后缀名(python tempfile模块生成pig脚本临时文件,执行)
  18. 2018年冬季寒假作业4--PTA 抓老鼠啊~亏了还是赚了?
  19. Java发送邮件 —— SpringBoot集成Java Mail
  20. Struts2学习第四天——拦截器及文件上传

热门文章

  1. ZooKeeper:Java客户端网络处理
  2. nfs挂载配置
  3. 不同数据库,查询前n条数据的SQL语句
  4. ubuntu安装pppoeconf后与networkmanager冲突
  5. Linux 信号(一)—— kill 函数
  6. Nginx+PHP On windows
  7. Pwn~
  8. 常用算法&mdash;&mdash;排序(一)
  9. iOS网络编程
  10. Paxos