接着上一章节
如何运行
点击run 选择如下
弹出下面界面
点击加号
选择tomcat server
选择local
弹出如下界面
选择Deployment
点击+号
选择Artifact 出现如下
第一个打包方式和我们上节课手工部署打包很类似
第二个方式会把我们当前网站文件夹原样部署到tomcat(修改代码后可以重新进行发布 一般开发时选择这个)
选择第二个 点击ok
出现如下
画箭头处可以根据自己需要改成二级目录
点击apply ok就可以运行项目了
点击run会帮我们编译并且启动tomcat 默认浏览器会弹出默认的网站首页设置
接下来我们学习下Request Mapping注解
来到https://docs.spring.io/spring/docs/5.0.4.RELEASE/spring-framework-reference/web.html#mvc-ann-requestmapping官网
这个注解可以对我们控制器的方法进行路径的映射
当我们的请求进入DispatherServlet的时候,会做请求处理的分发 而Request Mapping可以对我们的请求地址和请求的方式做一些控制
下面是官方Request Mapping作用的说明
比如说我们想通过url地址来上传图片等 都可以通过这个注解进行相关的属性设置并进行映射
接下来我们看个例子
假设我们有个新闻系统
是通过以下路径进行访问的
接下来创建一个NewsController
其中@RequestMapping注解可以打在类上 也可以打在方法上
比如我们NewsController为多层目录 (全是做新闻的)
代码如下
接下来运行代码
点击run 弹出如下
我们选择Redepoly重新发布到tomcat下 点击ok
接下来浏览器访问下localhost:8080/news/123
出现如下
可以发现我们的newsID如果是字符串也可以访问 (以后我们会对这里的参数进行限定)
在url中如果有path(路径)相关的参数,我们可以通过@PathVariable这个注解得到path参数的值
同样官方还给出支持正则的方式限定我们的参数
官方如下
接下来我们对上面例子字母做下限定
重新运行下项目
再次访问localhost:8080/news/aaa
可以发现出错了
lcoalhost:8080/news/123
可以看出对字母进行了限定
我们在把这个请求地址用火狐的http client 插件做下请求 看下响应内容
可以发现我们用post请求也能正常 访问
那么我们如何限制以什么方式请求呢?
接下来改下代码
重新run一下代码
再次用火狐带的插件post请求一下网址
可以发现出错了
我们用浏览器请求
所以可以使用注解的参数限制请求的方式
还可以使用官网告诉我们的
代码如下
重新run一下
post请求依然报错
get请求正常访问了
接下来我们学习下请求参数
上面我们做了新闻的详细页
下面我们做一下新闻列表页
在NewsController中添加如下
重新run一下
接下来浏览器访问localhost:8080/news/list?page=2
我们把page=2去掉再次访问
可以发现报错了
我们在正式开发时 page不写不应该报错,应该给个默认值
接下来在修改下使其支持默认值
给@RequestParam(请求参数注解)加上参数 参数一表示page不是必须的,参数二表示page默认值为1
写好后重新run
浏览器再次访问localhost:8080/news/list
可以发现能正常访问了
如果我们传入page=3
显示页码为3
以上就是我们的@PathVariable 和请求参数(@RequestParam)
后面我们会结合案例进一步学习