spring MVC
程序员文章站
2022-06-13 20:48:03
...
Spring MVC请求流程图
前端控制器配置
在web.xml中配置一个servlet
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:config/applicationContext-mvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
applicationContext-mvc.xml文件配置
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/views/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
将视图类注册到ioc容器中
prefix 和suffix:查找视图页面的前缀和后缀(前缀[逻辑视图名]后缀)注入该依赖后在
HelloControl中return时不需要再加前缀和后缀
控制器渲染时的路径模糊匹配
- ?:匹配一个字符 @RequestMapping("/sayH?llo")可以匹配任意的sayH“任意一个字符”llo
- * :匹配任意字符 @RequestMapping("/sayH?llo")可以匹配任意的sayH“任意多个字符(包括0个字符)”llo
- **:匹配多层路径@RequestMapping("/sayH/ **/llo")可以匹配任意的sayH“/任意路径/”llo
获取请求参数
参数的三种获取方式
package springboot.mvc;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
@RequestMapping("/hello")
public class HelloControl {
@RequestMapping("/sayHello")
public String addInit() {
return "user/add";
}
@RequestMapping("/add")
//1、public String add(HttpServletRequest request) {//或者HttpServletResponse 通过request.getParam()获取
//2、public String add(@RequestParam("userName") String userName, @RequestParam("age") int age) {//通过注解
//3、
public String add(String userName,int age) {//通过form表单中的name值直接获取
System.out.println("用户名:"+userName+"年龄:"+age);
return "succee";
}
}
获取请求参数中的自动装箱
package springboot.userInfo;
import lombok.Data;
@Data
public class userInfo {
String userName;
int age;
}
将表单中的数据封装成一个bean 注意bean的数据成员的名称要和对应的name相同 然后将上述的String userName,int age 换成 UserInfo user,表单中的值就自动的赋给user中的对应值了