SpringSecurity 配置开发环境

版权声明:转载请随意! https://blog.csdn.net/qq_41723615/article/details/89333074

几乎只要是系统永远都存在有一个功能--登录与权限分配;而Spring考虑到了这种情况,专门提供了一个用于登录验证以及单Session验证,角色分配的框架概念--Spring安全框架。

开发准备:

本次将采用Spring MVC的结构进行安全框架的开发.

新建一个项目:

Spring安全框架的设计理念在于:你可以直接在开发完成的项目上配置安全框架.

范例:在web.xml里面配置Spring的相关信息

 <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
  </context-param>
    <servlet>
    	<servlet-name>springmvc</servlet-name>
  		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  		<init-param>
  			<param-name>contextConfigLocation</param-name>
  			<param-value>classpath:applicationContext.xml</param-value>
  		</init-param>
  </servlet>
  <servlet-mapping>
 	 <servlet-name>springmvc</servlet-name>
  	<url-pattern>*.action</url-pattern>
  </servlet-mapping>
  <filter>
  	<filter-name>encodingFilter</filter-name>
  	<filter-class>org.springframework.web.filter.CharacterEncodingFilter
  	</filter-class>
  	<init-param>
  		<param-name>encoding</param-name>
  		<param-value>UTF-8</param-value>
  	</init-param>
  </filter>
  <filter-mapping>
  	<filter-name>encodingFilter</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>

 2.修改applicationContext.xml文件定义springMVC相关配置信息;

    <mvc:annotation-driven/>
	<mvc:default-servlet-handler/>
		<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/"></property>
		<property name="suffix" value=".jsp"></property>
	</bean>

此时所有的相关页面都要求在WEB-INF目录下保存.

3.定义Message.java文件。

@SuppressWarnings("serial")
public class Message implements Serializable {

	private Integer mid;
	private String title;
	private String content;
}//setter、getter略

4.定义MessageAction.java程序类

package com.jcn.action;
import java.util.ArrayList;
import java.util.List;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import com.jcn.vo.Message;

@Controller
@RequestMapping("/pages/back/message/*")
public class MessageAction {
	@RequestMapping("message_insertpre")
	public ModelAndView insertPre(){
		ModelAndView mav = new ModelAndView("back/message/message_insert");
		return mav;
	}
	@RequestMapping("message_insert")
	public ModelAndView insert(Message msg){
		System.out.println("[添加数据]"+msg);
		ModelAndView mav = new ModelAndView("forward");
		mav.addObject("msg","信息添加成功!");
		mav.addObject("url","/pages/back/message/message_insertpre.action");
		return mav;
	}
	@RequestMapping("message_list")
	public ModelAndView list(){
		ModelAndView mav = new ModelAndView("/back/message/message_list");
		List<Message> all = new ArrayList<Message>();
		for (int i = 0 ; i < 10 ; i ++) {
			Message msg = new Message();
			msg.setMid(i);
			msg.setTitle("mldn-" + i);
			msg.setContent("www.baidu.com");
			all.add(msg);
		}
		mav.addObject("allMessage",all);
		return mav;
	}
	@RequestMapping("message_delete")
	public ModelAndView delete (Integer mid){
		System.out.println("[删除数据]数据编号为:" + mid);
		ModelAndView mav = new ModelAndView("forward");
		mav.addObject("msg","信息添加成功!");
		mav.addObject("url","/pages/back/message/message_list.action");
		return mav;
	}
}

5.准备出相关的几个界面

增加数据

	<form action="pages/back/message/message_insert.action" method="post">
		消息编号:<input type="text" name="mid" id="mid"><br>
		新闻标题:<input type="text" name="title" id="title"><br>
		新闻内容:<input type="text" name="content" id="content">
		<input type="submit" value="发布">
		<input type="reset" value="重置">
	</form>

删除数据

	 <table border="1" width="100%">
	 
	 <tr>
	 <td>消息编号</td>
	 <td>消息名称</td>
	 <td>消息内容</td>
	 <td>删除</td>
	 
	 </tr>
	 	<c:forEach var="message" items="${allMessages}">
	 		<tr>
	 			 <td>${message.mid}</td>
				 <td>${message.title}</td>
				 <td>${message.content}</td>
				 <td><a href="pages/back/message/message_delete.action?mid=${message.mid}">删除消息</td>
	 		</tr>
	 	
	 	</c:forEach>
	 </table>

现在假设几种情况,列表可以所有人看,但是删除只能够由固定的人删除.

猜你喜欢

转载自blog.csdn.net/qq_41723615/article/details/89333074
今日推荐