目录结构如下

aaarticlea/png;base64,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" alt="" />

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAH8AAAAZCAIAAACXcmYDAAACSklEQVRoge3Zv0vjYBgH8PevObIE7tBiKXJ/gkP2LO924HBk6XI6pCBHHLRLXBQOhwwF6Yu7gkMhkMGhJ8opVbOYq6VcCm+SNgUd3vwy1bTcBd57Y748lDfhfUv4vOkT2oInRnO9WwNBarvXtK/mLwNoX8C7TqlPM/+q/+HHr2JXLspvJQd9w3KKWozpHysfXy3qju9Cv/3903gyTdXP4y9MbQASAGyyqN/aWprVvzmTmdoAlvXd8TRVN2cy2YDW1hJt2ULrHzYq2PWx6zteXO546ng+dv3DRoW2bNH1beyfnN+dnN9dmkMb+5fmkBzaOEO/Ky0DQUNC+PVV0JIWUQIUw0ICqEqawkeTNUhm8HI3+c5tuRqtaooAiGiBtczq722s2NjnoMpBtb5/amO/vn9KDm3s722sZOjHuBoMx0hIgr48D5aVthXaiciwHENX+HiHgmqKgJe7hgaD+fPXsqw/GE04qFbWDyrrB4PRhAw4qA5Gk2z9xP0eHsZkqWlIAFVJT3wOXhmnPj1z50djlvUfhh658Tmo7hwZ0fj3n3Ee+hFQqT+jv12vEf2dI2Nts8VBdW2zRfbgYeht12tZnYd0gBfNeqbzxN0jU1BX+PAk6TxtubroWqb1zX6gT9Cjgdmfoy+IcObp6mQ9dRfQb4phi483uLj6DWnV7Huo09OvHi/ubdTpXdzb+tUj6vTMvteQVhfrPP9Lsad/a7m3lpd4javUTyVn/W9fP2dXqZ9M+Qsz4/rFrlyU30r5zyLNlPo0U+rTTKlPM895EgSpnxXpNAAAAABJRU5ErkJggg==" alt="" />

1.pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>spring_security_1</groupId>
<artifactId>spring_security_1</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>spring_security_1 Maven Webapp</name>
<url>http://maven.apache.org</url> <properties>
<!-- spring版本号 -->
<spring.version>3.2.4.RELEASE</spring.version>
<!-- mybatis版本号 -->
<mybatis.version>3.2.4</mybatis.version>
<!-- log4j日志文件管理包版本 -->
<slf4j.version>1.6.6</slf4j.version>
<log4j.version>1.2.9</log4j.version>
</properties>
<dependencies>
<!-- spring核心包 -->
<!-- springframe start -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- springframe end --> <!-- mybatis核心包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<!-- mybatis/spring包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.2</version>
</dependency>
<!-- mysql驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.29</version>
</dependency>
<!-- junit测试包 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency> <!-- 日志文件管理包 -->
<!-- log start -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- log end --> <dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency> <dependency>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.11.0.GA</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency> <dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>3.2.4.RELEASE</version>
</dependency>
</dependencies> <build>
<finalName>spring_security_1</finalName>
</build>
</project>

2.web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>spring_security_1</display-name> <context-param>
<param-name>contextConfigLocation</param-name>
<!-- 应用上下文配置文件 -->
<!-- 两种位置写法 -->
<!-- springMvc和spring security 两个配置文件 -->
<!-- <param-value>/WEB-INF/spring-servlet.xml</param-value> -->
<param-value>classpath:ApplicationContext.xml,classpath:spring-servlet2.xml,classpath:applicationContext-security.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener> <!-- spring securit start -->
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- spring securit start --> <!-- 配置spring核心servlet -->
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet> <!-- url-pattern配置为/ 拦截 -->
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping> </web-app>

3.ApplicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
<!-- 配置数据源-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost/spring_security?useUnicode=true&amp;characterEncoding=utf-8</value>
<!--springmybaitis是我的数据库 -->
</property>
<property name="username">
<value>cqyusp_dev</value>
</property>
<property name="password">
<value>cqyusp_dev</value>
</property>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
</bean>
<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="lqy.UserMapper"></property>
<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
</bean>
</beans>

4.applicationContext-security.xml

<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security.xsd"> <http auto-config="true" >
<access-denied-handler error-page="/accessDenied.jsp"/>
<intercept-url pattern="/login.jsp" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<intercept-url pattern="/admin.jsp" access="ROLE_ADMIN" />
<intercept-url pattern="/**" access="ROLE_USER" />
<form-login login-page="/login.jsp" authentication-failure-url="/login.jsp?error=true" default-target-url="/index.jsp" />
</http> <authentication-manager>
<authentication-provider>
<!-- <password-encoder hash="md5">
<salt-source user-property="username"/>
</password-encoder> -->
<jdbc-user-service data-source-ref="dataSource"
users-by-username-query="select username,password,status as enabled
from user
where username=?"
authorities-by-username-query="select u.username,r.name as authority
from user u
join user_role ur
on u.id=ur.user_id
join role r
on r.id=ur.role_id
where u.username=?"/>
</authentication-provider>
</authentication-manager> <!-- ApplicationContext配了数据源了 -->
<!-- <beans:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<beans:property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<beans:property name="url" value="jdbc:mysql://localhost/spring_security?useUnicode=true&amp;characterEncoding=utf-8"/>
<beans:property name="username" value="cqyusp_dev"/>
<beans:property name="password" value="cqyusp_dev"/>
</beans:bean> --> </beans:beans>

5.mybatis-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC
"-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<mappers>
<mapper resource="lqy/User.xml"/>
</mappers>
</configuration>

6.spring-servlet2.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 启动注解驱动的Spring MVC功能,注册请求url和注解POJO类方法的映射-->
<mvc:annotation-driven />
<!-- 启动包扫描功能,以便注册带有@Controller、@Service、@repository、@Component等注解的类成为spring的bean -->
<context:component-scan base-package="lqy" /> <!--这个包根据自己的项目来配置,我的是lqy-->
<!-- 对模型视图名称的解析,在请求时模型视图名称添加前后缀 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />
</beans>

再看看java文件

User.java

package lqy;

public class User {

    private String id;
private String username;
private String password;
private String status;
private String descn;
/**
* @return 返回 id。
*/
public String getId() {
return id;
}
/**
* @param id 设置 id。
*/
public void setId(String id) {
this.id = id;
}
/**
* @return 返回 username。
*/
public String getUsername() {
return username;
}
/**
* @param username 设置 username。
*/
public void setUsername(String username) {
this.username = username;
}
/**
* @return 返回 password。
*/
public String getPassword() {
return password;
}
/**
* @param password 设置 password。
*/
public void setPassword(String password) {
this.password = password;
}
/**
* @return 返回 status。
*/
public String getStatus() {
return status;
}
/**
* @param status 设置 status。
*/
public void setStatus(String status) {
this.status = status;
}
/**
* @return 返回 descn。
*/
public String getDescn() {
return descn;
}
/**
* @param descn 设置 descn。
*/
public void setDescn(String descn) {
this.descn = descn;
} }

UserMapper.java

package lqy;

public interface  UserMapper {
public User getUser(User user);
public void addUser(User user);
}

User.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="lqy.UserMapper">
<select id="getUser" parameterType="lqy.User" resultType="lqy.User">
SELECT id,username,password,status,descn FROM user WHERE id=#{id}
</select>
<insert id="addUser" parameterType="lqy.User" flushCache="true">
INSERT INTO user (id,username,password,status,descn) VALUES (
#{id},#{username},#{password},#{status},#{descn}
)
</insert> </mapper>

WelcomeConstroller.java

package lqy;
import java.util.Collection; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; @Controller
public class WelcomeConstroller { @Autowired
private UserMapper userMapper; @RequestMapping(value = "/welcome", method = RequestMethod.GET)
public String welcome(HttpServletRequest request,Model model) {
UserDetails userDetails = (UserDetails) SecurityContextHolder.getContext()
.getAuthentication()
.getPrincipal();
Collection<? extends GrantedAuthority> authorities = userDetails.getAuthorities();
model.addAttribute("authorities", authorities.toString());
model.addAttribute("username", userDetails.getUsername());
model.addAttribute("userDetails", userDetails);
return "/hello";
} @RequestMapping(value = "/testUser", method = RequestMethod.GET)
public String testUser(HttpServletRequest request,Model model) {
User user=new User();
//添加两条数据
user.setId("11");
user.setUsername("testUser");
userMapper.addUser(user);
return "/hello";
} @SuppressWarnings("resource")
public static void main(String[] args) {
ApplicationContext ctx=null;
ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
UserMapper userMapper=(UserMapper) ctx.getBean("userMapper");
User user=new User();
//添加两条数据
user.setId("10");
user.setUsername("123");
userMapper.addUser(user);
System.out.println("添加成功"); } }

运行main方法,成功

sql建表

-- 资源
CREATE TABLE resc(
id BIGINT,
NAME VARCHAR(50),
res_type VARCHAR(50),
res_string VARCHAR(200),
priority INTEGER,
descn VARCHAR(200)
);
ALTER TABLE resc ADD CONSTRAINT pk_resc PRIMARY KEY(id);
ALTER TABLE resc MODIFY id BIGINT AUTO_INCREMENT; -- 角色
CREATE TABLE role(
id BIGINT,
NAME VARCHAR(50),
descn VARCHAR(200)
);
ALTER TABLE role ADD CONSTRAINT pk_role PRIMARY KEY(id);
ALTER TABLE role MODIFY id BIGINT AUTO_INCREMENT; -- 用户
CREATE TABLE USER(
id BIGINT,
username VARCHAR(50),
PASSWORD VARCHAR(50),
STATUS INTEGER,
descn VARCHAR(200)
);
ALTER TABLE USER ADD CONSTRAINT pk_user PRIMARY KEY(id);
ALTER TABLE USER MODIFY id BIGINT AUTO_INCREMENT; -- 资源角色连接表
CREATE TABLE resc_role(
resc_id BIGINT,
role_id BIGINT
);
ALTER TABLE resc_role ADD CONSTRAINT pk_resc_role PRIMARY KEY(resc_id, role_id);
ALTER TABLE resc_role ADD CONSTRAINT fk_resc_role_resc FOREIGN KEY(resc_id) REFERENCES resc(id);
ALTER TABLE resc_role ADD CONSTRAINT fk_resc_role_role FOREIGN KEY(role_id) REFERENCES role(id); -- 用户角色连接表
CREATE TABLE user_role(
user_id BIGINT,
role_id BIGINT
);
ALTER TABLE user_role ADD CONSTRAINT pk_user_role PRIMARY KEY(user_id, role_id);
ALTER TABLE user_role ADD CONSTRAINT fk_user_role_user FOREIGN KEY(user_id) REFERENCES USER(id);
ALTER TABLE user_role ADD CONSTRAINT fk_user_role_role FOREIGN KEY(role_id) REFERENCES role(id); INSERT INTO USER(id,username,PASSWORD,STATUS,descn) VALUES(1,'admin','admin',1,'管理员');
INSERT INTO USER(id,username,PASSWORD,STATUS,descn) VALUES(2,'user','user',1,'用户'); INSERT INTO role(id,NAME,descn) VALUES(1,'ROLE_ADMIN','管理员角色');
INSERT INTO role(id,NAME,descn) VALUES(2,'ROLE_USER','用户角色'); INSERT INTO resc(id,NAME,res_type,res_string,priority,descn) VALUES(1,'','URL','/admin.jsp',1,'');
INSERT INTO resc(id,NAME,res_type,res_string,priority,descn) VALUES(2,'','URL','/**',2,''); INSERT INTO resc_role(resc_id,role_id) VALUES(1,1);
INSERT INTO resc_role(resc_id,role_id) VALUES(2,1);
INSERT INTO resc_role(resc_id,role_id) VALUES(2,2); INSERT INTO user_role(user_id,role_id) VALUES(1,1);
INSERT INTO user_role(user_id,role_id) VALUES(1,2);
INSERT INTO user_role(user_id,role_id) VALUES(2,2);

测试输入 http://localhost:8080/spring_security_1/login.jsp

aaarticlea/png;base64,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" alt="" />

登陆成功

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAbIAAADICAIAAAAC3/NYAAAbbklEQVR4nO2d7XNT153H9XfwN3jGL3Z2Zjvbndlhd2e37bTb2YZUaevsdpu2JClpt48kBGqVOEQQQhhShzaYEMAKIcKWMX4WYMkGifjZlmXZBmNj/CAZy7qW8AN2on1xda/O79xzH2TJNqbfz5wX1tU55557de5Hv3POta7t1StLBUm/oKn0l+fe++ar5f/yo9P/9qPjPy4r/eW5X58eZjMUar9Ipun5o7e2vQ1IuSbjTy395ZP0l2vpr9Lp9a/S6bX0k/RKOvnVV+vpr9Lr6VR6Pb2W/vKr9XR6Nb36ZTqd/nLbD2dnJdu2twBpsxO0uBMTPrVtTNDis59wge3EhE9tGxO0+OwnXGA7MeFT28YELSIhISGRBC0iISEhkWT7xptXkZCQkJDUZFsFAADAYHsMAACAAVoEAAACtAgAAIQctChJ0uzs7PDwcGdnZzAY9Pl8Pp8vGAz29PQMhsOzs7Ob10oAANgyLGlRkqTBcNjn83V0dg0PD0/PzMZisYQkJSQpFotNPnx4b2yso7Pr+vUbg+HwZrcYAAA2FRMtSpI0PDx869atwcFwLBZLPX5skBKSNDgYhhwBADsaIy1KktTT09PR2RWNRo2FyKb5eLy3ty8YDEqStGWHAQAAhcKW0iEWi7W1tQ8OhuMLC8lUKtc0PDx88+bNOq//ensHEhIS0g5KYi0mEolAIHB/fGIDQlTT1PSM3+9fWVlZBwCAnYNgEC2PnQcHw9YHznrp3thYR0dHGgAAdg6CaDESifT09M7H4/mEimrq6em9f/9+wds9NzdX8DoBACCt1WIikWhvb5+ZmbGivFuBYOBOh3Ge+MKCz+dbWVkpbLtDoVBhKwQAABlei5FIJBQatOLEq9fqX3+z9PU3S6/f9JkuvwwNDRk0YnV1NRKJ+P3+hoaGmpoav9/f399v3G5oEQCwSfBabGtrj8Zi1p34+pulB0sPLyaTBpnn43Gfz6fXgtnZ2ZaWloGBgUAg0NXVFQgEJicn3W53Q0PD7OysXiloEQCwSRAtzszMBIJ3cnLi62+W3vD5TYt80dEZi8W0u5+dnfX5fKlUKh6PDwwMuFwul8vV0NDgcrlqamrcbreeGUVa9JTYip152zLkLLaVeApX3w6h9WzpiarwdrfCiKe/heBZwZZkGBoaGhgYWEwmDdLV2jrWiddvtBrnl9Po3XuDg4PcvldXV1taWlZXV+WX0WhUFqKM2+2ORCJut1vY7h2sxdazpTLsRZ7nRvWtDYvj6ZdO/i1sPVt6tlWzNVx1QrQZ/A1DtNjV1TUyOlpwJy4mk2P3x7u6urh9RyIRdWM8HndpkGcbhfOMO0CLwuLMNdh6tjTzZ7jqhHLF043WcmqrfsbZwJEqXybaYk//9wHYcsggOhAITE1NWRw7C9OfP/yrsOyj+Xnt9KLf75+cnJycnBwYGHC73Votulyu1dVVv9+vbfdO1SIbsCgXJLnK1RfWcwpfPsvkfKjyV4iwGKwItJBosa2tfWZ2Vhju3fS3mTpRTsLisbk5rRZramq8Xq+eEGtqaiKRiJxN224zLYacxTYFWXL85sxWTwm3gdOiRynBKC5bhtlKKmJ3X+wM0SCP/4uO7djNFnOm0+l0uOqE8iJcdYKMs2UdaAbf4aoTpWerqk7IMZRaGZc7u79stWer9L2kFlQzZLcw/qEbdXQvbGG2ZKYhtFYDx4m0KB5Xg79xbIsMN2/ejM3NSYuL2tTY7LWoRWFxaXGxpcXL7bumpkZrQ7fb7fV6XS5XIBCQs9XX12vbbajFkLOYCjK7mXVkOp32lCivSWFVi6r3PCU2ZqtaifpCEBoym8Ls1csbh7tamUvbek7mb+3FH1bEolZ6tlXZrK2Aza0zZm89KxyOpgVeYmxNAmGazUCLZofI7NEsiBSfGVgRaCBavH379vj4uFBqCwnJdelzK4NoYfGp6em2tnZu38FgUFbh2NhYPB6Px+Nut7urq0teeBkbG5NXqL1e3qdpYy1mxUa285uVmrgAUmcQrbzg/KfmloNFwW4JvB9PVIV1YkDrObk/M15jtKMdbWtH5Hy0yBelvtPXiWxyUp6Qife4mM4oWtS2UCe7qeM0GWBFIIYMor/44ouR0bt6yyYJaZE14xsHHYHgHYtLLuMTE3fu3OH23d/fL0eF6mJ0KpWSQ0X1Tp2NLLlY1mLIWayGg+q7G9RitkImwOS1KA73+MFw6dnWHHJqq1VKlJYKfSGcqCyUFtW3BaNjza7E5yVHLTJnzGSSkG8MphWBDkSLocHBzq4uA7tt2IydXV3CG3TkcXQ8Hlc3yvdyq1qsqalRpcmy0UG0sjnkdHrY8bCnxGK0qDeIdqoVC4qroZ9mNM17i9jJWk6NJaq48SUZi2brzUmL4aoTlgbRVdyAljsMuRAZkFdlwmB22T0nLcpB9FlzxxnMQQDAQgbRExMTNbXX9CYHhaPpNw46AsEvjItIi4ve6zei0ah297Ozs+w0YjqdXl1d9Xq9DQ0N8mh6cnJS2G6zJRfhqgizmZltlMfPTovRYlpnOYepykN3Rpdc2CUDGvlp7iCxmFMTkfGLK8zKhX45Ey2S5hgsuQgORLsII8gmXM/R06Ka29zTfNuE1QFAsUmU+vr6h1NT8nNa9FJ8IVHJmPFg6WHj/NFYrL6+/smTJ8IWxOPxmpqagYGBeDwejUZlG3Z1ddXX1+s5MY1//stifnkXfgrtaVNK7u3BtCIwgESLi4uLvb29jY1NptEfGzNerWswzuz3+wcGBozb0d/fL9+sI69E9/f3C8fOKtBiBgtGKIgCwlVn2TUdZQWIsE2eIQN1a42CFYERvBbj8fhnn12emp62YsbGZm+z94ZxttjcnMfjWV5eLmy7oUXrFMgBzKry02MUbuUbgELAa3FxcXFoaOjKlSpTLVpMLS3ekZGRgrdbOFMJAAD5w88tyjQ2Nt4OBIxnDK2k24FAQ0PD2tradh8mAABYRRAtykPpy59/3tHZnU+c2NHZXb0Jw2cAANhUxNGiJEkzMzMXL17ccMx4OxCorKys/PxadUMrEhIS0g5KulqUJGl+ft595UpVlcf0lh3udpy6ujr3lSvT09PCUBQAAJ5mjLQo09HRUV5+uqmp2YoQm5qaKyoqfD7f/Py8ac0AAPAUYq5FSZLm5+dbWlpOnjxVVeW5fft2eGhYjh+jsdjDqamxsbHbgcD5C5UVFRWNjY3T09Ob3WgAANg8LGlRpbe3t6Wl5dKlS2fOVJw8eerDDz88c6bi/PnzNVevjoyMRKPRTWolAABsGblpEQAAnnlsCQAAAAzQIgAAEKBFAAAgQIsAAECAFgEAgAAtAgAAAVoEAAAC0eJx78g+94BBOu4d2a6GFoTJvtL7t39okCb7Sre7jWArQE8ABhAtvnKpJzi+pKbb95dujS/576Z8d1P+e6nW0eQrl3q2q6EFYbTthfXl1vVl3/qyb325dX3pxvrj62uPm9dSTWup5ifJxtG2F7a7jU8F/QMDJ0+V7z9wSJKk/QcO7T9wqKu7p6u7R/5b3njyVHn/wMB2t3SDoCcAA4gWX3Z1BseXbo6mboymboymvMPJ5uFkY2SxLixdDSXqhqSXXZ3b1dCCEGm1ry+3rj1uWEvVr6XqniRrnyzWPJGqVxPulYXPVhfckVb7drfxqaDsyNGB0GAqlZIkKZVKpVIp+ZdF5L/ljQOhwbIjR7e7pRsEPQEYQLT48wt3guNLGSeOpJqHkw1Di9cGpauhRHX/wtXBxM8v3DGszWW3CSlyBNU8QUeRzWazuxKJoKNIfiPoKMrmCTqK7C5Sa9BRZOM2cWUNdkcIeZ9fX/bJV8Ja5kqoWk18vrLw2XK8ciV+KeR93tp5SyRcdk2jEgmX3e4SvJdppKhdLrt+c03zqGeByWpQm/bU6iGHhKbsP3Aox0a77DbBaVObl/kABTmEpztBupzaIUxPaAF6glk3FvdMFflY9K4X7ixoPlRrxwg2DNHiz861B8eXro+kvCOp+sHEax94vvZS6T+8VPrKqerPuueq+hd+dq7dsDbxRZndatwNlI6g/dBFYhRvNO4yPY171pd9a6lra8naJ4ueVflKiF9ama9cnvtk+dHFnsY9hgdIjkq8d7vDJbeAO1i1UdZOgmZn4oPi3zDTopWdJRIJOSQ0JZVKWdiL3ZU9ZOZS1xy44ZWur8VMMfkPbue63wJ59YQNdGPyjaS+MPi02ALQ4lZDtPiTCl9wfKllONkUSe47VbX7d+Vlnu7D1d3//Jvyl064P++d/+nHbdOxR/q1mUWLVmOZoMPuCOp929pdhmGPUZfprPve+lLrk+TVzJWwcHkl/unK/MXluXNL0TNLsXPdDc/NP5qyVDM5luyLoKMoc7jyNvlyZotaOAlm1x1VDSsAdqtmN1sVLWb3E1S/IQx3bOEyt6RFFxuvGe40r55grRtb06LdbtcEuS67ze4QaVHJBC1uMkSL//vRjeD4UlMkWR+WvnHgr+/U9jZFpGuDC46q7n/d/5c/eSdeLG94+WNfc+89ndrMo8UiR1B8zdtd4otWWKWSlTOnaZcJXv2v9aXWJ4ue1cQV+UpYfnRhKVbxeKb88XT5/NCvuxue+6LuBxPD13TKZ+vmu7FL/TM7QhJrMaFtuJHIcuv/2tNloFh9a+Q7iJbbzVz+m6jF7Nmz29nvFMMa8+oJ1rqxpUF0kSPosmdOlWJClz1bDf2ac0GLWwPR4v+cbr419rguLFUNJJ5zul/7a9NfAtFTbdM/La//z7cv/6r27ovlDc2RxEsfeTX1GPYB2k0FHZwxYqYf6A8g2PzEpJmcRl2mveq7a4+vrybcK/MXl2JnUtMfJCfflcbflu7/afHBu9Ge/+5ueG554Wq7x3AApexaO5el9nBXgmqRP2hRI3W2mYfFxqGonk8MQ8c8BtGikbpdO59gGBDrTEqK8mTNotm/kYnz7wnG3TiRyyBa/S4NOoqKHA5lNsAwWjQ4VSBviBZfLG/w3U1+fCd2Jhj9yZ/rvvbq0e+XXdzz1oW/f8X52wt+WYuVXY9eLG8Q1kXkpv9x6X3NCisSz9BtVIutl7+zutiUmj6VfPh+cvLdxYl3pPGyxJhj4e5BafyIfDE8nv1L6+XvGJwyVXc6w3llus9Ei5Z0IDpXaqbMvkUngVaRuxZ9/jYrWvT528zOE2mDXrfII1pkd+Wyk3PIRO4a8u8Jpt1YbELyQjkf2RlidQ7GTIvQ4WZCtFhyqrZpWPooEP3hkcp/fO2954+5v/7a8a/vO/6LszfO3JmRtfhB+0zJqVphXeRaL7LbzSa/dT9cMssoms/bqBa9n357Je5JPnxv8cFRafyIdP9w4t4fF0YPxEf2S2N/ki+GxQdHvJ9+2+S0JVx2W1GRYEdBR5GtqCgz/mG0yK0PWezXopVmG3vE2dGWRrQWlrk2ZxAtXnLZLC0yA1rtyFa/0sL1BN3GWx1Ek6lENnCEFrcNosUfvO+pCS18//Anf/fjP/78w/rzndGL3dFPOqMftE+9559StfiD9z3CuvhokZ1l4cbIQrgwSOnwzNUg0KKmAqMu03TxW8uPPl2ccKqhwcLoG/Hh389HfpO4e0i9GJoufsv4rGW+3TUBlzqRqNEi1yy9S4a2XHA3CzkfQUdRZj5NE/wZrgqYk9fcYuYrwGVXGqceO/P56XcDsdFMtKgOqW2a70khefYEK92Y/6h0okUHM7hw2G1Kx+e16HIU2ewOaHFrIFp84d0rFW1j//TqkZdP11cEZ45cf/DW9QeOlolDzePOm5OqFl9494qwLs0qqvwxOjQBTjY/mXxhtWhTZ6BEwxJhtCiqlaP+/DeXoucyocHdN+Mj++PDv5sf+r9H4dcWRt5QL4b68980OGUuO7nJUnjnECvHzGlw6R0tWzO7MbumbXBwimDIymVCG2AwZiKRig75zS2yDpSvdnYiULC7/KPFXLWYZ0+w0I01E41CLWYjR+4zU77uyGw7osUtgmjRfvType5HZ25PnLkz8/b1B4dbJkpbJg42j7/ReL/s+gNZiydvTr54QqBFNQAgo6Ws4DII+pNSkrWiOrFMPn21sKWVCAG1H38jNfNR4u6hhdE34sN/mI/8Zj78q0eD++ZCr8SHfy9fDPNjb9Vf+K5u3TY+gAs6irhNQUcRO2602R2OInm0q+YzjRaD9NZg5gxwg2PdGrnrR+tFI20U4HZutg9k27wpWnTYla5neRCdZ08w78bcDaXGc4viU5L5VqWDDGhxKyBa/P47lz7piH0YmHm/bfo9/9S7rQ+Ptj48cuPBW96Jw94JWYs/PnHlRu+oWbXyAIpZIdHYJGH64bLXrxp/upSS2mtEzaVfqafiP5JTf5buH5HGDifulS7cPbgweiA+vH8+8rv5yG/li+Hahe+NDTULm6M/G6e8qbjKbmcuD5sSMQskxdXCFCJXkfmFLhxEcyu0vBf1v13edh7r7uk1dmJ3T+/bzmM6bWG/IQ1uKxDc5y14Tw9Fg+LBiGG0mE9P0B6t8PtL+1WZ/SQNomedbqw77wA/bgJEiwfONz//zqcG6Q8fNz2cjW1XW/On9eqvqj/6d4PU6nl1Ljq53c3cfnr7+suOHDX+qYiyI0d7+/q3u6UbBD0BGEC0ODY21tPT06VPOBweHx+fnZ3drubmiXyAnfrs9AMsFJIkJZPJZDKZSCTkP+QIUbtxu1u6QdATgAH4GVoAACBAiwAAQIAWAQCAAC0CAADB5gcAAMBgSwMAAGCAFgEAgAAtAgAAAVoEAAACtAgAAARoEQAACNAiAAAQoEUAACBAiwAAQIAWAQCAAC0CAAABWgQAAAK0WGhCzmKbrdgZyr2kp8Rms5V4Ct8kAEAuQIuFBloEYIcDLRaajWsRAPBUAC0WGmgRgB2OgRa117enhGzwlKgPqyVDv5CzWH2Dz17iyZQq8WT3oFeRXk3acvKb/GvacvEuuDy6PtNpivZEkNOWOWamcImHVsa0hgyitSWhWgC2hg1rkSrS41T+JKW0itDqjVcBU2kJ+zeTjyunWomTUVpUVn8Cz0iLuk3JtEV9yR0kfZl1XCY/PcXadnJnEhOPAGwFG9Wijl00ZfgipD7NtW4wAA05i6lNmHLya21gqvmbr2hjsDVozwM5TP6YZdlxLRfaXHO2sCADwBaxUS1mAh/uMtUWYRSiva5Nh+nsZj7q0pGv+V519mER2hSBq/RNlxY4mQ/A9aPa/HUOALBEHnOLgpk8dgKOQU8h4j3QmFAZc7J5c9ailtz8otsUgWI3VYuYXwRg88lnySWbS7mCDSOa3LTIv5ePFvOUiUFTtjpahBYB2HyMbtARykZ0YWYzGnkxNy3yudm5tly0WAAvGjRFZ9YAWgRgB2N43yKZ9s+Eher6CbduoLNUEHIW6ynCZBAtGk9vRIuaBRpPSa4r0QZN4RZRhO9CiwDsKExu56a3zRH76N8KyL6jszzM1K47t6h/O2BuWqSHsbH7FvXvTKRvFjtDGEQDsMPBf7kAAAABWgQAAAK0CAAABGgRAAAI0CIAABCgRQAAIECLAABAgBYBAIAALQIAACFXLYacxeQHcwr/bxfqHjwllv6pI+Qs3pbf2+qr3bfr2L7jka3fMwBgUzHQouAnuTK/qlXsDCn/i+YJseLS+WExWoMZGR2GQiFL/+9moMVN/eVWaBGAZxSr0aL2FwyZ/+S1GDJajOtohSGPh/vBf06xnpIcfrOngECLADyjGEeL7A/DkF/F0Xt2gWm4qPssLIvFsmo1KCxudoGBFgF4RtHXYijkYR6wx8VcnhJbcTH3ABVTNNGiOHw0DD+1RbjWsS91tdhWtuvYnr1tystIxe5je3ZV1imv+46fZl7K78rpdEWfmkmjxb7afZlsdHt1pVKc1iDXvLu2L5tBfretTFgPV1W2/QCAQmI2iFbCQX6iscTJKcd65GdTbSrWouFYW6hF7jfGyDMUxIat23tsz+5aRVCyhrLCqturSkcxVzqdzuhSyUa12Hf89J5dx8qq08rL2jptET6bItzMvlQbKvmrK9k66UvO7ACAgmH269yGU3OmGUxmE7UqVZ4eTR4wyv/qoCbizF2LxFbVlXt2nd63W3VcW5liH05q8luZbKwW9QbUgu2sZ4VRKpufdR/vQRrSAgAKhp4WyYKzYdTH/norP/7V/OoqtRp9pRbO1qJ94IBGi5w3+RuI9MbjfbX7WPftbctGiH21+zIqJKFiOq1syWZTFFZdSe2p7IS3qrpR1pmmfr4eZndc5Ki/UwBAnpgNoo3iPc0koHJPDfegA/KKvadHR4vKZr0nahlFj1a1mDVOpGL3sbJq2TKVdbK2SDSnSfK7jBb1AjfhdsaVOWtRm4goAQCFoKBaZN7IrhaXOJ3FmR/6Fy3c6K1vFxcL71nMtEcJQzWrQdYXnxX9tZVlzNVWtut0RV+6bq86jGWsJCjPaXELokXEhgBsBVa0aLp0olewxMlITFdxGVjD0edGZd9RF36yYaXgKc0W71SUw8PqSjY23He8toysnOjP3+Uztyhaz1GapKNFdloTALCZWLmdW/Q/fnqPz0ur7qKrJ/oGy4pX/IzBTFGn5gFUwiedkvDRZEmorWzXsX27T5PV5N2n9xEPtpXtYs0VqdgtXomu23tMuBJdt/eYZiVafZmTFvnF7nR1JVaiAdgMLP2Xi/h5dSWekCCb5pl4NB6kTw4U352TXclRnhitsZ9wTJ7m7Wu2Us45K3PjIe+a7F2ExvctytrS3m/IbqexZ25a5KuCEwHYHKz+8x/rJqHQ2NiNPkaV5lOEJgo3OY2p1QjCTM3j7Mk9PgAAsGF0tSj4oQgDdpqLhKu6OzRt97kE4FkDv7cIAAAEaBEAAAjQIgAAEKBFAAAgQIsAAECAFgEAgAAtAgAAAVoEAAACtAgAAARoEQAACNAiAAAQoEUAACBAiwAAQIAWAQCAAC0CAAABWgQAAAK0CAAABGgRAAAI0CIAABCgRQAAIECLAABAgBYBAIAALQIAAAFaBAAAArQIAAAEaBEAAAjQIgAAEKBFAAAgQIsAAECAFgEAgAAtAgAAAVoEAAACtAgAAARoEQAACNAiAAAQoEUAACBAiwAAQIAWAQCAAC0CAAABWgQAAAK0CAAABGgRAAAI0CIAABCgRQAAIECLAABAgBYBAIAALQIAAAFaBAAAArQIAAAEaBEAAAjQIgAAEKBFAAAgQIsAAECAFgEAgAAtAgAAAVoEAAACtAgAAARoEQAACNAiAAAQoEUAACBAiwAAQIAWAQCAAC0CAAABWgQAAAK0CAAABGgRAAAI0CIAABCgRQAAIECLAABAgBYBAIAALQIAAAFaBAAAArQIAAAEaBEAAAjQIgAAEKBFAAAgQIsAAECAFgEAgAAtAgAA4f8B25RCPD0zcqUAAAAASUVORK5CYII=" alt="" />

剩下jsp页面

hello.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<h2>${username }</h2>
<h3>${authorities }</h3>
</body>
</html>

accessDenied.jsp

<%@ page contentType="text/html;charset=UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Access Denied</title>
<style type="text/css">
div.error {
width: 260px;
border: 2px solid red;
background-color: yellow;
text-align: center;
}
</style>
</head>
<body>
<h1>Access Denied</h1>
<hr>
<div class="error">
访问被拒绝<br>
${requestScope['SPRING_SECURITY_403_EXCEPTION'].message}
</div>
<hr>
</body>
</html>

admin.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登录首页</title>
</head>
<body>
<span color="red">登录成功!</span>
</body>
</html>

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%String path=request.getContextPath(); %>
<%@ taglib uri="http://www.springframework.org/security/tags" prefix="sec" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登录首页</title>
</head>
<body>
<div>username : <sec:authentication property="name"/></div>
<span color="red">登录成功!</span>
<a href="<%=path %>/welcome">welcome</a>
</body>
</html>

login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<% String path=request.getContextPath(); %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>login</title>
</head>
<body> <div class="error ${param.error == true ? '' : 'hide'}">
${sessionScope['SPRING_SECURITY_LAST_EXCEPTION'].message}
</div>
<form action="${pageContext.request.contextPath}/j_spring_security_check" method="post">
<fieldset>
<legend>登陆</legend>
用户: <input type="text" name="j_username" style="width:150px;" value="${sessionScope['SPRING_SECURITY_LAST_USERNAME']}"/><br />
密码: <input type="password" name="j_password" style="width:150px;" /><br />
<input type="checkbox" name="_spring_security_remember_me" />两周之内不必登陆<br />
<input type="submit" value="登陆"/>
<input type="reset" value="重置"/>
</fieldset>
</form>
</body>
</html>

SpringMVC 3.2集成Spring Security 3.2集成mybaties的更多相关文章

  1. SpringMVC 3.1集成Spring Security 3.1

    这篇算是一个入门文章,昨天看见有网友提问,spring mvc集成spring security 的时候出错,揣测了一下问题木有解决.我就帮忙给搭建了一个集成框架他说可以,他告诉我这样的文章网上少.今 ...

  2. SpringMVC 3.2集成Spring Security 3.2

    参考:http://www.cnblogs.com/Beyond-bit/p/springmvc_and_springsecurity.html SpringMVC 3.2集成Spring Secur ...

  3. 【Spring】关于Boot应用中集成Spring Security你必须了解的那些事

    Spring Security Spring Security是Spring社区的一个顶级项目,也是Spring Boot官方推荐使用的Security框架.除了常规的Authentication和A ...

  4. SpringBoot 集成Spring security

    Spring security作为一种安全框架,使用简单,能够很轻松的集成到springboot项目中,下面讲一下如何在SpringBoot中集成Spring Security.使用gradle项目管 ...

  5. 关于Boot应用中集成Spring Security你必须了解的那些事

    Spring Security Spring Security是Spring社区的一个顶级项目,也是Spring Boot官方推荐使用的Security框架.除了常规的Authentication和A ...

  6. Spring Boot中集成Spring Security 专题

    check to see if spring security is applied that the appropriate resources are permitted: @Configurat ...

  7. SpringBoot集成Spring Security入门体验

    一.前言 Spring Security 和 Apache Shiro 都是安全框架,为Java应用程序提供身份认证和授权. 二者区别 Spring Security:重量级安全框架 Apache S ...

  8. SpringBoot集成Spring Security(7)——认证流程

    文章目录 一.认证流程 二.多个请求共享认证信息 三.获取用户认证信息 在前面的六章中,介绍了 Spring Security 的基础使用,在继续深入向下的学习前,有必要理解清楚 Spring Sec ...

  9. SpringBoot集成Spring Security(6)——登录管理

    文章目录 一.自定义认证成功.失败处理 1.1 CustomAuthenticationSuccessHandler 1.2 CustomAuthenticationFailureHandler 1. ...

随机推荐

  1. 《JavaScript程序设计》第2课:JS类型系统

    JS类型系统可以分为标准类型和对象类型,进一步标准类型又可以分为原始类型和引用类型,而对象类型又可以分为内置对象类型.普通对象类型.自定义对象类型. 1. 标准类型 标准类型共包括了6个分别是:und ...

  2. 全栈必备 JavaScript基础

    1995年,诞生了JavaScript语言,那一年,我刚刚从大学毕业.在今年RedMonk 推出的2017 年第一季度编程语言排行榜中,JavaScript 排第一,Java 第二,Python 反超 ...

  3. Android Weekly Notes Issue #251

    Android Weekly Issue #251 April 2nd, 2017 Android Weekly Issue #251. 本期内容: Android O新增的API: View的too ...

  4. Myeclipse8.5开发-安装一:Myeclipse8.5注册码生成程序

    环境:Myeclipces8.5 1.安装Myeclipces8.5. 2.打开Myeclipces新建任意项目. 3.新建MyEclipseKeyGen.java类.点击运行,控制台输入您的注册名, ...

  5. Ubuntu12.04嵌入式交叉编译环境arm-linu-gcc搭建过程,图解

    转载:王文松的博客Ubuntu12.04嵌入式交叉编译环境arm-linu-gcc搭建过程,图解 安装环境       Linux版本:Ubuntu 12.04    内核版本:Linux 3.5.0 ...

  6. Twitter数据抓取的方法(一)

    Scraping Tweets Directly from Twitters Search Page – Part 1 Published January 8, 2015 EDIT – Since I ...

  7. 使用react native制作的一款网络音乐播放器

    使用react native制作的一款网络音乐播放器 基于第三方库 react-native-video设计"react-native-video": "^1.0.0&q ...

  8. STM32学习笔记(二)——串口控制LED

    开发板芯片:STM32F407ZGT6 PA9-USART1_TX,PA10-USART1_RX; PF9-LED0,PF10-LED1; 一.串口1配置过程(不使用串口中断): 1.使能时钟,包括G ...

  9. WPF触屏Touch事件在嵌套控件中的响应问题

    前几天遇到个touch事件的坑,记录下来以增强理解. 具体是 想把一个listview嵌套到另一个listview,这时候如果list view(子listview)的内容过多超过容器高度,它是不会出 ...

  10. WF4.0以上使用代码完整自定义动态生成执行工作流Xaml文件

    给大家分享一下,如何完全使用代码自定义的创建生成工作流文件(用代码创建Xaml文件),并且动态加载运行所生成的工作流. 工作流生成后 在Xaml文件里的主要节点如下: 输入输出参数 <x:Mem ...