Paoding Rose学习(一)
Paoding Rose学习(一)
本文包括一下几个内容
- rose环境介绍
- 一个简单的基于rose的web程序
- web.xml介绍
- 自动化部署
需要的环境
- eclipse/Intellij IDE
- Maven插件
- Tomcat7.x
rose环境介绍
rose是在Spring基础上构建的Web开发框架,它符合Servlet规范,且大量的采用约定优于配置的策略,比如Controller、DAO等,具体的描述可以查看陈老师的这篇文章: [ rose手册 ]
一个简单的基于rose的web程序
HelloController.java
/*** 这里的 注解@Path是url访问的主路径,即用户想访问这个Controller时,url类似于 :* localhost:8080/packageName/rose_study/* */
@Path("rose_study")
public class HelloController {/*** 我们可以从名称就可以看出,这个方法支持post和get的访问,其中的helloworld就是url的子路径,* 如果需要访问到这个方法,那么url就好像这样:* localhost:8080/packageName/rose_study/helloworld* */@Get("helloworld")@Post("helloworld")public String helloWorld(Invocation inv) {return "@Hello, world. This is the first rose app";}
}
注:
- HelloController.java,就像前面说的约定优于配置,Rose中规定,所有的Controller都必须要以Controller结尾
- @Get(“helloworld”) @Post(“helloworld”),helloWorld方法同时支持 get、post访问,但是只需要用注解去声明,是不是比Spring中做的更加优雅(Spring实现Get方法:@RequestMapping(value = “/helloworld”, method = RequestMethod.GET))
- Invocation inv 这个需要作为函数的参数,是由容器传递进来的,我们可以用它来传递数据给页面,当然也可以用它从请求端获取参数
- @Hello, world. This is the first rose app,这是函数的返回值,也就是url的返回值,rose中的约定是这样:
url返回形式 | 值 |
---|---|
@String | 会在页面上看到一个字符串 |
@json + String | 会在页面上看到一个json类型的字符串 |
String | 返回自定义的页面 |
这个文件需要的jar包依赖配置在pom文件中,如下:
<dependency><groupId>com.54chen</groupId><artifactId>paoding-rose</artifactId><version>1.0</version></dependency><dependency><groupId>com.54chen</groupId><artifactId>paoding-rose-scanning</artifactId><version>1.0</version></dependency>
web.xml介绍
如果我们在程序中没有配置其他的过滤器,那么只需要在web.xml文件中添加如下的过滤器 :
<filter><filter-name>roseFilter</filter-name><filter-class>net.paoding.rose.RoseFilter</filter-class></filter><filter-mapping><filter-name>roseFilter</filter-name><url-pattern>/*</url-pattern><dispatcher>REQUEST</dispatcher><dispatcher>FORWARD</dispatcher><dispatcher>INCLUDE</dispatcher></filter-mapping>
如果在程序中需要配置其他的过滤器,那么一定要在roseFilter之前。
自动化部署
写好web程序之后当然需要部署下,然后用正确的url去访问它,查看结果是不是自己想要的,对于本例来说,应该会返回一个字符串。
这里我利用Maven提供的插件对web程序实现自动化部署,注意,本例中tomcat版本是7.0.64,不过对于7.x版本都是支持的,Tomcat6.x 配置不会比7多,所以,也是支持的,Tomcat8还没用过,不知道支不支持。
实现自动化部署需要这样5步操作:
tomcat-users.xml
在tomcat的conf中找到tomcat-users.xml,在其中添加:<tomcat-users><role rolename="manager-gui"/><role rolename="manager-script"/><role rolename="manager-jmx"/><role rolename="manager-status"/><user username="username" password="password" roles="manager-gui,manager-script,manager-jmx,manager-status"/></tomcat-users>
这里为了方便我个人记忆书写,用户名直接配置username,密码配置password
验证上述配置是否成功
在浏览器中输入: http://localhost:8080/manager/,写入用户名和密码查看是否能登陆成功
注: 每次修改完tomcat的配置后都需要重启tomcat服务settings.xml
进入到/home/mi/.m2中,找到settings.xml,加入:
这个文件需要的jar包依赖配置在pom文件中,如下:<server><id>local_server</id><username>username</username><password>password</password></server>
注: 这样,maven就可以用这个身份来跟tomcat服务器进行沟通
pom文件
在工程的pom文件中加入:
这个文件需要的jar包依赖配置在pom文件中,如下:<plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.1</version><configuration><server>local_server</server><url>http://localhost:8080/manager/text</url><path>/${project.build.finalName}</path><update>true</update><username>username</username><password>password</password></configuration> </plugin>
注:true 如果不加这个,那么重复部署就会出现文件已经存在的异常
自动部署
执行命令:mvn -U clean package tomcat7:deploy
如果你按照上面的5步执行完之后,你就会在tomcat的webapps目录下找到你的war包了(需要配置pom文件,指明打包类型和打包插件)
这篇文章简单的介绍了Rose环境开发并部署web应用程序的过程,内容比较简单,在以后的笔记中会介绍其他的Rose技术。
Paoding Rose学习(一)相关推荐
- Rational Rose学习笔记01:安装与注册
文章目录 一.Rational Rose 2003概述 二.安装Rational Rose 2003 (一)下载Rational Rose 2003 (二)安装Rational Rose 2003 三 ...
- Rational Rose学习笔记02:创建用例图
文章目录 一.用例图概念 二.用例图三元素 (一)参与者(Actor) (二)用例(Use Case) (三)关系(Relation) 1.关联关系(Association) 2.包含关系(Inclu ...
- UML/ROSE学习笔记系列二:UML的概念模型
建模的3个主要要素: 1.UML的基本构造块: 2.支持这些构造块如何放在一起的规则: ...
- rose框架学习总结
rose框架学习总结 rose框架为paoding rose框架 具体可见https://code.google.com/p/paoding-rose/ 1 对rose框架的整体认识 1.1B/S ...
- 【rose】rose框架学习总结
rose框架学习总结 rose框架为paoding rose框架 具体可见https://code.google.com/p/paoding-rose/ 1 对rose框架的整体认识 1.1B/S ...
- Rose Study
公司大量使用Rose框架支持线上业务,不仅仅是它的实用性和方便的特点吸引你去学习,更是它优雅的设计. 但是,由于是开源的框架,所以,资料和示例程序都是有限的,这一篇陈臻老师的作品简单的介绍了Rose的 ...
- Velocity 语法示例
一.简介: 1)它允许任何人使用简单而强大的模板语言来引用定义在 java 代码中的对象" 2)Velocity是一个基于java的模板引擎,简称VTL(Velocity Template ...
- Tomcat 打印日志让你事半功倍
2019独角兽企业重金招聘Python工程师标准>>> 今天启动服务器的时候遇到问题,但是显示的异常指向和提示却并没有什么软用,百度也找不到类似信息,只能打印 tomcat 日志信息 ...
- java xml转换word_java如何将xml类型的word文档转换为word类型的文档
大致的思路是先用office2003或者2007编辑好word的样式,然后另存为xml,将xml翻译为FreeMarker模板,最后用java来解析FreeMarker模板并输出Doc.经测试这样方式 ...
最新文章
- PagingAndSortingRepository接口与 JpaRepository接口
- 用netty实现zcool_《Netty官方指南》把Netty当做一个通用的库
- FreePascal - 如何在各个平台中安装CodeTyphon!
- SD卡中FAT32文件格式快速入门(图文详细介绍)
- oracle Constraint(转)
- php自动加载指定类,PHP自动加载类-Java架构师必看
- boost::geometry::model::multi_linestring用法的测试程序
- python 知识点总结
- 操作RadGrid1,RadAjaxLoadingPanel1不出现
- 清华大学迎来外籍院长!
- axios get post下载文件
- Win11正式版版号 Win11正式版最新版本号介绍
- 编程计算二叉树中某结点的层数
- multisim红绿灯元器件在哪里_实验一:Multisim交通灯仿真.ppt
- PHP开发阿里云短信服务接口
- 固态硬盘能不能提高计算机速度,固态硬盘—提升电脑速度最有效的利器!
- .php on line 0,PHP Fatal error: Could not queue new timer in Unknown on line 0
- hiredis的代码示例
- MyBatis 关联映射
- Spine使用外部图片动画换肤
热门文章
- 深度 | AI掘金,非富即亡
- Mac OS X下使用C++ JSON库
- yii2-wx / 微信二维码接口
- C语言中两种方式表示时间日期值time_t和struct tm类型的相互转换
- [转]SQL SERVER – Find Most Expensive Queries Using DMV
- web项目部署到linux服务器出现的问题
- WorkFlow设计篇Step.2—传参的用法-订单金额的处理(续)-WF4.0
- 如何显示在线人数和所在位置
- Android数据适配器Adapter简介
- bootstrap-按钮(按钮工具栏)