最近开始学习SpringMVC框架,鼓捣了几天,成功搭建了一个简单的Demo,可以实现用户注册和登录(PS:新手搭建,有问题欢迎留言指出๑乛◡乛๑)。
开发环境:
IDE:MyEclipse Professional 2014
JDK:1.8.0_144 x64
Tomcat:8.0
SpringMVC:4.2.0
1.SpringMVC环境配置
搭建SpringMVC环境,SpringMVC的jar包当然是必不可少的。登录http://repo.springsource.org/libs-release-local/站点,该站点有SpringMVC各版本的压缩包。在这里我下载的是spring-framework-4.2.0.RELEASE。
除了SpringMVC的jar包,因为Spring的核心容器依赖于common-logging的jar包,因此还需要下载common-logging.jar。
进入MyEclipse创建Dynamic Web Project工程,工程名是UserTset。将刚刚下载的SpringMVC的压缩包解压后,把libs目录下的jar包和下载的common-logging.jar拷贝到WebRoot/WEB-INF/lib文件夹下,在主界面选中UserTest节点,按F5刷新,可以看到如图的界面,至此SpringMVC框架所需的类库已经导入。
2.配置前端控制器DispatcherServlet
DispatcherServlet在SpringMVC中是集中访问点,负责分派调度工作。因此我们需要告诉Web容器,我们将使用DispatcherServlet,并将URL映射到DispatcherServlet。
-
<?xml version="1.0" encoding="UTF-8"?> -
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" -
xmlns="http://xmlns.jcp.org/xml/ns/javaee" -
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee -
http://xmlns.jcp.org.xml/ns/javaee/web-app_3_1.xsd" -
id="WebApp_ID" > -
<servlet> -
<!-- 声明Dispatcher,告诉Web容器我们将使用springMVC的DispatcherServlet --> -
<servlet-name>dispatcher</servlet-name> -
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> -
<!-- DispatcherServlet在加载时会需要SpringMVC的配置文件,因此需要声明该配置文件的位置。 --> -
<!-- 如果不配置该项,则应用会默认的去WEB-INF下寻找名字为[servlet-name]-servlet.xml的文件。 --> -
<init-param> -
<param-name>contextConfigLocation</param-name> -
<param-value>/WEB-INF/springmvc-config.xml</param-value> -
</init-param> -
</servlet> -
<!-- 配置url-pattern,设置为 / 拦截所有的URL请求,并映射到dispatcher --> -
<servlet-mapping> -
<servlet-name>dispatcher</servlet-name> -
<url-pattern>/</url-pattern> -
</servlet-mapping> -
</web-app>
3.配置springmvc-config.xml
-
<?xml version="1.0" encoding="UTF-8"?> -
<beans xmlns="http://www.springframework.org/schema/beans" -
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" -
xmlns:mvc="http://www.springframework.org/schema/mvc" -
xmlns:context="http://www.springframework.org/schema/context" -
xsi:schemaLocation=" -
http://www.springframework.org/schema/beans -
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd -
http://www.springframework.org/schema/mvc -
http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd -
http://www.springframework.org/schema/context -
http://www.springframework.org/schema/context/spring-context-4.2.xsd"> -
<!-- 使用基于注解的控制器,spring会自动扫描base-package下的子包和类,如果扫描到会把这些类注册为bean--> -
<context:component-scan base-package="per.cuttle.UserTest"/> -
<!-- 配置处理映射器和处理器适配器 在Spring4.0后,不配置,会默认加载--> -
<!-- <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> --> -
<!-- <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/> --> -
<!-- 配置视图解析器,经过视图解析器后,视图的的完成路径为[prefix]+返回的视图字符串+[suffix] --> -
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> -
<property name="prefix"> -
<value>/WEB-INF/view/</value> -
</property> -
<property name="suffix"> -
<value>.jsp</value> -
</property> -
</bean> -
</beans>
4.创建User实体类
创建包per.cuttle.domain,在该包下创建了User的实体类。
在此简单的设置了3个属性loginname,password,username。
-
package per.cuttle.domain; -
public class User { -
private String loginname; -
private String password; -
private String username; -
public User(){ -
} -
public String getLoginname(){ -
return loginname; -
} -
public void setLoginname(String loginname){ -
this.loginname=loginname; -
} -
public String getPassword(){ -
return password; -
} -
public void setPassword(String password){ -
this.password=password; -
} -
public String getUsername(){ -
return username; -
} -
public void setUsername(String username){ -
this.username=username; -
} -
}
5.创建控制器
创建包per.cuttle.UserTest(ps:前面在springmvc-config.xml中注解扫描的是该包),在该包下创建类UserController。
由于没有链接数据库,因此在注册时使用List模拟数据库存储。
-
package per.cuttle.UserTest; -
import java.util.ArrayList; -
import java.util.List; -
import org.apache.commons.logging.Log; -
import org.apache.commons.logging.LogFactory; -
import org.springframework.stereotype.Controller; -
import org.springframework.ui.Model; -
import org.springframework.web.bind.annotation.RequestMapping; -
import org.springframework.web.bind.annotation.RequestMethod; -
import org.springframework.web.bind.annotation.RequestParam; -
import per.cuttle.domain.User; -
@Controller -
@RequestMapping(value="/user") -
public class UserController { -
private static List<User> userList; -
public UserController(){ -
userList = new ArrayList<User>(); -
} -
private static final Log logger =LogFactory.getLog(UserController.class); -
@RequestMapping(value="/registerForm",method=RequestMethod.GET) -
public String registerForm(){ -
return "registerForm"; -
} -
@RequestMapping(value="/register",method=RequestMethod.POST) -
public String register(@RequestParam("loginname")String loginname, -
@RequestParam("password")String password, -
@RequestParam("username")String username){ -
User user = new User(); -
user.setLoginname(loginname); -
user.setPassword(password); -
user.setUsername(username); -
userList.add(user); -
return "loginForm"; -
} -
@RequestMapping(value="/login") -
public String login( -
@RequestParam("loginname")String loginname, -
@RequestParam("password")String password, -
Model model){ -
logger.info("loginname:"+loginname+" password:"+password); -
for(User user : userList){ -
if(user.getLoginname().equals(loginname)&& -
user.getPassword().equals(password)){ -
model.addAttribute("user",user); -
return "welcome"; -
} -
} -
return "loginForm"; -
} -
}
6.创建相应的JSP文件
由于在springmvc-config.xml中prefix的值为/WEB-INF/view/,因此我们在web-inf目录下创建view文件夹,将对应的JSP文件放在该文件夹下。JSP文件的名字,应于视图名称对应。
7.测试
将本应用部署到Tomcat上,在浏览器中输入http://localhost:8080/UserTest/user/registerForm进行访问。
注册界面
注册完后跳转登录界面
第一次发博客有点小紧张,这个编辑器用的也不是很熟悉,代码格式一直不对,发了好多次,见谅。有需要源代码的请留言。博文中如有错误望可以指出。
转载自:https://blog.csdn.net/lml0703/article/details/77949764