发表于: 2017-11-03 21:50:13
1 952
今日完成的事情:
今天和各种各样的困难斗争了一天,同时也暴露了我前面的一些知识学习的不扎实。
首先早上师兄验收我的任务二,让我修改几处,我看来看去觉得功能都已经实现了,没必要修改。让后我向旁边师兄请教,师兄告诉我我的restful风格有严重问题,只有delete是标准的restful风格,其他的都不是标准的restful风格。然后告诉了我标准的restful风格应有的样子:
比如:user/{id}....put(这个只是打比方)看到user/{id}一下子就知道是对第几个用户进行操作,看到后面的方法put,就应该知道是对用户进行了什么操作。我一下子对restful风格理解加深了几份。按照师兄的要求更改后的controller层如下:
@RequestMapping(value = "/user/list",method = RequestMethod.GET)
public String listUser(Model model) {
List<User> list = userService.queryAllUser();
model.addAttribute("list", list);
logger.info("所有用户信息");
return "listUser";
}
//查看一个用户信息
@RequestMapping(value = "/user/{id}",method = RequestMethod.GET)
public String queryUser(@PathVariable int id,Model model){
User user=userService.queryUserById(id);
model.addAttribute("user",user);
return "jsonUser";
}
//新增用户
@RequestMapping(value = "forAddUser",method = RequestMethod.GET)
public String addUserForm(){
logger.info("新增用户");
return "addUser";
}
//跳转到添加用户页面
@RequestMapping(value = "/user",method = RequestMethod.POST)
public String add(Model model,User user) {
logger.info(user.toString());
userService.add(user);
logger.info("添加用户成功");
model.addAttribute("user", user);
return "redirect:/user/list";
}
//删除用户
@RequestMapping(value = "/user/{id}",method = RequestMethod.DELETE)
public String deleteUser(@PathVariable int id) {
logger.info("要删除用户ID为:"+id);
userService.delete(id);
logger.info("删除用户成功");
return "redirect:/user/list";
}
//跳转到修改用户页面
@RequestMapping(value = "forUpdateUser/{id}",method = RequestMethod.GET)
public String updateUserForm(@PathVariable int id,Model model) {
model.addAttribute("id",id);
return "updateUser";
}
//修改用户页面
@RequestMapping(value = "/user/{id}",method = RequestMethod.PUT)
public String update(User user,@PathVariable int id){
logger.info(user.toString());
logger.info(id);
userService.update(user);
return "redirect:/user/list";
}
这样,delete,put,get,post才有了restful风格的样子,四个方法对应的方法,都加上了user/{id},算是真正的见名知意了。
而且根据restful见名知意的原则,user/list是查看全部用户。随着后面的学习,继续加深对restful的理解吧。
接着进行任务三:
前几天买了个服务器备案成功,这几天可以使用了。在服务器上部署tomcat,任务一的时候部署过一次,但是那个时候自己部署的不符合规范,今天重新部署,部署在/usr/local/这个文件夹下,然后远程链接tomcat。在这里碰到了一个问题,我自己修改tomcat-users.xml和context.xml都是按照教程一步一步来的,但是就是部署不成功,远程链接不到。还是师兄帮忙,和我的步骤一摸一样就成功了,师兄说是我对Linux操作命令不熟悉,在输入的时候可能拼错单词之类的,还是要对Linux命令再熟悉一下。
成功页面。具体配置过程:
首先解除限制,把限制注释掉:
其次,注册账号,密码:
具体过程还是比较简单的,就是对Linux系统命令要熟悉一下,新知识,今天刚学习,还不太熟悉。
接着就是部署到服务器,这个又是一个坑啊,困了好长时间(中间的错误没有截图):
首先是部署上去之后一直都是Caused by: com.mchange.v2.resourcepool.TimeoutException: A client timed out while waiting to acquire a resource from com.mchange.v2.resourcepool.BasicResourcePool@5e7663 -- timeout at awaitAvailable()
一直都是这个错误,我看了好长时间的解决办法,但是都是太难理解了。找了好长时间,没有办法,把c3p0链接池换掉,换成了dbcp2连接池。然后接着部署,又遇到问题:
CLIENT_PLUGIN_AUTH is required
这个问题上网查了一下,是用的mysql-connector-java-xxx.jar版本太新,换回5.xx版本的jar顺利运行,终于是部署上去了:
用自己的域名加上controller里面写的url访问到了对数据库操作的页面。总算是成功了。
明日计划的事情:
任务三有好多新知识需要学习,明天学习nginx,一些脚本语言。
遇到的问题:
restful风格深入理解,配置tomcat远程链接,c3p0连接池链接出现超时,数据库jar包太新不适合。今天的问题太多了,师兄指导思路,自己百度找方法解决。
收获:
对Linux命令有了一定的掌握,restful风格进一步加深理解。
任务开始时间:2017/11/3
预计完成时间:2017/11/10
延期:无
禅道:http://task.ptteng.com/zentao/my-task.html
评论