发表于: 2019-01-10 20:07:03
1 720
今天完成的事
1、重写了控制器
@Controller
public class TestController {
@Autowired
StudentDao studentDao;
@RequestMapping(value = "/student/list", method = RequestMethod.GET)
public String getAll(Model model) {
List<Student> students = studentDao.findAll();
model.addAttribute("students", students);
return "findAll";
}
@RequestMapping(value = "/add", method = RequestMethod.GET)
public String addStudent() {
return "add";
}
@RequestMapping(value = "/student", method = RequestMethod.POST)
public String insertStudent(Student student) {
studentDao.add(student);
return "redirect:/student/list";
}
@RequestMapping(value = "/student/{id}",method = RequestMethod.GET)
public String deleteStudent(@PathVariable int id){
studentDao.delete(id);
return "redirect:/student/list";
}
@RequestMapping(value = "/student", method = RequestMethod.GET)
public String findById(Model model , int id){
Student student = studentDao.findById(id);
model.addAttribute("student",student);
return "update";
}
@RequestMapping(value = "/student",method = RequestMethod.PUT)
public String updateStudent (Student student){
studentDao.update(student);
return "redirect:/student/list";
}
@RequestMapping(value = "/listtable",method = RequestMethod.GET)
public String selectPage (Model model , @RequestParam(value = "pageNow",defaultValue = "1")int pageNow){
List<Student> students = studentDao.selectProductsPage((pageNow-1)*10,10);
int allRow = studentDao.selectRow();
int prePage;
if (pageNow - 1 > 0) {
prePage = pageNow - 1;
} else {
prePage = pageNow;
}
int pageSize = 10;
int totalPages = allRow % pageSize == 0 ? allRow / pageSize : allRow / pageSize + 1;
int nextPage;
if ( pageNow <totalPages) {
nextPage = pageNow+1;
} else {
nextPage = pageNow ;
}
model.addAttribute("pageNow", pageNow);
model.addAttribute("prePage", prePage);
model.addAttribute("students", students);
model.addAttribute("nextPage", nextPage);
model.addAttribute("totalPages", totalPages);
return "findAll";
}
}
2、下载postman,并测试rest风格的controller
3、下载json-taglib
下载好之后,需要将json-taglib放入 mvn中,点一下json-taglib的jar包,在
输入cmd,然后回车,输入
mvn install:install-file -D groupId=atg.taglib.json -D artifactId=json-taglib -D version=0.4.1 -Dpackaging=jar -D file=json-taglib-0.4.1.jar
然后在pom文件中添加依赖即可使用
<dependency>
<groupId>atg.taglib.json</groupId>
<artifactId>json-taglib</artifactId>
<version>0.4.1</version>
</dependency>
4、json是什么?
JSON就是一种格式,使用这种格式去给前端传数据。而json-taglib是标签库,为了能在jsp文件里编写json格式时使用json-taglib的标签。
json的语法规则:
数组(Array)用方括号(“[]”)表示。对象(Object)用大括号(”{}”)表示。
名称/值对(name/value)组合成数组和对象。
名称(name)置于双引号中,值(value)有字符串、数值、布尔值、null、对象和数组。
并列的数据之间用逗号(“,”)分隔
json-taglib的依赖
<dependency>
<groupId>atg.taglib.json</groupId>
<artifactId>json-taglib</artifactId>
<version>0.4.1</version>
</dependency>
代码:
@RequestMapping("/select")
public String selectAll(Model model){
List<Student> students = studentDao.findAll();
model.addAttribute("code","200");
model.addAttribute("message","传递成功");
model.addAttribute("students",students);
return "json";
}
jsp文件:
<%@page contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
<%@ taglib prefix="json" uri="http://www.atg.com/taglibs/json" %>
<json:object>
<json:property name="code" value="${code}"/>
<json:property name="message" value="${message}"/>
<json:array name="students" var="student" items="${students}">
<json:object>
<json:property name="id" value="${student.id}"/>
<json:property name="name" value="${student.name}"/>
<json:property name="qq" value="${student.qq}"/>
<json:property name="type" value="${student.type}"/>
<json:property name="admission_date" value="${student.admission_date}"/>
<json:property name="graducate_school" value="${student.graduate_school}"/>
<json:property name="student_number" value="${student.student_number}"/>
<json:property name="daily_link" value="${student.daily_link}"/>
<json:property name="wish" value="${student.wish}"/>
<json:property name="instructor" value="${student.instructor}"/>
<json:property name="information_source" value="${student.information_source}"/>
</json:object>
</json:array>
</json:object>
在网页上:
在postman上:
5、EL表达式就是 ${ }
用于表达式的运算。如:加、减、乘、除。
用于从作用域中取出数据
6、下载并配置jetty
显示页面:
看起来jetty和tomcat区别不大,但也是有区别的,了解了一下:
1.架构比较
jetty相比tomcat更为简单
jetty架构是基于Handler来实现的,主要的扩展功能都可以用Handler来实现,扩展简单
tomcat的框架是基于容量设计的,进行扩展是需要了解tomcat的整体设计结构,不易扩展
2.性能比较
jetty和tomcat性能方面差异不大
jetty可以同时处理大量链接而且可以长时间保持链接,适合于javaWeb聊天应用
jetty的架构简单,因此作为服务器,jetty可以按需加载组件,减少不需要的组件,减少了服务器内存开销,从而提高服务器性能
jetty默认采用NIO结束来处理I/o请求上更占优势,在处理静态资源时,性能较高
tomcat适合处理少数非常繁忙的连接,也就是连接生命周期短的话,tomcat的总体性能更高
tomcat默认采用B/o处理I/o请求,在处理静态资源时,性能较差
3.其他比较
jetty的应用更加快捷,修改简单,对新的servlet规范的支持更好
tomcat目前应用比较广泛,对javaEE和servlet的支持更加全面,很多特性会直接集成进来
7.sping mvc的流程
第十一步:前端控制器向用户响应结果
图示:
视图解析器(ViewResovler):进行视图解析,多返回的字符串,进行处理,可以解析成对应的页面
springmvc里很多东西都涉及底层的东西,不需要我去做什么,直接用就好了,只需要编写控制器(controller)和视图(model)部分就可以了.
明天计划的事
1.继续做任务
2.把不熟悉的东西再练练
3.再看看springmvc
遇到的问题
1.json和json-taglib总是无法理解,不知道那到底是干嘛的,查日报查教程也看不明白,后来是师兄示范了一遍才大概知道了
2.运行jetty时出现
试过好几个url,都不行,后来发现是要在jetty的配置里勾选这个"use custom context root"
3.界面上出现过乱码,jsp文件里需要添加这个
<%@page contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
收获
1.学习了EL表达式
2.学习了json 和json-taglib
3.学习了rest风格
评论