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框架的學習ROS框架
- rose框架學習總結ROS框架
- Rational Rose技術交流(一) (轉)ROS
- 一曲鋼琴:玫瑰 The RoseROS
- The sol to RoseROS
- rose ha 配置ROS
- rose使用技巧ROS
- rose初始化ROS
- 對rose 的理解ROS
- 深度學習(一)深度學習學習資料深度學習
- Golang 學習——interface 介面學習(一)Golang
- Flutter學習記錄(一)Dart學習FlutterDart
- kitten 學習教程(一) 學習筆記筆記
- 整合學習(一):簡述整合學習
- Rational Rose 7.0安裝教程ROS
- Zookeeper學習(一)
- Lucene學習一
- flask學習(一)Flask
- 學習 Swoole(一)
- Html學習一HTML
- thymeleaf學習(一)
- less學習一
- JavaScript學習一JavaScript
- TypeScript 學習(一)TypeScript
- JavaScipt學習(一)Java
- SwiftUI學習(一)SwiftUI
- Vue學習一Vue
- Makefile學習(一)
- mysql學習(一)MySql
- Git 學習一Git
- Drools學習(一)
- canvas學習(一)Canvas
- DWR學習(一)
- Rational Rose技術交流(二) (轉)ROS
- OSSEC 學習教程一
- Sphinx Search 學習 (一)
- tcp/ip 學習(一)TCP
- python學習《一》Python