文档章节

mint mvc第一个应用

水牛叔叔
 水牛叔叔
发布于 2014/09/28 22:39
字数 1069
阅读 465
收藏 3

mint mvc 开发web程序的步骤如下:

  1. 引入相关包
  2. 编写action类
  3. 配置web.xml文件
  4. 部署->启动->访问

就这么简单

引入相关包

要实用mint mvc需要引入2个相关包

  1. mint.mvc.jar
  2. fastjson-1.1.40.jar(下面那张截图引入了common-logging,那是一段时间前的做法)

编写action类

在mint mvc中action类与 spring中的controller类似。

先上一个action类(代码清单1):

package action;

import mint.mvc.annotation.BaseMapping;
import mint.mvc.annotation.Mapping;

@BaseMapping("/demo", method="get")
public class DemoAction {
	
	@Mapping(urls="/index")
	public String index(){
		return "helloworld";
	}
}

什么样的类是action类

凡是标有BaseMapping注解的类都是action类。

BaseMapping注解的值表示访问该action的路径。比如上面的DemoAction的访问路劲是(假设你网站域名是http://test)http://test/demo。但是单单有action类还不能处理请求,真正处理请求的是action方法。then···

什么是action方法

首先action方法必须定义在action类内,而且要标注有Mapping注解,代码清单中的index方法就是一个action方法。

Mapping注解有两个属性:urls和method

urls

urls是一个字符串数组,BaseMapping 的value 分别和 urls数组中的每个值相连接起来之后,就可以表明了这个action方法可以处理哪些请求。比如代码清单中的BaseMapping.value + Mapping.urls 得到一个url"/demo/index",那么index方法就可以处理“http://test/demo/index”这样的请求。

这里有两点敬请注意:

  1. 如果一个请求上未指定调用的action方法,mint mvc会默认调用那个urls中含有"/index"的action方法。url为"http://test/demo"的请求可以调用到index方法
  2. 在忽略请求方式的前提下,"http://test/demo/index" 和 "http://test/demo/index/"这两种请求时等效的(可以访问到同样的action方法)。这种设计主要是出于如下目的设计的:现在大多网站,url后面加不加“/”返回的结果都是一样的,导致用户都觉得,url后面加不加"/"都是一样的,所以就这样设计了

method

method属性指定该action方法能处理以哪些方式提交的请求。目前只支持"post"和"get"提交方式。如果action方法上不指定method属性,则默认处理以"post"和"get"方式提交的过来的请求。代码清单中index方法只能处理get请求,如果一个请求的url 是"http://test/demo/index",但是提交方式是"post"的话,该请求将无法访问index方法。

至此,一个最简单的action类已经写完了

配置web.xml文件

mint mvc入口配置(代码清单2):

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee/web-app_2_4.xsd"
         version="2.4">
         
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>mint.mvc.core.ServiceServlet</servlet-class>
        <init-param>
        <param-name>actionPackages</param-name>
            <param-value>demo;</param-value>
        </init-param>
        <load-on-startup>0</load-on-startup>
    </servlet>
	
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

代码清单2显示了mint mvc最简单的配置(更多的配置项在以后会讲到)。

mint.mvc.core.ServiceServlet是mint mvc的前端控制器,也是整个mint mvc的入口。前端控制器的"actionPackages"启动参数用以指定action类所在的包,多个包用";"号隔开。当前端控制器启动是,会根据actionPackages参数的指定,到相关的包目录下扫描action类,并且分离action方法。启动完毕后,前端控制器会接管请求,并把请求送到相应的action方法进行处理。

如果你用eclipse最传统那种方式建web工程的话,你最后的目录大致如下:

部署>启动>访问

最激动人心的时刻来啦:

哈哈,成功了

本demo下载地址:http://git.oschina.net/895925636/mintdemo/tree/master

项目地址:http://git.oschina.net/895925636/mint-mvc

收录地址:http://www.oschina.net/p/mint-mvc

博客地址:http://www.wemakers.net/home/blog?cate=1001

(完)

© 著作权归作者所有

水牛叔叔

水牛叔叔

粉丝 142
博文 80
码字总数 36149
作品 2
珠海
程序员
私信 提问
java mvc框架--mint-mvc

mint mvc是一个纯粹的mvc框架,是在servlet之上做了浅层包装而做出来的,它做的事情很简单:接收请求->封装参数->将请求交给开发者这编写的逻辑处理->返回处理结果。 mint-mvc有如下特点: ...

水牛叔叔
2014/10/22
2.6K
0
mint-MVC正式发布,官网正式上线

其实mint-mvc一年前就开发好了,但是一直都是直接丢在git上,也没几个人知道,正儿八经的用户只有自己一个。最近好多抱怨java不适合开发web2.0、难用的帖子,我就想把我开发一系列工具拿出来...

水牛叔叔
2015/05/10
23
0
巴塞罗那市将从微软转向Linux和开源

巴塞罗那市将从微软转向Linux和开源 IMCN 42分钟前暂无评论 阅读 23 次 一家西班牙报纸ElPaís报道,巴塞罗那市正在将其计算机系统迁移到开源技术。 据新闻报道,该城市计划首先用其他开源应...

IMCN
2018/01/12
0
0
KDE Plasma 5.13.3桌面环境发布:提高稳定性和安全性

KDE Plasma 5.13.3桌面环境发布:提高稳定性和安全性 Ronny 28分钟前暂无评论 阅读 15 次 导读 短暂的KDE Plasma 5.13桌面环境的快速发布周期今天继续进行KDE Plasma 5.13.3维护更新,这是在...

Ronny
2018/07/28
0
0
Linux Mint Debian (201009) 发布

Linux Mint 项目组昨天发布了一个新的项目 Linux Mint Debian (201009)。Linux Mint Debian (201009) 是 Linux Mint 基于 Debian 的第一个分支(简称 LMDE),与 Debian 100%兼容。目前发行的版...

红薯
2010/09/08
867
1

没有更多内容

加载失败,请刷新页面

加载更多

目标检测中 yolo 的mAP是什么含义?

mAP定义及相关概念 P => precision,即 准确率 R => recall,即 召回率 PR曲线 = >即 以 precision 和 recall 作为 纵、横轴坐标 的二维曲线。一般来说,precision 和 recall 是 鱼与熊掌 的...

小松1
10分钟前
2
0
用jdk1.8的断言来做非空判断

Assert.notNull(user, "没有获得登录用户信息"); 看源码如下: public static void notNull(Object object, String message) { if (object == null) { throw new IllegalArgum......

architect刘源源
14分钟前
3
0
免费节假日api每一时间更新 2020年 部分节假日安排

根据国务院办公厅关于2020年部分节假日安排的通知国办发明电〔2019〕16号.免费节假日api每一时间更新 2020年 部分节假日安排 http://tool.bitefu.net/jiari/ 各省、自治区、直辖市人民政府,...

xiaogg
17分钟前
4
0
2018NOIP各省一等奖分数线

提高组 普及组

SamXIAO
26分钟前
6
0
常见的PPT时间轴怎么制作,这几种方法你要知道

在PPT当中,时间轴是一个非常重要的一个版块,很多PPT会用它来表示公司的发展历程和项目进度。但是对于PPT时间轴的制作很多人做法是一条直线上添几个点,标注出事件就完成了,可是这样也太过...

TeFuiro
32分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部