96SEO 2026-02-20 08:27 0
为了更方面的处理请求参数中的null及空字符串转换为数值型数据的问题加入一个监听器在应用启动时注册转换器。

发送请求示例http://localhost:8080/mvc/studentAction.actionmethodNameaddStudentsid100age23addraabbcc
Controller是模型(model)视图(view)控制器(controller)的缩写一种软件设计典范。
用一种业务逻辑、数据、界面显示分离的方法将业务逻辑聚集到一个部件里面在改进和个性化定制界面及用户交互的同时不需要重新编写业务逻辑。
Model是应用程序中用于处理应用程序数据逻辑的部分通常模型对象负责在数据库中存取数据。
View是应用程序中处理数据显示的部分通常视图是依据模型数据创建的。
Controller是应用程序中处理用户交互的部分通常控制器负责从视图读取数据控制用户输入并向模型发送数据。
MVC是一个框架模式它强制性的使应用程序的输入、处理和输出分开。
使用MVC应用程序被分成三个核心部件模型、视图、控制器。
它们各自处理自己的任务。
最典型的MVC就是JSP
Model:常用javabean去实现通过各种类来对数据库的数据进行获取并封装在对象当中。
View:常用JSP来实现通过可直接观察的JSP页面来展示我们从数据库中获取的数据。
Controller:常用servlet来实现通过servlet来获取经过javabean包装过的对象已存入数据库中的数据然后再发送数据传输到JSP界面。
三层是种软件架构通过接口实现编程MVC模式是一种复合设计模式一种解决方案
复杂接收所有的请求并分别给控制器具体处理。
自控制器Action负责处理中央处理器分配的请求视图view
通过servlet来实现一个中央控制器负责所有请求的接收。
后续中央控制器在再将请求转发给各个子控制器此处可以先把请求接进来转发功能后面再加
Action接口定义了每个子控制器需要遵循的行为使得所有的子控制器都有一个同一的抽象类型所以我们可以在中央控制器中使用Action接口类型来引用所有的子控制器。
这样就为用户扩展自定义的子控制器提供了条件
编写简单的请求分发实现功能实现通过配置文件来配置子控制器的功能完善请求参数处理功能
为了在中央控制器中完成请求的分发需要在中央控制器中维护所有子控制器的实例并且能够依据请求路径将请求转发给与其关联的子控制器。
{//用于保存path与action子控制器的映射public
StudentAction());actionMap.put(/bookAction,
request.getServletPath();String
servletPath.split(\\.)[0];Action
response);System.out.println(rpath);}}
在上面的示例中在中央控制器中直接创建action子控制器如果新增一个子控制器需要在中央控制器中添加这样并不实用。
为了增加灵活性可以将action转移到配置文件中配置中央控制器通过配置来初始化action子控制器。
此时需要将config.xml文件的解析和建模项目的功能集成进来。
ConfigModelActionModelForwardModelConfigModelFactory
typeorg.lisen.mvc.action.StudentActionforward
{//用于保存path与action子控制器的映射//public
StudentAction());//actionMap.put(/books,
ConfigModelFactory.getConfigModel();}Overridepublic
request.getServletPath();String
servletPath.split(\\.)[0];Action
{response.sendRedirect(request.getContextPath()
{request.getRequestDispatcher(forwardModel.getPath()).forward(request,
response);}}//通过请求路径获取对应的action实例private
Class.forName(action.getType());return
RuntimeException(创建Action实例异常e.getMessage(),
configModel.find(path).find(name);}}
本例的实现中Action子控制器是多例模式的及每个请求对应一个Action实例
对于需要处理请求参数的Action可以通过实现该接口获取请求参数的*
处理能力中央控制器将会使用该接口来获取Model对象并统一处理*
getActionByPath(path);//处理请求参数if(action
RuntimeException(在中央处理器中处理请求参数时发生异常,
为了更方面的处理请求参数中的null及空字符串转换为数值型数据的问题加入一个监听器在应用启动时注册转换器。
ServletContextListener接口为Servlet
API中的接口用于监听ServletContext对象的生命周期。
*
应用时会触发ServletContextEvent事件该事件由*
contextDestroyed(ServletContextEvent
并且对那些在Web应用启动时就需要被初始化的Servlet进行初始化。
*/Overridepublic
contextInitialized(ServletContextEvent
Integer.class);ConvertUtils.register(new
Float.class);ConvertUtils.register(new
Double.class);ConvertUtils.register(new
Long.class);ConvertUtils.register(new
每个Action只能有一个execute方法如果处理一个模块的增删改查则需要单独编写多个Action这样会比较麻烦。
如果在一个Action实例中可以处理多个请求方法则框架会更加灵活。
规定请求参数中必须包含一个“methodName”参数用于指定处理请求的Action中的方法构建一个抽象类该类实现Action子控制器接口通过反射机制调用其子类中的方法方法名有请求参数“methodName”指定。
需要开发的Action子控制器集成上一步构建的抽象类编写的用于处理请求的方法名要与请求参数“methodName”指定的方法名匹配同时需要HttpServletRequest和HttpServletResponse两个参数保留该参数主要为了方面对请求的处理
request.getParameter(methodName);Class?
clazz.getDeclaredMethod(methodName,
HttpServletRequest.class,HttpServletResponse.class);return
RuntimeException(在调用Action中的[methodName]方法是异常,
System.out.println(StudentAction
System.out.println(getStudents);System.out.println(StudentAction
{System.out.println(addStudent);System.out.println(add
http://localhost:8080/mvc/studentAction.actionmethodNameaddStudentsid100age23addraabbcc
注意在请求中需要添加一个methodName的固定参数该参数指定了需要调用的Action中的方法的名称。
可以将通用分页字符编码过滤器等组件一集成到mvc框架中便于复用。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback