您的位置:首页 > 编程语言 > Java开发

重写Spring MVC WEB 简单入门-登录例子

2017-11-27 15:32 423 查看

一、说明

        之前写过一个spring mvc的登录例子,不过是基于sts的,而且不是maven工程,有点落后了(原文地址:Spring MVC Web简单入门实例)。这里放上来一个基于IDEA+maven的例子,更新一下。工作上的工程基本上都可以在这个模板基础上扩展(后面会陆续加入日志、权限管理、数据库访问、前后端分离及基于dubbo的分布式的解决方案)。

二、准备工作

        首先还是开发环境的搭建,包括:jdk1.7、tomcat7、maven3、IDEA,这里就不再赘述了,网上有很多教程的。

三、步骤

1、新建maven工程

      选择File->new->project,在弹出的界面选择maven工程,勾选"create from archtype",点击next,如图所示:


然后填写group id和artifact id,如图所示:


一路next,然后填写project name,如图所示:


2、添加pom依赖

        添加servlet、spring相关的pom依赖,具体见工程源码。添加完依赖后,maven会从仓库里面添加依赖的jar,不用再手动添加jar包了,十分方便。

3、web.xml配置

web.xml配置里面最重要的部分就是spring相关的配置,比如启动参数以及spring mvc的注入。
<!--启动参数-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>

<!--servlet配置,加载spring mvc配置-->
<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:applicationContext-springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

其中,applicationContext.xml和applicationContext-springmvc.xml均放在resource目录下。

4、applicationContext.xml配置

     applicationContext.xml可以作为总的配置,如果有多个别的xml配置文件,都可以在applicationContext.xml中进行引入,例如:
<import resource="applicationContext-profile.xml" />
<import resource="applicationContext-security.xml"/>
<import resource="applicationContext-service.xml"/>
<import resource="applicationContext-rocketmq.xml"/>
<import resource="dataaccess.xml"/>
因为我们的例子很简单,所以里面几乎没什么内容。

5、applicationContext-springmvc.xml

applicationContext-springmvc.xml才是spring mvc相关的配置,主要包括controller的自动发现,消息转换,以及view解析器等等。
<!--配置自动扫描bean-->
<context:component-scan base-package="com.xxx.demo" />

<mvc:annotation-driven>
<mvc:message-converters>
<!--返回字符串时转换,防止中文乱码-->
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/plain;charset=UTF-8</value>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
<!--返回JSON时转换-->
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>applicaton/json;charset=UTF-8</value>
<value>application/x-www-form-urlencoded;charset=UTF-8</value>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>

<!--激活自动代理-->
<aop:aspectj-autoproxy/>

<!--静态资源的请求,就将该请求转由Web应用服务器默认的Servlet处理-->
<mvc:default-servlet-handler/>

<!--view解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/views/"/>
<property name="suffix" value=".jsp"/>
</bean>

6、jsp页面及controller

         jsp页面很简单,就一个登录界面,登录失败则显示失败信息,成功则跳转到欢迎页面,大家可以看源码,这里就不放上来了;然后在controller里面处理请求,逻辑很简单,直接上代码:
package com.xxx.demo.controllers;

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 javax.servlet.http.HttpServletResponse;

/**
* Created by gameloft9 on 2017/11/27.
*/
@Controller
public class LoginController {

public static final String USER_NAME="gameloft9";

public static final String PWD = "123456";

/**
* 登录页面入口
* */
@RequestMapping(value = "/index.do", method = RequestMethod.GET)
public String index(Model model, HttpServletResponse response){
return "login";
}

/**
* 登录请求
* */
@RequestMapping(value = "/login.do", method = RequestMethod.POST)
public String login(Model model,String name,String pwd){
if(USER_NAME.equalsIgnoreCase(name)&&PWD.equals(pwd)){
model.addAttribute("name",name);
return "home";
}

model.addAttribute("errInfo","用户名或密码错误!");
return "login";
}
}

四、运行结果

1、登录界面:


2、输错密码:



3、登录成功:



附注:

源码放在了gitHub和CSDN上面了,可自行下载:github项目地址:https://github.com/gameloft9/maven-spring-mvc-logindemoCSDN下载地址:http://download.csdn.net/download/gameloft9/10134536csdn下载好像不能设置免费了,最低都要2个积分,汗。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring mvc web 入门