数据学习
登录
注册
原创博客
期刊会议
学术世界
期刊出版社
领域期刊
SCI/SCIE/SSCI/EI简介
期刊列表
会议列表
所有期刊分区
学术期刊信息检索
JCR期刊分区查询
CiteScore期刊分区查询
中科院期刊分区查询
领域期刊分区
管理 - UTD24期刊列表
管理 - AJG(ABS)期刊星级查询
管理 - FMS推荐期刊列表
计算机 - CCF推荐期刊会议列表
高校期刊分区
南大核心(CSSCI)
合工大小核心
合工大大核心
AI资源仓库
AI领域与任务
AI研究机构
AI学术期刊
AI论文快讯
AI数据集
AI开源工具
AI模型
AI模型概览图
AI模型月报
AI基础大模型
AI预训练大模型
数据推荐
网址导航
我的网址导航
程序员必备网站
使用SpringMVC创建Web工程并使用SpringSecurity进行权限控制的详细配置方法
标签:
#SpringMVC#
#SpringSecurity#
#web开发#
#网站建设#
#网站开发#
时间:2017/11/08 11:16:01
作者:小木
使用SpringMVC框架搭建Web项目工程是目前非常流行的web项目创建方式。同时Spring Security也为我们提供了登录验证和权限控制等内容。在这篇博客中,我们将详细描述如何从0开始配置一个基于SpringMVC框架和SpringSecurity权限控制的网站。主要,需要实现搭建好Eclipse开发环境。可参考[Eclipse的Web开发环境搭建——从零开始入门介绍](http://www.datalearner.com/blog/1051504188229579)。本项目已经上传到GitHub中,请查看https://github.com/df19900725/WebTempalte [TOC] ### 一、创建Web项目 在这里,我们首先创建一个Dynamic Web Project项目。填好项目名称之后,直接点击Finish即可(不用next,这里我们用后面默认的配置)。然后,右键单击项目名称,依次选择Configure - Convert To Maven Project。将该项目转换成Maven的项目。这样,一个基于Maven的Web项目就建好了。可能有人问为啥不直接使用Maven创建。因为Eclipse的Maven插件提供的Web原型版本太低,而且常年不更新,和新的jdk版本搭配在一起很容易出错。所以我们采用这种方式。
 
### 二、配置pom.xml文件 使用SpringMVC和SpringSecurity插件需要依赖一些包。我们使用Maven的方式添加,同时,我们还需要一些连接数据库的包。我们一同在下面加进去。把下面的插件添加之后,这个网站系统就支持SpringMVC和SpringSecurity的各项功能了。后面我们将一步一步说明。 ```xml
4.0.0
hfutec
WebTemplate
0.0.1-SNAPSHOT
war
src
maven-compiler-plugin
3.6.1
1.8
1.8
maven-war-plugin
3.0.0
WebContent
commons-logging
commons-logging
1.1.1
commons-dbutils
commons-dbutils
1.6
mysql
mysql-connector-java
5.1.34
com.alibaba
druid
1.0.12
jstl
jstl
1.2
org.springframework.security
spring-security-taglibs
4.0.2.RELEASE
org.springframework.security
spring-security-web
4.0.2.RELEASE
org.springframework.security
spring-security-config
4.0.2.RELEASE
org.springframework.security
spring-security-core
4.0.2.RELEASE
org.springframework
spring-webmvc
4.1.4.RELEASE
com.fasterxml.jackson.core
jackson-core
2.5.0
com.fasterxml.jackson.core
jackson-databind
2.5.0
com.fasterxml.jackson.core
jackson-annotations
2.5.0
org.springframework
spring-aop
4.3.6.RELEASE
org.aspectj
aspectjrt
1.7.3
org.aspectj
aspectjweaver
1.8.10
com.google.guava
guava
20.0
com.alibaba
fastjson
1.2.38
``` ### 三、配置Web.xml 在上述操作完毕之后,我们的网站所所依赖的包就完毕了。现在我们讲一下Web.xml的配置。当我们去启动一个WEB项目时,容器包括(JBoss、Tomcat等)首先会读取项目web.xml配置文件里的配置,当这一步骤没有出错并且完成之后,项目才能正常地被启动起来。而一些Spring框架的监控都是在这里配置的(注意:配置条目的顺序要一样,因为它是按照顺序扫描加载的。顺序错了可能会导致出错)。我们右键项目中的```WEB-INF```文件夹,然后新建一个web.xml(有的时候创建项目可以勾选自动创建web.xml,这里我们手动建一个)。具体配置和说明如下: ```xml
Web Template created by D.F.
/
1800
org.springframework.web.context.ContextLoaderListener
org.springframework.security.web.session.HttpSessionEventPublisher
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true
encodingFilter
/*
springSecurityFilterChain
org.springframework.web.filter.DelegatingFilterProxy
springSecurityFilterChain
/*
contextConfigLocation
/WEB-INF/spring*.xml /WEB-INF/applicationContext*.xml
applicationContext
org.springframework.web.servlet.DispatcherServlet
1
applicationContext
/
default
*.css
default
*.js
default
*.ico
default
*.gif
default
*.jpg
default
*.png
default
*.bmp
default
*.jpeg
default
*.swf
default
*.flv
default
*.xml
default
*.txt
default
*.htm
default
*.html
``` 四、添加其他的配置文件 在web.xml的配置中,我们还加了一个其他配置文件。这里我们就在WEB-INF下面再加入三个配置文件,分别是```applicationContext-database.xml```、```applicationContext-servlet.xml```和```spring-security.xml```。我们将分别说明。 ##### 4.1、applicationContext-database.xml 这是阿里巴巴Druid数据连接池的配置。网站需要访问数据库,需要数据库连接池来管理数据库连接。我们使用的是druid工具。里面配置了用户名、密码、连接数、等待时间等等。不是本篇重点。我们只列出来,不说具体了。 ```xml
jdbc:mysql://127.0.0.1:3306/Enterprise
root
11111111
``` ##### 4.2、applicationContext-servlet.xml 这里主要配置SpringMVC的一些信息,包括对自动标注的支持,设置需要扫描的拦截器目录等。具体如下: ```xml
text/html;charset=UTF-8
application/json;charset=UTF-8
``` ##### 4.3、spring-security.xml文件配置 这个就是配置spring-security权限控制的文件了。具体如下: ```xml
classpath:myMessages
``` 在上述配置文件都创建好了之后,我们的目录应该如下所示(这里把第5步骤的创建的首页也放进来了。)

#### 五、创建首页 好了。在所有的配置文件都写好之后,我们开始创建一个首页。首先,我们在WEB-INF文件夹下创建一个views文件夹。这个之前说过了,我们在配置文件中写了。我们创建一个简单的jsp页面,如下: ```html <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
首页
你好
``` 然后,我们需要创建一个Contoller来控制这个首页访问。在Java Resource下src上右键单击创建一个包,然后创建一个Java类,如下:

```java package org.test.controller; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; @Controller public class ViewRedirectController { @RequestMapping("/") public ModelAndView index() { ModelAndView mav = new ModelAndView(); mav.setViewName("/index"); return mav; } } ``` 这里我们在类名上加上```@Controller```表明这是一个控制类,Spring监听器会把这个里面的方法加入到监听。然后我们创建了一个方法,声明```@RequestMapping("/")```表明这个方法是用来处理```/```请求的,就是我们常见的默认的首页。然后返回index这个页面。是使用```setViewName("/index")```方法。
注意,这个类所在的包一定要和 applicationContext-servlet.xml 中配置的扫描的包要一致,至少要在那个包下面,负责会扫描不到这个控制类,就无法控制了。
好了,下面右键单击这个项目,点击Run As - Run on server之后,我们就可以启动这个系统(如果没有配置tomcat请先配置一下)。然后看到首页了。

本项目已经上传到GitHub中,请查看https://github.com/df19900725/WebTempalte
欢迎大家关注DataLearner官方微信,接受最新的AI技术推送
相关博客
最热博客