版权声明:转载请随意! 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>
现在假设几种情况,列表可以所有人看,但是删除只能够由固定的人删除.