From 9d7123b130fe0eb5f1608549eb4302c5477ee291 Mon Sep 17 00:00:00 2001
From: TyCoding <36946717+TyCoding@users.noreply.github.com>
Date: Fri, 12 Oct 2018 14:01:38 +0800
Subject: [PATCH] Update README.md
---
README.md | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index bdb7b2a..425c2a3 100755
--- a/README.md
+++ b/README.md
@@ -89,11 +89,25 @@ public String login(@RequestParam String username,@RequestParam String password,
}
```
-`@RequestMapping`标注`login()`方法有两个作用(前提是必须在XML中开启注解扫描``):1.表示该方法是请求处理方法;2.指明了该方法的请求路径。`@RequestMapping`可以标记类或方法,分别表示了不同层级的请求路径。例如当前的`login()`方法的请求路径应为:`localhost:8080/xxx/login.do`
-对于请求体中包含多个参数的情况,我们尽量用`@RequestParam`标记参数,以免出现未知错误(但这不是必须的)。
+**注意**
+
+* `@RequestMapping`标注`login()`方法有两个作用(前提是必须在XML中开启注解扫描``):1.表示该方法是请求处理方法;2.指明了该方法的请求路径。
+
+* `@RequestMapping`可以标记类或方法,分别表示了不同层级的请求路径。例如当前的`login()`方法的请求路径应为:`localhost:8080/xxx/login.do`(需要注意的是:本例中使用了IDEA开发工具,访问其部署到Tomcat上的项目默认是不加项目名的,但是使用eclipse访问项目可能默认需要加上项目名,具体要看实际开发工具中对Tomcat的配置)
+
+* 对于请求体中包含多个参数的情况,我们尽量用`@RequestParam`注解标记参数,以免出现未知错误(但这不是必须的)。`@RequestParam`注解能帮助识别请求体中的参数,比如请求体中传递的参数名是`id`,但是你用`int uid`接收就可能会报错400(请求参数错误),这时我们使用`@RequestParam("id")`就能帮助Spring装配这个参数。
+
用户登录,我们首先获取到用户登录的用户名`username`和密码`password`,然后根据用户名查询并返回,根据此用户名查询到的密码与登录的密码进行`equals`,如果相等就登录成功。(当然我们要判断根据`username`查询后的返回值是否为null,不做判断会产生空指针问题,如果一个空值和另一个值相比显然会报错)。
-如果登录成功,将返回到`page/page.jsp`页面(这是根据我们在`springmvc.xml`下配置的视图解析器`InternalResourceViewResolver`决定的);如果登录失败将返回到`page/loginInfo.jsp`页面。
+如果登录成功,将返回到`page/page.jsp`页面(这是根据我们在`springmvc.xml`下配置的视图解析器`InternalResourceViewResolver`决定的);如果登录失败将返回到`page/loginInfo.jsp`页面。比如本项目中配置的视图解析器:
+```xml
+
+
+
+
+```
+只要在SpringMVC的配置文件中配置了这个选项,SpringMVC就默认匹配Controller层(用@Controller标识的类)中返回值为String类型的映射方法中`return`的数据和`webapps/WEB-INF/xx.jsp`中JSP页面的文件名,映射方法(用@RequestMapping标识的方法)`return`的值和`/WEB-INF/`下某个JSP页面文件名相同就跳转到这个页面,否者就报错404。当然除了使用`@ResponseBody`标识的方法和`@RestController`标识的类,因为这两个注解会将其下的方法返回值都转换为JSON
+格式的数据,并且不会被`InternalResourceViewResolver`识别。
### 1.3 编写Mapper.xml