Restful风格+SpringMVC+项目入门时一些坑的总结

Restful风格是一种url风格,其中的参数直接以值的形式显示,而不带参数名。例如一般的url带上参数形式为:?a=1&b=2,而restful风格可写为:/1/2,这样写不仅简单方便,而且省略了参数名,具有一定的安全性,因为一些参数名可能具有实际的意义。

下面是处理一个Restful风格的url请求的Controller类,实现了根据id查询书籍的功能:

@RequestMapping("/queryBookById/{id}")
public String queryById(@PathVariable int id, Model model) {
    model.addAttribute("book", bookService.queryBookById(id));
    return "queryBookById";
}

RequestMapping中的url就是一种restful风格,其中的参数id需要加上PathVariable注解,表示其是url中的参数。这样在浏览器中输入 项目名/queryBookById/id值就可以查出相应的书籍。

使用restful风格可能会产生如下问题:如果两个方法处理的两个请求参数个数相同,只是类型不同,比如一个是整数,一个是字符串,就会产生SpringMVC不知道走哪个方法的错误,因为url中的参数都当做字符串来处理,最好的方法是url中参数前面的部分就不一样,不要用参数类型来区分走哪个方法来处理。

以下是一些简单的经验总结:

1. tomcat下载安装好后,检查是否可以正常使用:

    ① 先进行权限修改:终端输入sudo chmod 755 tomcat的安装路径/bin/*.sh,接下来提示输入密码:xxx
    ② 进入bin目录: cd tomcat的安装路径/bin/
    ③ 开启服务器:sudo sh startup.sh
    ④ 关闭服务器:sudo sh shutdown.sh  

注意要在终端中关闭tomcat,不然在IDEA中不能正常使用tomcat

然后浏览器打开,输入:http://localhost:8080 查看服务器是否开启成功

2. 单元测试报错Error creating bean with name 'mvcContentNegotiationManager',错误原因:缺少servlet-api的依赖包

解决办法:直接在pom文件中引入dependency

<dependency>
    <groupId>tomcat</groupId>
     <artifactId>servlet-api</artifactId>
     <version>5.5.23</version>
 </dependency>

3. mybatis的mapper.xml文件的增删改查写法总结:Mybatis增删改查mapper文件写法

4. 使用lombok包时,不仅要加上Data注解生产get和set方法,最好还要加上NoArgsConstructor和AllArgsConstructor,避免可能会产生的错误

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Book {
    private int id;
    private String name;
    private String type;
    private int count;
}

上一篇:PHPMailer远程命令执行漏洞复现


下一篇:ACL决策练习