(1)新建Spring项目
(2)添加所需要的jar包
spring的5+2:
spring-core.jar
spring.beans.jar
spring-context.jar
spring-expression.jar
spring-aop.jar
spring-web.jar
spring-webmvc.jar
(这2个jar包是spring mvc的)
web应用的2个:
servlet.jar
jsp.jar
这2个包的名字五花八门,总之就是servlet一个、jsp一个。
可以到tomcat的lib下复制,也可以下载Java EE的压缩包。
可以在Project Structure中添加包,这种方式在部署时容易出现lib复制不全的问题,
也可以在WEB-INF下新建文件夹lib,把jar包复制到此文件夹,然后对lib点击右键->Add as Library。
web应用的lib要建在WEB-INF下,只有建在WEB-INF下,部署时才会复制。
(3)新建包com.chy,model,包下新建实体类User
packagecom.chy.model;public classUser {privateString username;privateString password;publicString getUsername() {returnusername;
}public voidsetUsername(String username) {this.username =username;
}publicString getPassword() {returnpassword;
}public voidsetPassword(String password) {this.password =password;
}
}
(4)新建包com.chy.controller,包下新建类UserController,只需实现Controller接口
packagecom.chy.controller;importcom.chy.model.User;importorg.springframework.web.servlet.ModelAndView;import org.springframework.web.servlet.mvc.Controller;public class UserController implementsController {
@Overridepublic ModelAndView handleRequest(javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse) throwsException {//视图可以在构造器中指定,也可以先使用空参构造器,在调用setter方法设置
ModelAndView mav = new ModelAndView("/WEB-INF/jsp/user_info.jsp");
User user= newUser();
user.setUsername("chy");
user.setPassword("abcd");//向视图传递数据
mav.addObject("user", user);returnmav;
}
}
注意实现的是 org.springframework.web.servlet.mvc.Controller ,不要导错了。
(5)WEB-INF下新建文件夹jsp,jsp文件夹下新建文件user_info.jsp
Title密码:${user.password}
使用controller传过来的数据,实质是通过model的getter方法获取属性值。
(6)在src下新建springmvc的配置文件springmvc-config.xml
(7)在web.xml中用DispatcherServlet拦截所有HTTP请求
dispatcherServlet
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:springmvc-config.xml
1
dispatcherServlet
/
如果未指定springmvc配置文件的路径,默认会去WEB-INF下找名为DispatcherServlet-servlet.xml的文件,
所以也可以在WEB-INF下新建DispatcherServlet-servlet.xml,在里面写springmvc的配置。
如果未指定Servlet的加载时机,会在需要时才加载(初始化)此Servlet。
测试
部署项目,访问controller:
http://localhost:8080/springmvc_war_exploded/userController
显示:
用户名:chy
密码:abcd
视图名的拼接
上面的demo中,我们在controller中写的是完整的视图名:
ModelAndView mav = new ModelAndView("/WEB-INF/jsp/user_info.jsp");
每次设置视图名时都写一长串,很麻烦,可以拼接视图名:
ModelAndView mav = new ModelAndView("user_info");