- 浏览: 695870 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (364)
- quick start (57)
- bboss aop (43)
- bboss mvc (48)
- bboss persistent (96)
- bboss taglib (30)
- bboss event (10)
- bbossgroups (52)
- bboss (32)
- bboss会话共享 (17)
- bboss rpc (7)
- bboss 国际化 (5)
- bboss 序列化 (9)
- bboss cxf webservice (8)
- bboss hessian (3)
- bboss 安全认证SSO (15)
- bboss 工作流 (6)
- 平台 (18)
- bboss quartz (3)
- 杂谈 (5)
- 大数据 (1)
- bboss elastic (24)
- bboss http (1)
- bboss kafka (1)
- Elasticsearch Scroll和Slice Scroll查询API使用案例 (1)
最新评论
-
qianhao123:
...
采用gradle构建和发布bboss方法介绍 -
qianhao123:
[img][/img]
采用gradle构建和发布bboss方法介绍 -
yin_bp:
欢迎大家参与working
高性能elasticsearch ORM开发库使用介绍 -
qq641879434:
万分感谢
bboss 持久层sql xml配置文件编写和加载方法介绍 -
yin_bp:
qq641879434 写道怎么设置配置文件 可以查看执行的S ...
bboss 持久层sql xml配置文件编写和加载方法介绍
bboss mvc基础配置介绍,本文重点介绍bboss-mvc.xml文件中的一些有意义的配置以及其什么时候被加载。
1.bboss-mvc.xml加载
首先介绍bboss-mvc.xml文件什么时候会被加载,先谈一下web.xml中bboss mvc的请求处理servlet的配置:
其中的/WEB-INF/conf/bboss-*.xml很关键,他会扫描/WEB-INF/conf下所有以bboss-开头的mvc xml配置文件并加载之;这里可以配置多个目录,用逗号分隔,只要bboss-mvc.xml放在其中的一个目录下就会在应用启动的时候被加载。
2.bboss-mvc.xml中经常会用到的配置
2.1 文件上传插件配置
常用的配置属性有:
encoding,一般被配置为utf-8,用来对附件上传表单中的请求参数进行单独的编码转换,避免中文乱码问题。
maxUploadSize:允许上传的最大文件大小,单位为byte,为-1时不限制大小。
maxInMemorySize:允许在内存中存放的最大文件块大小,以byte为单位,默认为10K
uploadTempDir:指定上传文件存放的临时目录,默认为应用临时目录
2.2 文件下载、json响应、字符串响应插件配置
如果不指定"org.frameworkset.http.converter.json.MappingJacksonHttpMessageConverter,那么控制方法中以下写法将不能正常工作:
也就是说不能正确地将对象GouWuChe 转换为json对象返回给请求客户端。
如果不指定"org.frameworkset.http.converter.FileMessageConvertor,那么控制器方法的以下写法将不能正常工作:
也就是说不能正常地下载返回的File对应的文件。
如果不指定"org.frameworkset.http.converter.StringHttpMessageConverter,那么控制器方法的以下写法将不能正常工作:
也就是说不能正常地将返回值String响应给客户端。
对于ajax请求响应出现的中文乱码问题,解决办法有两个,一个是直接在StringHttpMessageConverter上通过responseCharset属性全局指定响应字符编码集,例如UTF-8或者GBK:
具体使用何种字符集取决于项目中采用的字符集。
另外一种解决办法就是通过返回参数注解ResponseBody的charset 属性单独对请求方法的响应字符串进行编码,例如:
2.3 全局拦截器配置(最常见的就是页面保护机制配置)
拦截器配置在bboss-mvc.xml的org.frameworkset.web.servlet.gloabel.HandlerInterceptors节点中,所有的拦截器只需要实现接口
org.frameworkset.web.servlet.HandlerInterceptor
接口提供了一下方法:
写好监听器,就可以进行配置了:
2.4 url重写规则配置
这个是用来配置所有控制器方法跳转地址是否需要进行url重写以及怎么重写的规则进行配置,以下就是最常用的配置:
以上配置其实并没有设置重写规则,因为url重写前置prefix被配置为"",重写后缀suffix也被配置为"",这样控制跳转地址配置或者直接返回的地址串就是实际的物理url地址,mvc框架不做任何处理。
除非有特殊要求的项目才会开启url重写规则,也就是配置url重写前缀prefix和重写后缀suffix:
url重写前置prefix被配置为"/jsp/",重写后缀suffix也被配置为".jsp",这样控制跳转地址配置或者直接返回的地址串就是:"/jsp/"+returl+".jsp"。有人可能会担心url重写规则是否会影响性能,其实不会的,因为url只会被计算一次,后面就从缓冲区中取已经重写好的地址了。
2.5 控制器配置
name:属性控制器映射路径配置
path:index 控制器方法跳转路径配置,redirect代表重定向,forward代表直接跳转
class 控制器实现路径配置,实现代码示例:
以上就是bboss-mvc.xml中比较重要的一些应用可能会用到并修改的配置,其他的配置内容基本不用开发人员修改,保持默认配置即可。
1.bboss-mvc.xml加载
首先介绍bboss-mvc.xml文件什么时候会被加载,先谈一下web.xml中bboss mvc的请求处理servlet的配置:
<servlet> <servlet-name>mvcdispather</servlet-name> <servlet-class>org.frameworkset.web.servlet.DispatchServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <!--如果有多个目录需要加载,请用,号分隔--> <param-value/WEB-INF/conf/bboss-*.xml</param-value> </init-param> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>mvcdispather</servlet-name> <url-pattern>*.page</url-pattern> </servlet-mapping>
其中的/WEB-INF/conf/bboss-*.xml很关键,他会扫描/WEB-INF/conf下所有以bboss-开头的mvc xml配置文件并加载之;这里可以配置多个目录,用逗号分隔,只要bboss-mvc.xml放在其中的一个目录下就会在应用启动的时候被加载。
2.bboss-mvc.xml中经常会用到的配置
2.1 文件上传插件配置
<property name="multipartResolver" f:encoding="UTF-8" class="org.frameworkset.web.multipart.commons.CommonsMultipartResolver"/>
常用的配置属性有:
encoding,一般被配置为utf-8,用来对附件上传表单中的请求参数进行单独的编码转换,避免中文乱码问题。
maxUploadSize:允许上传的最大文件大小,单位为byte,为-1时不限制大小。
maxInMemorySize:允许在内存中存放的最大文件块大小,以byte为单位,默认为10K
uploadTempDir:指定上传文件存放的临时目录,默认为应用临时目录
2.2 文件下载、json响应、字符串响应插件配置
<property name="httpMessageConverters"> <list> <property class="org.frameworkset.http.converter.json.MappingJacksonHttpMessageConverter"/> <property class="org.frameworkset.http.converter.StringHttpMessageConverter"/> <property class="org.frameworkset.http.converter.FileMessageConvertor"/> </list> </property>
如果不指定"org.frameworkset.http.converter.json.MappingJacksonHttpMessageConverter,那么控制方法中以下写法将不能正常工作:
public @ResponseBody(datatype="json") GouWuChe datagrid_data()
也就是说不能正确地将对象GouWuChe 转换为json对象返回给请求客户端。
如果不指定"org.frameworkset.http.converter.FileMessageConvertor,那么控制器方法的以下写法将不能正常工作:
public @ResponseBody File downloadFileFromFile(@RequestParam(name = "fileid") String fileid) throws Exception
也就是说不能正常地下载返回的File对应的文件。
如果不指定"org.frameworkset.http.converter.StringHttpMessageConverter,那么控制器方法的以下写法将不能正常工作:
public @ResponseBody(charset = "GBK") String sayHelloEnum(@RequestParam(name = "sex") SexType type)
也就是说不能正常地将返回值String响应给客户端。
对于ajax请求响应出现的中文乱码问题,解决办法有两个,一个是直接在StringHttpMessageConverter上通过responseCharset属性全局指定响应字符编码集,例如UTF-8或者GBK:
<property class="org.frameworkset.http.converter.StringHttpMessageConverter" f:responseCharset="UTF-8"/>
<property class="org.frameworkset.http.converter.StringHttpMessageConverter" f:responseCharset="GBK"/>
具体使用何种字符集取决于项目中采用的字符集。
另外一种解决办法就是通过返回参数注解ResponseBody的charset 属性单独对请求方法的响应字符串进行编码,例如:
public @ResponseBody(charset = "UTF-8") String sayHelloEnum(@RequestParam(name = "sex") SexType type)
2.3 全局拦截器配置(最常见的就是页面保护机制配置)
拦截器配置在bboss-mvc.xml的org.frameworkset.web.servlet.gloabel.HandlerInterceptors节点中,所有的拦截器只需要实现接口
org.frameworkset.web.servlet.HandlerInterceptor
接口提供了一下方法:
/** * Intercept the execution of a handler. Called after HandlerMapping determined * an appropriate handler object, but before HandlerAdapter invokes the handler. * <p>DispatcherServlet processes a handler in an execution chain, consisting * of any number of interceptors, with the handler itself at the end. * With this method, each interceptor can decide to abort the execution chain, * typically sending a HTTP error or writing a custom response. * @param request current HTTP request * @param response current HTTP response * @param handler chosen handler to execute, for type and/or instance evaluation * @return <code>true</code> if the execution chain should proceed with the * next interceptor or the handler itself. Else, DispatcherServlet assumes * that this interceptor has already dealt with the response itself. * @throws Exception in case of errors */ boolean preHandle(HttpServletRequest request, HttpServletResponse response, HandlerMeta handlerMeta) throws Exception; /** * Intercept the execution of a handler. Called after HandlerAdapter actually * invoked the handler, but before the DispatcherServlet renders the view. * Can expose additional model objects to the view via the given ModelAndView. * <p>DispatcherServlet processes a handler in an execution chain, consisting * of any number of interceptors, with the handler itself at the end. * With this method, each interceptor can post-process an execution, * getting applied in inverse order of the execution chain. * @param request current HTTP request * @param response current HTTP response * @param handler chosen handler to execute, for type and/or instance examination * @param modelAndView the <code>ModelAndView</code> that the handler returned * (can also be <code>null</code>) * @throws Exception in case of errors */ void postHandle( HttpServletRequest request, HttpServletResponse response, HandlerMeta handlerMeta, ModelAndView modelAndView) throws Exception; /** * Callback after completion of request processing, that is, after rendering * the view. Will be called on any outcome of handler execution, thus allows * for proper resource cleanup. * <p>Note: Will only be called if this interceptor's <code>preHandle</code> * method has successfully completed and returned <code>true</code>! * @param request current HTTP request * @param response current HTTP response * @param handler chosen handler to execute, for type and/or instance examination * @param ex exception thrown on handler execution, if any * @throws Exception in case of errors */ void afterCompletion( HttpServletRequest request, HttpServletResponse response, HandlerMeta handlerMeta, Exception ex) throws Exception;
写好监听器,就可以进行配置了:
<!-- 配置全局控制器方法拦截器 --> <property name="org.frameworkset.web.servlet.gloabel.HandlerInterceptors" > <list componentType="bean"> <property class="com.bboss.security.XXXXInterceptor"/> <property class="com.bboss.security.SYSAuthenticateInterceptor"> <!-- 配置认证检查拦截器拦截url模式规则 --> <!-- <property name="patternsInclude"> <list componentType="string"> <property value="/**/*.page"/> </list> </property>--> <!-- 配置认证检查拦截器不拦截url模式规则 --> <property name="patternsExclude"> <list componentType="string"> <property value="/uddi/queryservice/main.page"/> <property value="/uddi/queryservice/verify.page"/> <property value="/uddi/queryservice/requesterVerify.page"/> <property value="/uddi/queryservice/detail.page"/> <property value="/uddi/servicemanage/basic.page"/> <property value="/uddi/servicemanage/servicedesc.page"/> <property value="/uddi/servicemanage/listmetadata.page"/> <property value="/uddi/queryservice/visitpermission.page"/> <property value="/uddi/queryservice/logout.page"/> </list> </property> <property name="redirecturl" value="/login.jsp"/> </property> </list> </property>
2.4 url重写规则配置
这个是用来配置所有控制器方法跳转地址是否需要进行url重写以及怎么重写的规则进行配置,以下就是最常用的配置:
<property name="viewResolver" class="org.frameworkset.web.servlet.view.InternalResourceViewResolver" singlable="true"> <property name="viewClass" value="org.frameworkset.web.servlet.view.JstlView"/> <property name="prefix" value=""/> <property name="suffix" value=""/> </property>
以上配置其实并没有设置重写规则,因为url重写前置prefix被配置为"",重写后缀suffix也被配置为"",这样控制跳转地址配置或者直接返回的地址串就是实际的物理url地址,mvc框架不做任何处理。
除非有特殊要求的项目才会开启url重写规则,也就是配置url重写前缀prefix和重写后缀suffix:
<property name="viewResolver" class="org.frameworkset.web.servlet.view.InternalResourceViewResolver" singlable="true"> <property name="viewClass" value="org.frameworkset.web.servlet.view.JstlView"/> <property name="prefix" value="/jsp/"/> <property name="suffix" value=".jsp"/> </property>
url重写前置prefix被配置为"/jsp/",重写后缀suffix也被配置为".jsp",这样控制跳转地址配置或者直接返回的地址串就是:"/jsp/"+returl+".jsp"。有人可能会担心url重写规则是否会影响性能,其实不会的,因为url只会被计算一次,后面就从缓冲区中取已经重写好的地址了。
2.5 控制器配置
<property name = "/metrics/index.api" path:index="redirect:/static/visualops/report/index.html" path:index1="forward:/static/visualops/report/index.html" class="com.test.ecs.modules.visualops.MetricsController" />
name:属性控制器映射路径配置
path:index 控制器方法跳转路径配置,redirect代表重定向,forward代表直接跳转
class 控制器实现路径配置,实现代码示例:
public class MetricsController { public String index(){ return "path:index"; } }
以上就是bboss-mvc.xml中比较重要的一些应用可能会用到并修改的配置,其他的配置内容基本不用开发人员修改,保持默认配置即可。
发表评论
-
bboss mvc控制器方法跳转地址设置方法介绍
2017-12-09 21:52 911bboss mvc控制器方法跳转地址设置方法介绍 1.直接指 ... -
bboss mvc json插件设置日期类型格式方法
2017-02-28 11:33 746bboss mvc json插件设置日期类型格式方法 一般的 ... -
bboss mvc控制器实现etag和last modify两种http缓存机制
2016-09-07 23:48 1266bboss mvc控制器实现etag和last modify两 ... -
bboss wordpdf构建部署介绍
2016-09-02 15:47 571bboss wordpdf构建部署介绍 下载 源码下载地址: ... -
解决tomcat stop报Illegal access: this web application instance has been stopped异常方法
2015-12-26 23:41 5950解决tomcat stop报Illegal access: t ... -
bboss mvc文件上传实例
2015-06-08 11:13 37本文着重介绍bboss mvc文件上传功能,切入正题 功能点 ... -
bboss mvc @RequestBody注解使用说明
2014-10-23 15:53 1050@RequestBody可以将客户端请求报文体通过数据类型转换 ... -
bboss开发、模块工程目录结构及功能说明
2014-10-15 19:46 4882基于bboss开发项目说明 ... -
bboss安全认证过滤器认证后重定向到请求页面功能介绍
2014-10-12 10:55 1344本文介绍bboss安全认证 ... -
bboss mvc控制器方法响应报文注解ResponseBody使用说明
2014-09-20 22:39 1193bboss mvc控制器方法响应 ... -
bboss mvc启动事件监听器使用方法
2014-09-02 20:25 1158在实际应用,往往需要在mvc容器启动后执行相应的操作,bbos ... -
bboss session共享使用方法介绍
2014-05-10 16:12 6146bboss session共享使用方法 ... -
bboss将一个组件同时发布为webservice,hessian,http三种服务方法介绍
2014-04-12 14:31 1657bboss将一个组件同时发布为webservice,hessi ... -
bboss发布apache cxf 2.7.6服务和定义客户端服务实例可能产生冲突解决办法
2014-03-22 23:16 1091bboss发布apache cxf 2.7.6服务和定义客户端 ... -
bboss mvc接收和响应xml格式数据的方法
2013-12-28 19:14 1073本文介绍bboss mvc接收和响应xml格式数据的方法 1 ... -
bboss mvc忽略对bean属性进行参数绑定方法
2013-10-10 20:20 974bboss mvc忽略对bean属性进行参数绑定方法非常简单, ... -
bboss mvc参数绑定注解RequestParam使用说明
2013-08-17 00:02 4197bboss mvc参数绑定注解RequestParam使用说明 ... -
bboss mvc参数绑定注解MapKey使用说明
2013-08-10 23:27 1184bboss mvc参数绑定注解MapK ... -
bboss mvc获取request,session,response,pageContext对象方法
2013-07-12 13:19 1391本文介绍基于bboss mvc后台java程序如何获取requ ... -
bboss mvc ajax响应输出中文乱码解决方法
2013-07-10 23:08 1071对于bboss mvc ajax请求响应出现的中文乱码问题,怎 ...
相关推荐
总的来说,BBoss MVCDemo是一个全面的开发框架,涵盖了从基础到高级的企业级应用开发各个方面。通过阅读“bboss mvc开发手册.doc”,开发者可以获得全面的技术指导,从而高效地利用该框架构建高质量的Java Web应用。
至于“公共开发平台国际化.ppt”,这是一个可能与本次主题相关的文件,可能是关于bboss MVC或类似框架在开发公共平台时如何实现国际化(i18n)的介绍。国际化是使软件产品能够适应不同地区的语言和文化习惯的过程,...
NULL 博文链接:https://yin-bp.iteye.com/blog/1131637
本文将详细介绍如何在BBoss的IOC配置文件中引用外部属性文件,以便更好地管理和动态配置应用。 首先,BBoss的IOC配置文件通常是一个XML文件,比如`bboss-ioc.xml`,在这个文件中我们可以声明并配置各种bean。当需要...
本文将深入讲解bbossgroups开发系列文章之一中的最佳实践,涉及bboss MVC框架的基础配置、控制器、数据库访问、DAO组件、业务组件管理以及与前端的交互等方面。 首先,我们来了解bboss MVC框架的基础配置。bboss-...
官方版本,亲测可用
该工具是一款基于bboss...此工具能够自动生成bboss MVC、IOC、持久化、JSP、i18n、SQL配置文件、Web服务、Hessian服务等相关源代码,适用于快速开发和项目迭代。详细文档请参考:http://yin-bp.iteye.com/blog/2256948
单集群演示功能测试用例,spring boot配置项以spring.elasticsearch.bboss开头 对应的配置文件为application.properties文件 多集群测试用例:eshelloword-spring-boot-starter\src\test\java\org\bboss\...
自动代码生成器是针对bboss框架和bboss开发平台的自动代码生成工具,可以根据模板,自动生成给定表的增,删,改,分页查询,列表查询,国际化功能对应的程序和配置文件: 1.mvc控制器 2.业务组件 3.实体类 4.jsp文件...
3. **设置过滤规则**:在BBoss中,我们可以配置过滤器规则,指定哪些URL路径需要通过`SYSAuthenticateFilter`进行过滤。 4. **过滤请求**:对于需要认证的请求,`SYSAuthenticateFilter`会检查会话中是否存在认证...
bboss会话共享是一种分布式会话管理技术,它针对在集群环境下应用部署时如何解决会话数据丢失和单点登录问题提供了专门的解决方案。根据提供的文档内容,我们可以详细探讨bboss会话共享涉及的关键知识点。 首先,...
5. **MVC模式**:采用Model-View-Controller架构,分离业务逻辑和视图展示,使得代码结构清晰,易于维护。 6. **安全控制**:BBoss提供了用户认证和授权机制,包括基于角色的访问控制(RBAC)、会话管理以及CSRF...
Elasticsearch rest client bboss介绍-Elastic2018中国开发者大会演讲稿
**二、BBoss介绍** BBoss 是一个针对 Elasticsearch 的企业级开发框架,它提供了丰富的 Java API,使得开发者可以更简单地进行索引管理、查询构建、结果分析等操作。BBoss 还支持多版本兼容,方便应对 Elasticsearch...
集成bboss和Elasticsearch时,首先需要在项目中引入bboss的依赖,并配置Elasticsearch的相关连接信息,如集群名称、节点地址等。然后可以通过bboss提供的API进行索引创建、数据插入、查询、更新、删除等操作。 4. ...