idea+maven + spring security +springmvc入门 (自定义登录页面),附idea如何创建web项目

第一次使用idea,上午在eclipse中 学习了spring security 入门,下午试试在idea中搭建。

刚开始 我以为 直接将eclipse的 文件 copy过来就行了,结果发现copy过来以后 各种报错。

后来把maven本地仓库jar包都删了,并在setting文件中 配置了阿里云镜像,就好了。

然后就是在 eclipse中运行正常的 springmvc.xml,头信息开始报错。找了很久头信息,最终终于找到可以使用的版本。


如果你想看eclipse版本的 spring security +springmvc入门 

请看我上一篇文章     点击打开链接


一:点击Create New Project


二:点Maven 选 JDK ,勾Create from archetype ,在下面选 webapp结尾的。


三:输入GroupId和ArtifactId

GroupId是项目组名

ArtifactId是项目名


四:选maven位置,setting文件位置,maven本地仓库位置。

注意:如果不用默认的setting文件位置和maven本地仓库位置,必须要勾选上override。

setting里面最好配置上阿里云的镜像,这样下载jar会比较快,官方的maven中心仓库下载的慢,容易jar包下残导致不能使用。

如果你以前用过eclipse,本地仓库自己最好再建一个文件夹,别和eclipse共用一个本地仓库。我怕冲突。



  1. <mirror>
  2. <id>alimaven </id>
  3. <name>aliyun maven </name>
  4. <url>http://maven.aliyun.com/nexus/content/groups/public/ </url>
  5. <mirrorOf>central </mirrorOf>
  6. </mirror>

五:起项目名和项目位置,不用改


六:进入以后如下图所示,如果你没有这些工具栏,可以点击View,然后开启,同时看一下项目结构



七:建文件夹   -- 右键 main -->new -->directory-->起名 为 java


然后 右键 java --Mark Directory As  --Source Root   (意思就是你的java代码在这下面写) 点完以后java文件夹变蓝色了。


然后右键java -- new --package    起名 如com.zzh.controller  

然后再 右键 main  创建个 resource文件夹。 右键resource这个 文件夹,还是Makr Directory as  --> Resources Root



最终项目结构 如下


八:配置tomcat


点进去以后 左上角 有个绿色的加号,然后点最下面那个,将列表显示完全,然后选择tomcatserver - local(如果没有tomcat,需要先安装tomcat插件,这个自己上网搜吧,我懒得写了)




准备工作完成, 下面进入spring service和 spring mvc 部分。

首先按照我的项目结构,去添加各种文件,下面列出文件内容。


pom.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation= "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0 </modelVersion>
  5. <groupId>com.zzh </groupId>
  6. <artifactId>ssm </artifactId>
  7. <version>1.0-SNAPSHOT </version>
  8. <packaging>war </packaging>
  9. <name>ssm Maven Webapp </name>
  10. <!-- FIXME change it to the project's website -->
  11. <url>http://www.example.com </url>
  12. <properties>
  13. <project.build.sourceEncoding>UTF-8 </project.build.sourceEncoding>
  14. <maven.compiler.source>1.7 </maven.compiler.source>
  15. <maven.compiler.target>1.7 </maven.compiler.target>
  16. <jdk.version>1.6 </jdk.version>
  17. <spring.version>4.1.6.RELEASE </spring.version>
  18. <spring.security.version>3.2.3.RELEASE </spring.security.version>
  19. <jstl.version>1.2 </jstl.version>
  20. </properties>
  21. <dependencies>
  22. <!-- Spring dependencies -->
  23. <dependency>
  24. <groupId>org.springframework </groupId>
  25. <artifactId>spring-context </artifactId>
  26. <version>${spring.version} </version>
  27. </dependency>
  28. <dependency>
  29. <groupId>org.springframework </groupId>
  30. <artifactId>spring-webmvc </artifactId>
  31. <version>${spring.version} </version>
  32. </dependency>
  33. <!-- Spring Security -->
  34. <dependency>
  35. <groupId>org.springframework.security </groupId>
  36. <artifactId>spring-security-web </artifactId>
  37. <version>${spring.security.version} </version>
  38. </dependency>
  39. <dependency>
  40. <groupId>org.springframework.security </groupId>
  41. <artifactId>spring-security-config </artifactId>
  42. <version>${spring.security.version} </version>
  43. </dependency>
  44. <!-- jstl for jsp page -->
  45. <dependency>
  46. <groupId>jstl </groupId>
  47. <artifactId>jstl </artifactId>
  48. <version>${jstl.version} </version>
  49. </dependency>
  50. </dependencies>
  51. <build>
  52. <finalName>ssm </finalName>
  53. <pluginManagement> <!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
  54. <plugins>
  55. <plugin>
  56. <artifactId>maven-clean-plugin </artifactId>
  57. <version>3.0.0 </version>
  58. </plugin>
  59. <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
  60. <plugin>
  61. <artifactId>maven-resources-plugin </artifactId>
  62. <version>3.0.2 </version>
  63. </plugin>
  64. <plugin>
  65. <artifactId>maven-compiler-plugin </artifactId>
  66. <version>3.7.0 </version>
  67. </plugin>
  68. <plugin>
  69. <artifactId>maven-surefire-plugin </artifactId>
  70. <version>2.20.1 </version>
  71. </plugin>
  72. <plugin>
  73. <artifactId>maven-war-plugin </artifactId>
  74. <version>3.2.0 </version>
  75. </plugin>
  76. <plugin>
  77. <artifactId>maven-install-plugin </artifactId>
  78. <version>2.5.2 </version>
  79. </plugin>
  80. <plugin>
  81. <artifactId>maven-deploy-plugin </artifactId>
  82. <version>2.8.2 </version>
  83. </plugin>
  84. </plugins>
  85. </pluginManagement>
  86. </build>
  87. </project>

web.xml

  1. <!DOCTYPE web-app PUBLIC
  2. "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  3. "http://java.sun.com/dtd/web-app_2_3.dtd" >
  4. <web-app xmlns= "http://xmlns.jcp.org/xml/ns/javaee"
  5. xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
  6. xsi:schemaLocation= "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  7. version= "3.1">
  8. <!-- Spring MVC -->
  9. <servlet>
  10. <servlet-name>mvc-dispatcher</servlet-name>
  11. <servlet- class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  12. <init-param>
  13. <param-name>contextConfigLocation</param-name>
  14. <param-value>classpath:springmvc.xml</param-value>
  15. </init-param>
  16. <load-on-startup>1</load-on-startup>
  17. </servlet>
  18. <servlet-mapping>
  19. <servlet-name>mvc-dispatcher</servlet-name>
  20. <url-pattern>/</url-pattern>
  21. </servlet-mapping>
  22. <listener>
  23. <listener-class>org.springframework.web.context.ContextLoaderListener
  24. </listener-class>
  25. </listener>
  26. <!-- Loads Spring Security config file -->
  27. <context-param>
  28. <param-name>contextConfigLocation</param-name>
  29. <param-value>
  30. classpath:spring-security.xml
  31. </param-value>
  32. </context-param>
  33. <!-- Spring Security -->
  34. <filter>
  35. <filter-name>springSecurityFilterChain</filter-name>
  36. <filter-class>org.springframework.web.filter.DelegatingFilterProxy
  37. </filter-class>
  38. </filter>
  39. <filter-mapping>
  40. <filter-name>springSecurityFilterChain</filter-name>
  41. <url-pattern>/*</url-pattern>
  42. </filter-mapping>
  43. </web-app>

springmvc.xml

  1. <beans xmlns="http://www.springframework.org/schema/beans"
  2. xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns:context= "http://www.springframework.org/schema/context"
  4. xsi:schemaLocation= "http://www.springframework.org/schema/beans
  5. http://www.springframework.org/schema/beans/spring-beans.xsd
  6. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
  7. <context:component-scan base-package="com.zzh.controllor"> </context:component-scan>
  8. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  9. <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"> </property>
  10. <property name="prefix" value="/WEB-INF/pages/"> </property>
  11. <property name="suffix" value=".jsp"> </property>
  12. </bean>
  13. </beans>

spring-security.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:sec= "http://www.springframework.org/schema/security"
  4. xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation= "http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
  7. http://www.springframework.org/schema/security
  8. http://www.springframework.org/schema/security/spring-security-3.2.xsd">
  9.     <!-- 不拦截的页面,我下面这行在我这个案例中没意义,可以设置一些静态资源 或 下面配置拦截所有请求的时候,选择不拦截登录页面 -->  
  10. <sec:http pattern="/login.jsp" security="none"> </sec:http>
  11. <sec:http auto-config="false">
  12. <!-- 对/admin** 的url进行拦截,只有拥有ROLE_USER权限的用户才能进入 -->
  13. <sec:intercept-url pattern="/admin**" access="ROLE_USER" />
  14. <!--
  15. login-page="/login.jsp" 拦截以后重定向到自定义的登录页面
  16. authentication-failure-url="/login.jsp"登录的用户没有 ROLE_USER权限跳转的页面
  17. default-target-url="/admin" 登录的用户有 ROLE_USER权限跳转的页面
  18. -->
  19. <sec:form-login login-page="/login.jsp" authentication-failure-url="/login.jsp"
  20. default-target-url= "/admin" />
  21. <!--
  22. 点击注销 跳转的页面
  23. 与 <a href="<c:url value="/logout" />" > 注销</a> 配合使用
  24. -->
  25. <sec:logout logout-url="/logout" logout-success-url="/login.jsp" invalidate-session="true"/>
  26. </sec:http>
  27. <sec:authentication-manager>
  28. <sec:authentication-provider>
  29. <sec:user-service>
  30. <!-- 给root 用户 配置 "ROLE_USER" 权限 -->
  31. <sec:user name="root" password="123456" authorities="ROLE_USER" />
  32. </sec:user-service>
  33. </sec:authentication-provider>
  34. </sec:authentication-manager>
  35. </beans>

HelloController.java

  1. package com.zzh.controllor;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. import org.springframework.web.bind.annotation.RequestMethod;
  5. import org.springframework.web.servlet.ModelAndView;
  6. @Controller
  7. public class HelloController {
  8. @RequestMapping(value = { "/", "/welcome**" }, method = RequestMethod.GET)
  9. public ModelAndView welcomePage() {
  10. ModelAndView model = new ModelAndView();
  11. model.addObject( "title", "Spring Security Hello World");
  12. model.addObject( "message", "This is welcome page!");
  13. model.setViewName( "hello");
  14. return model;
  15. }
  16. @RequestMapping(value = "/admin**", method = RequestMethod.GET)
  17. public ModelAndView adminPage() {
  18. ModelAndView model = new ModelAndView();
  19. model.addObject( "title", "Spring Security Hello World");
  20. model.addObject( "message", "This is protected page!");
  21. model.setViewName( "admin");
  22. return model;
  23. }
  24. }

admin.jsp

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding= "UTF-8" session= "true"%>
  3. <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  5. <html>
  6. <head>
  7. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  8. <title>Insert title here </title>
  9. </head>
  10. <body>
  11. <h1>标题: ${title} </h1>
  12. <h1>消息 : ${message} </h1>
  13. <c:if test="${pageContext.request.userPrincipal.name != null}">
  14. <h2>欢迎: ${pageContext.request.userPrincipal.name}
  15. | <a href="<c:url value="/logout" />" > 注销 </a> </h2>
  16. </c:if>
  17. </body>
  18. </html>

hello.jsp

  1. <%@ page language= "java" contentType= "text/html; charset=UTF-8"
  2. pageEncoding= "UTF-8" session= "false"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv= "Content-Type" content= "text/html; charset=UTF-8">
  7. <title>Insert title here</title>
  8. </head>
  9. <body>
  10. <h1>标题: ${title}</h1>
  11. <h1>消息 : ${message}</h1>
  12. </body>
  13. </html>

login.jsp

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding= "UTF-8"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <title>Insert title here </title>
  8. </head>
  9. <body>
  10. <form action="j_spring_security_check" method="post">
  11. <input type="text" name="j_username"
  12. placeholder= 用户名 maxlength= "11" style= "border-radius: 4px; outline:none;
  13. ;width: 300px;height: 35px;text-indent: 10px"/> <br/>
  14. <input type="password" name="j_password"
  15. placeholder= 密码 maxlength= "11" style= "border-radius: 4px; outline:none;
  16. ;width: 300px;height: 35px;text-indent: 10px"/> <br/>
  17. <input type="submit"
  18. style= "width: 305px;height: 45px;background-color: orange" value= "登录"
  19. onmousemove= "this.style.backgroundColor='darkorange';"
  20. onmouseout= "this.style.backgroundColor='orange ';"/>
  21. </form>
  22. </body>
  23. </html>

index.jsp

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding= "UTF-8"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <title>Insert title here </title>
  8. </head>
  9. <body>
  10. <h1>index </h1>
  11. </body>
  12. </html>

以上为 文件 内容。 


下面 开始配置项目信息


选择 Modules  ,   Project不用管  。 选择Dependencies 添加Tomcat Library


同时检查 文件类型 以及 Artifacts是否已经自动配置好



出现如上2图所示就 没问题了。

最后 在tomcat中部署项目。 选择文件夹形式发布 即 exploded 结尾的。


运行项目


效果 展示   index页面  


spring security 实现效果   输入/admin,自己冲定向到 登录页面

注意看 右面的network




用户名密码 输入正确(有权限的用户)  会 进入 我们原本请求的 RequestMapping对应的方法


点击 注销 回到登录页面  




如果你 按照我的步骤 成功了,帮忙点个赞,写这么久真心累。支持一下。或者遇到什么问题,可以留言,或许可以帮你解决。 


第一次使用idea,上午在eclipse中 学习了spring security 入门,下午试试在idea中搭建。

刚开始 我以为 直接将eclipse的 文件 copy过来就行了,结果发现copy过来以后 各种报错。

后来把maven本地仓库jar包都删了,并在setting文件中 配置了阿里云镜像,就好了。

然后就是在 eclipse中运行正常的 springmvc.xml,头信息开始报错。找了很久头信息,最终终于找到可以使用的版本。


如果你想看eclipse版本的 spring security +springmvc入门 

请看我上一篇文章     点击打开链接


一:点击Create New Project


二:点Maven 选 JDK ,勾Create from archetype ,在下面选 webapp结尾的。


三:输入GroupId和ArtifactId

GroupId是项目组名

ArtifactId是项目名


四:选maven位置,setting文件位置,maven本地仓库位置。

注意:如果不用默认的setting文件位置和maven本地仓库位置,必须要勾选上override。

setting里面最好配置上阿里云的镜像,这样下载jar会比较快,官方的maven中心仓库下载的慢,容易jar包下残导致不能使用。

如果你以前用过eclipse,本地仓库自己最好再建一个文件夹,别和eclipse共用一个本地仓库。我怕冲突。



  1. <mirror>
  2. <id>alimaven </id>
  3. <name>aliyun maven </name>
  4. <url>http://maven.aliyun.com/nexus/content/groups/public/ </url>
  5. <mirrorOf>central </mirrorOf>
  6. </mirror>

五:起项目名和项目位置,不用改


六:进入以后如下图所示,如果你没有这些工具栏,可以点击View,然后开启,同时看一下项目结构



七:建文件夹   -- 右键 main -->new -->directory-->起名 为 java


然后 右键 java --Mark Directory As  --Source Root   (意思就是你的java代码在这下面写) 点完以后java文件夹变蓝色了。


然后右键java -- new --package    起名 如com.zzh.controller  

然后再 右键 main  创建个 resource文件夹。 右键resource这个 文件夹,还是Makr Directory as  --> Resources Root



最终项目结构 如下


八:配置tomcat


点进去以后 左上角 有个绿色的加号,然后点最下面那个,将列表显示完全,然后选择tomcatserver - local(如果没有tomcat,需要先安装tomcat插件,这个自己上网搜吧,我懒得写了)




准备工作完成, 下面进入spring service和 spring mvc 部分。

首先按照我的项目结构,去添加各种文件,下面列出文件内容。


pom.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation= "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0 </modelVersion>
  5. <groupId>com.zzh </groupId>
  6. <artifactId>ssm </artifactId>
  7. <version>1.0-SNAPSHOT </version>
  8. <packaging>war </packaging>
  9. <name>ssm Maven Webapp </name>
  10. <!-- FIXME change it to the project's website -->
  11. <url>http://www.example.com </url>
  12. <properties>
  13. <project.build.sourceEncoding>UTF-8 </project.build.sourceEncoding>
  14. <maven.compiler.source>1.7 </maven.compiler.source>
  15. <maven.compiler.target>1.7 </maven.compiler.target>
  16. <jdk.version>1.6 </jdk.version>
  17. <spring.version>4.1.6.RELEASE </spring.version>
  18. <spring.security.version>3.2.3.RELEASE </spring.security.version>
  19. <jstl.version>1.2 </jstl.version>
  20. </properties>
  21. <dependencies>
  22. <!-- Spring dependencies -->
  23. <dependency>
  24. <groupId>org.springframework </groupId>
  25. <artifactId>spring-context </artifactId>
  26. <version>${spring.version} </version>
  27. </dependency>
  28. <dependency>
  29. <groupId>org.springframework </groupId>
  30. <artifactId>spring-webmvc </artifactId>
  31. <version>${spring.version} </version>
  32. </dependency>
  33. <!-- Spring Security -->
  34. <dependency>
  35. <groupId>org.springframework.security </groupId>
  36. <artifactId>spring-security-web </artifactId>
  37. <version>${spring.security.version} </version>
  38. </dependency>
  39. <dependency>
  40. <groupId>org.springframework.security </groupId>
  41. <artifactId>spring-security-config </artifactId>
  42. <version>${spring.security.version} </version>
  43. </dependency>
  44. <!-- jstl for jsp page -->
  45. <dependency>
  46. <groupId>jstl </groupId>
  47. <artifactId>jstl </artifactId>
  48. <version>${jstl.version} </version>
  49. </dependency>
  50. </dependencies>
  51. <build>
  52. <finalName>ssm </finalName>
  53. <pluginManagement> <!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
  54. <plugins>
  55. <plugin>
  56. <artifactId>maven-clean-plugin </artifactId>
  57. <version>3.0.0 </version>
  58. </plugin>
  59. <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
  60. <plugin>
  61. <artifactId>maven-resources-plugin </artifactId>
  62. <version>3.0.2 </version>
  63. </plugin>
  64. <plugin>
  65. <artifactId>maven-compiler-plugin </artifactId>
  66. <version>3.7.0 </version>
  67. </plugin>
  68. <plugin>
  69. <artifactId>maven-surefire-plugin </artifactId>
  70. <version>2.20.1 </version>
  71. </plugin>
  72. <plugin>
  73. <artifactId>maven-war-plugin </artifactId>
  74. <version>3.2.0 </version>
  75. </plugin>
  76. <plugin>
  77. <artifactId>maven-install-plugin </artifactId>
  78. <version>2.5.2 </version>
  79. </plugin>
  80. <plugin>
  81. <artifactId>maven-deploy-plugin </artifactId>
  82. <version>2.8.2 </version>
  83. </plugin>
  84. </plugins>
  85. </pluginManagement>
  86. </build>
  87. </project>

web.xml

  1. <!DOCTYPE web-app PUBLIC
  2. "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  3. "http://java.sun.com/dtd/web-app_2_3.dtd" >
  4. <web-app xmlns= "http://xmlns.jcp.org/xml/ns/javaee"
  5. xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
  6. xsi:schemaLocation= "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  7. version= "3.1">
  8. <!-- Spring MVC -->
  9. <servlet>
  10. <servlet-name>mvc-dispatcher</servlet-name>
  11. <servlet- class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  12. <init-param>
  13. <param-name>contextConfigLocation</param-name>
  14. <param-value>classpath:springmvc.xml</param-value>
  15. </init-param>
  16. <load-on-startup>1</load-on-startup>
  17. </servlet>
  18. <servlet-mapping>
  19. <servlet-name>mvc-dispatcher</servlet-name>
  20. <url-pattern>/</url-pattern>
  21. </servlet-mapping>
  22. <listener>
  23. <listener-class>org.springframework.web.context.ContextLoaderListener
  24. </listener-class>
  25. </listener>
  26. <!-- Loads Spring Security config file -->
  27. <context-param>
  28. <param-name>contextConfigLocation</param-name>
  29. <param-value>
  30. classpath:spring-security.xml
  31. </param-value>
  32. </context-param>
  33. <!-- Spring Security -->
  34. <filter>
  35. <filter-name>springSecurityFilterChain</filter-name>
  36. <filter-class>org.springframework.web.filter.DelegatingFilterProxy
  37. </filter-class>
  38. </filter>
  39. <filter-mapping>
  40. <filter-name>springSecurityFilterChain</filter-name>
  41. <url-pattern>/*</url-pattern>
  42. </filter-mapping>
  43. </web-app>

springmvc.xml

  1. <beans xmlns="http://www.springframework.org/schema/beans"
  2. xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
  3. xmlns:context= "http://www.springframework.org/schema/context"
  4. xsi:schemaLocation= "http://www.springframework.org/schema/beans
  5. http://www.springframework.org/schema/beans/spring-beans.xsd
  6. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
  7. <context:component-scan base-package="com.zzh.controllor"> </context:component-scan>
  8. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  9. <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"> </property>
  10. <property name="prefix" value="/WEB-INF/pages/"> </property>
  11. <property name="suffix" value=".jsp"> </property>
  12. </bean>
  13. </beans>

spring-security.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:sec= "http://www.springframework.org/schema/security"
  4. xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation= "http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
  7. http://www.springframework.org/schema/security
  8. http://www.springframework.org/schema/security/spring-security-3.2.xsd">
  9.     <!-- 不拦截的页面,我下面这行在我这个案例中没意义,可以设置一些静态资源 或 下面配置拦截所有请求的时候,选择不拦截登录页面 -->  
  10. <sec:http pattern="/login.jsp" security="none"> </sec:http>
  11. <sec:http auto-config="false">
  12. <!-- 对/admin** 的url进行拦截,只有拥有ROLE_USER权限的用户才能进入 -->
  13. <sec:intercept-url pattern="/admin**" access="ROLE_USER" />
  14. <!--
  15. login-page="/login.jsp" 拦截以后重定向到自定义的登录页面
  16. authentication-failure-url="/login.jsp"登录的用户没有 ROLE_USER权限跳转的页面
  17. default-target-url="/admin" 登录的用户有 ROLE_USER权限跳转的页面
  18. -->
  19. <sec:form-login login-page="/login.jsp" authentication-failure-url="/login.jsp"
  20. default-target-url= "/admin" />
  21. <!--
  22. 点击注销 跳转的页面
  23. 与 <a href="<c:url value="/logout" />" > 注销</a> 配合使用
  24. -->
  25. <sec:logout logout-url="/logout" logout-success-url="/login.jsp" invalidate-session="true"/>
  26. </sec:http>
  27. <sec:authentication-manager>
  28. <sec:authentication-provider>
  29. <sec:user-service>
  30. <!-- 给root 用户 配置 "ROLE_USER" 权限 -->
  31. <sec:user name="root" password="123456" authorities="ROLE_USER" />
  32. </sec:user-service>
  33. </sec:authentication-provider>
  34. </sec:authentication-manager>
  35. </beans>

HelloController.java

  1. package com.zzh.controllor;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. import org.springframework.web.bind.annotation.RequestMethod;
  5. import org.springframework.web.servlet.ModelAndView;
  6. @Controller
  7. public class HelloController {
  8. @RequestMapping(value = { "/", "/welcome**" }, method = RequestMethod.GET)
  9. public ModelAndView welcomePage() {
  10. ModelAndView model = new ModelAndView();
  11. model.addObject( "title", "Spring Security Hello World");
  12. model.addObject( "message", "This is welcome page!");
  13. model.setViewName( "hello");
  14. return model;
  15. }
  16. @RequestMapping(value = "/admin**", method = RequestMethod.GET)
  17. public ModelAndView adminPage() {
  18. ModelAndView model = new ModelAndView();
  19. model.addObject( "title", "Spring Security Hello World");
  20. model.addObject( "message", "This is protected page!");
  21. model.setViewName( "admin");
  22. return model;
  23. }
  24. }

admin.jsp

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding= "UTF-8" session= "true"%>
  3. <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  5. <html>
  6. <head>
  7. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  8. <title>Insert title here </title>
  9. </head>
  10. <body>
  11. <h1>标题: ${title} </h1>
  12. <h1>消息 : ${message} </h1>
  13. <c:if test="${pageContext.request.userPrincipal.name != null}">
  14. <h2>欢迎: ${pageContext.request.userPrincipal.name}
  15. | <a href="<c:url value="/logout" />" > 注销 </a> </h2>
  16. </c:if>
  17. </body>
  18. </html>

hello.jsp

  1. <%@ page language= "java" contentType= "text/html; charset=UTF-8"
  2. pageEncoding= "UTF-8" session= "false"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv= "Content-Type" content= "text/html; charset=UTF-8">
  7. <title>Insert title here</title>
  8. </head>
  9. <body>
  10. <h1>标题: ${title}</h1>
  11. <h1>消息 : ${message}</h1>
  12. </body>
  13. </html>

login.jsp

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding= "UTF-8"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <title>Insert title here </title>
  8. </head>
  9. <body>
  10. <form action="j_spring_security_check" method="post">
  11. <input type="text" name="j_username"
  12. placeholder= 用户名 maxlength= "11" style= "border-radius: 4px; outline:none;
  13. ;width: 300px;height: 35px;text-indent: 10px"/> <br/>
  14. <input type="password" name="j_password"
  15. placeholder= 密码 maxlength= "11" style= "border-radius: 4px; outline:none;
  16. ;width: 300px;height: 35px;text-indent: 10px"/> <br/>
  17. <input type="submit"
  18. style= "width: 305px;height: 45px;background-color: orange" value= "登录"
  19. onmousemove= "this.style.backgroundColor='darkorange';"
  20. onmouseout= "this.style.backgroundColor='orange ';"/>
  21. </form>
  22. </body>
  23. </html>

index.jsp

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding= "UTF-8"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <title>Insert title here </title>
  8. </head>
  9. <body>
  10. <h1>index </h1>
  11. </body>
  12. </html>

以上为 文件 内容。 


下面 开始配置项目信息


选择 Modules  ,   Project不用管  。 选择Dependencies 添加Tomcat Library


同时检查 文件类型 以及 Artifacts是否已经自动配置好



出现如上2图所示就 没问题了。

最后 在tomcat中部署项目。 选择文件夹形式发布 即 exploded 结尾的。


运行项目


效果 展示   index页面  


spring security 实现效果   输入/admin,自己冲定向到 登录页面

注意看 右面的network




用户名密码 输入正确(有权限的用户)  会 进入 我们原本请求的 RequestMapping对应的方法


点击 注销 回到登录页面  




如果你 按照我的步骤 成功了,帮忙点个赞,写这么久真心累。支持一下。或者遇到什么问题,可以留言,或许可以帮你解决。 


猜你喜欢

转载自blog.csdn.net/xmz1193184480/article/details/80830144
今日推荐