Servlet应用程序(2)----基于Filter Dispatcher的MVC
来源:互联网 发布:java selenium教程 编辑:程序博客网 时间:2024/05/23 20:03
虽然Servlet是MVC中最常用的Controller,但也可以用过滤器作为Controller。不过注意,过滤器无权充当首页。只输入域名将不会调用过滤器的分发器。
例子:
public class DispatcherFilter implements Filter{ @Override public void destroy() { // TODO Auto-generated method stub } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { // TODO Auto-generated method stub HttpServletRequest req = (HttpServletRequest) request; String uri = req.getRequestURI(); int lastIndex = uri.lastIndexOf("/"); String action = uri.substring(lastIndex+1); if(action.equals("product_input")){ //不处理 }else if(action.equals("product_save")){ //创建表单 ProductForm productForm = new ProductForm(); productForm.setName(request.getParameter("name")); productForm.setDescription(request.getParameter("description")); productForm.setPrice(request.getParameter("price")); //创建模型 Product product = new Product(); product.setName(productForm.getName()); product.setDescription(productForm.getDescription()); product.setPrice(Float.parseFloat(productForm.getPrice())); SaveProductAction saveProductAction = new SaveProductAction(); saveProductAction.save(product); //保存模型到视图 request.setAttribute("product", product); } //映射到视图 String dispatchUrl = null; if(action.equals("product_input")){ dispatchUrl="jsp/ProductForm.jsp"; }else if(action.equals("product_save")){ dispatchUrl="jsp/ProductDetails.jsp"; } if(dispatchUrl != null){ RequestDispatcher rd = request.getRequestDispatcher(dispatchUrl); rd.forward(request, response); }else{ filterChain.doFilter(request, response); } } @Override public void init(FilterConfig filterConfig) throws ServletException { // TODO Auto-generated method stub }}
关于代码里提到的其他文件,请查看我的上一个博客。
部署:
<filter> <filter-name>DispatcherFilter</filter-name> <filter-class>model2.DispatcherFilter</filter-class> </filter> <filter-mapping> <filter-name>DispatcherFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
所得到的结果见上一个博客。不赘述。
阅读全文
0 0
- Servlet应用程序(2)----基于Filter Dispatcher的MVC
- servlet: filter的<dispatcher>FORWARD</dispatcher>
- 【Java.Web】MVC —— 基于Filter Dispatcher的Model2 —— 示例
- Servlet应用程序(1)----基于Servlet Controller的MVC
- mvc-dispatcher-servlet.xml
- Servlet中filter过滤<dispatcher>FORWARD</dispatcher>标签使用
- Filter,Dispatcher
- <filter-mapping>中<dispatcher>FORWARD</dispatcher>的作用
- Servlet.init() for servlet mvc-dispatcher threw exception
- xybb__神秘的Could not open ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]
- 关于Spring MVC的详细步骤(包括web.xml;applicationContext.xml;dispatcher-servlet.xml)
- spring-mvc小结<servlet> <servlet-name>mvc-dispatcher</servlet-name> <servlet-class>org.springframe
- 基于MVC的Web应用程序的优势
- 基于Servlet的MVC设计模式
- 7基于Servlet的MVC模式
- 基于Servlet的MVC模式Demo
- struts与spring mvc及filter、servlet的区别
- Servlet filter 和 Spring MVC拦截器的区别
- Java.lang.UnsupportClassVersionError:Unsupported major.minor version 52.0
- 网联整合各大支付_支付行业变天
- VS配置使用NUnits
- java ctrl+c(kill 2)打断过程
- 获取安卓系统版本等各个参数
- Servlet应用程序(2)----基于Filter Dispatcher的MVC
- VBScript 中常见的几种循环
- 使用 Router 实现的模块化,如何优雅的回到主页面
- 静态代理
- Java+opencv3.2.0之删除最小连通区域
- 简单说 !![]==true 与 []==true 引发的思考
- 关于c语言中字符常量,变量的两道经典例题
- C库中的strcpy,strncpy,memcpy,memmove,memset函数
- 个推推送项目实用(二)