springMVC用法 以及一个简单的基于springMVC hibernate spring的配置
替代struts
1 web.xml中配置springmvc中央控制器
<?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" 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>springmvc</display-name> <!-- SpringMVC中央控制器 -->
<!-- Spring MVC 的Servlet,它将加载WEB-INF/mvc-servlet.xml 的
配置文件,以启动Spring MVC模块-->
<servlet>
<servlet-name>mvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 代表在容器启动时就初始化,不写的时候代表在第一次请求的时候完成初始化,
数字越小初始化越靠前-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc</servlet-name>
<!-- 在spring中要写/而不是/* -->
<url-pattern>/</url-pattern>
</servlet-mapping> <!-- Spring 容器启动监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--spring服务层配置文件都放在以applicationContext开头的xml文件中,比如数据源 事务等-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext*.xml</param-value>
</context-param> </web-app>
2
web.xml 中定义了一个名为 mvc 的 Spring MVC 模块,按照 Spring MVC 的契约,需要在
WEB-INF/mvc-servlet.xml 配置文件中定义 Spring MVC 模块的具体配置。mvc-servlet.xml
的配置内容如下所示:
在WEB-INF建立xxx-servlet.xml 其中xxx代表 web.xml中的<servlet-name>mvc</servlet-name>
名字一致,所以我们在这里建立mvc-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
<!-- 有一个用途是可以返回一个对象 ,其他的暂时不知道-->
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
<!-- 组件扫描 扫描springmvc的controller部分 -->
<!--对包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能-->
<context:component-scan base-package="com.kaishengit.controller"/>
<!-- 使用上面导入的schema/mvc 启用注解-->
<mvc:annotation-driven/> <!-- 静态资源 **该目录及其子目录
<img alt="" src="/static/image/kaola.jpg" width="300">
-->
<mvc:resources location="/static/" mapping="/static/**"/> <!-- 单纯的跳转,比如跳转到静态网页等 比如请求根的时候到index.jsp -->
<mvc:view-controller path="/" view-name="index"/> <!-- 视图解析器 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<!-- 让它支持jstl -->
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<!-- 前缀 -->
<property name="prefix" value="/WEB-INF/views/"/>
<!-- 后缀 -->
<property name="suffix" value=".jsp"/>
</bean> <!-- 文件上传解析器 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 解析request的编码 ,Default is ISO-8859-1 -->
<property name="defaultEncoding" value="UTF-8" />
<!-- 设置最大允许的大小(字节)。-1表示没有限制(默认) 1024*1024*10=10MB -->
<property name="maxUploadSize" value="1048576000" />
<!--被允许的最大的内存的大小,Default is 10240 bytes -->
<property name="maxInMemorySize" value="20480" />
<!-- 一个类似懒加载的属性.可以定义该属性.让解析文件的时候再抛异常,然后Controller中定义异常处理的方法 -->
<property name="resolveLazily" value="true" />
</bean> </beans>
3 写controller组件
import java.io.File;
import java.io.IOException;
import java.io.InputStream; import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; import org.apache.commons.io.FileUtils;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes; import com.kaishengit.entity.User;
/*我们可以看出 HelloController 和一般的类并没有区别,
它没有实现任何特殊的接口,因而是一个地道的 POJO。让这个 POJO特殊就是 Spring MVC 的注解!*/
/*@Controller、@Service 以及 @Repository 和 @Component 注解的作用是等价的:
* 将一个类成为 Spring 容器的 Bean。由于 Spring MVC 的 Controller 必须事先是一个 Bean,
* 所以 @Controller 注解是不可缺少的。 */
@Controller
/* 类似与namespace */
@RequestMapping("/book")
public class HelloController {
/* 与struts不一样的是返回值可以有也可以没有void
struts请求方式是加@action注解,springmvc是加@RequestMapping(value="/upload",method=RequestMethod.POST)
当只写@RequestMapping(method=RequestMethod.POST)的时候默认请求/book(也就是namespace)路径
代表请求的路径是/book/upload,以post的方法提交
return "hello";跟前面配置的视图解析器拼凑成一个路径:就代表前往WEB-INF/views/hello.jsp页面
return "book/hello"跟前面配置的视图解析器拼凑成一个路径:就代表前往WEB-INF/views/book/hello.jsp页面*/ --------------------------------------------------- // 两个相同的请求路径/book/add 但是请求方式不一样,这个get在这里代表我要去添加页
@RequestMapping(value="/add",method=RequestMethod.GET)
// 想使用的东西都可以从参数中传进来
public ModelAndView add(HttpSession session,HttpServletRequest request,HttpServletResponse response) {
// 页面传参方式1(使用的是request) 返回值是ModelAndView
ModelAndView mav = new ModelAndView();
mav.addObject("name", "Rose");
// 去哪里
mav.setViewName("book/add");
// 放进session中
session.setAttribute("name", "sessionName");
// 放入application中,先用session获取application
ServletContext application = session.getServletContext();
application.setAttribute("name", "appName"); System.out.println("add");
return mav;
} /* 两个相同的请求路径/book/add 但是请求方式不一样,这个get在这里代表我要去添加页
@RequestMapping(value="/add",method=RequestMethod.GET)
public String add(Model model) {
//页面传参方式2(使用的是request),返回值是String
model.addAttribute("name","jeck"); return "/book/add";
}*/ // 接受表单的值只需要传入表单的name属性值,username要与表单中要传进来的name属性值一致
@RequestMapping(value="/add",method=RequestMethod.POST)
public String save(String username) {
System.out.println(username);
return "redirect:/book/add";
} // 或者当表单非常多的时候,用对象的形式 // 两个相同的请求路径/book/add 但是请求方式不一样,这个post在这里代表我要去提交表单
@RequestMapping(value="/add",method=RequestMethod.POST)
/* 表单形式不用变,不用写成name="user.username"仍然用原来的name="username"
springmvc会自动尝试能不能加入到user对象中,不能加进去的仍然是原来的方式接受比如String email
RedirectAttributes指操作成功后给一个提示,然后刷新后提示消失*/ public String save(User user,String zip,RedirectAttributes redirectAttributes) {
System.out.println("Hello,"+user.getUsername() + " : " + user.getPassword() + " : " + zip); redirectAttributes.addFlashAttribute("message", "保存成功");
// 表示重定向到/book/add 重定向是get请求
return "redirect:/book/add";
} -------------------------------------------------------------------- /* 比如ajax返回一个字符串,直接return "xxx"
但是返回值是String的时候,springmvc会认为返回的是路径的名字--
所以加@ResponseBody表示这是一个相应的内容*/
@RequestMapping("/message")
public @ResponseBody String showMessage() {
return "I love you";
}
// 如果返回的是user(实体类),会自动转换成json 需要导入jackson-all-1.8.10.jar
@RequestMapping(value="/user",method=RequestMethod.GET,produces={"application/json;charset=UTF-8"})
// 也可以加在方法之上
@ResponseBody
public User showUser() {
User user = new User();
user.setUsername("张三丰");
user.setPassword("123123");
return user;
} ------------------------------------------------------- /* url传参 */
@RequestMapping("/show/{id1}")
/* 传三个参数,以逗号隔开在url中就是用逗号分隔,用斜杠隔开,在url中就是用斜杠分隔
@RequestMapping("/show/{id1},{id2},{id3}") */
/* 加正则表达式
@RequestMapping("/show/{id1:\\d+},{id2:\\d+},{id3:\\d+}") */
/* 接受url中传来的参数,但是我们不知道这个传来的参数是从url中获得的,还是从表单中获得的,
所以加@PathVariable,代表是从url中获取 参数中的id分别对应上面传来的id,名字要一致*/
public String show(@PathVariable int id1,@PathVariable int id2,@PathVariable int id3) {
System.out.println("ID:" + id1);
System.out.println("ID:" + id2);
System.out.println("ID:" + id3);
return "book/add";
}
/* 如果还想用原始的?xx=xx传参看下面,有的时候还真需要原始的?传参 */
----------------------------------------------------------------
@RequestMapping("/page")
public String page(int p) {
System.out.println("pageNo:" + p);
return "book/add";
} @RequestMapping("/page")
/* 如果参数可有可无@RequestParam,默认是1 */
public String page(@RequestParam(value="p",required=false,defaultValue="1")int p) {
System.out.println("pageNo:" + p);
return "book/add";
} -------------------------------------------------------------
/* 文件上传 commons-fileupload-1.2.2.jar commons-io-2.4.jar
需要在xxx-servlet.xml配置文件上传解析器*/ <form action="/book/upload" method="post" enctype="multipart/form-data">
<input type="file" name="pic">
<input type="text" name="username">
<button>保存</button>
</form> @RequestMapping(value="/upload",method=RequestMethod.POST)
/* MultipartFile接受文件对象 */
public String upload(String username,MultipartFile pic) { if(!pic.isEmpty()) {
/*<!-- System.out.println("fileName:" + pic.getName());获取的是表单中name的属性pic -->*/
System.out.println("fileName:" + pic.getOriginalFilename());
System.out.println("fileSize:" + FileUtils.byteCountToDisplaySize(pic.getSize()));
System.out.println("Content-type:" + pic.getContentType());
System.out.println("username:" + username);
/* 方法1: 获得输入流了,接下来你懂的
InputStream inputStream = pic.getInputStream();
*/
try {
/* 方法2: */
pic.transferTo(new File("C:/kaola.jpg"));
} catch (Exception e) {
e.printStackTrace();
} } else {
System.out.println("file is empty");
} return "redirect:/book/add";
} }
好了,下面介绍一个spring springMVC hibernate的 框架搭建
--------------------------------------------------------------------
--------------------------------------------------------------------
--------------------------基于springMVC,hibernate,spring------------
--------------------------------------------------------------------
--------------------------------------------------------------------
首先是web.xml
<!-- 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" 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>springmvc</display-name> <!-- 字符集过滤器 -->
<filter>
<filter-name>characterEncodingFilter</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>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> <!-- OpenSessionInView -->
<filter>
<filter-name>openSessionInView</filter-name>
<filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>openSessionInView</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> <!-- SpringMVC中央控制器 -->
<!-- Spring MVC 的Servlet,它将加载WEB-INF/mvc-servlet.xml 的
配置文件,以启动Spring MVC模块-->
<servlet>
<servlet-name>mvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- Spring 容器启动监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--spring服务层配置文件都放在以applicationContext开头的xml文件中,比如数据源 事务等-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext*.xml</param-value>
</context-param> </web-app>
web.xml 中定义了一个名为 annomvc 的 Spring MVC 模块,按照 Spring MVC 的契约,需要在
WEB-INF/annomvc-servlet.xml 配置文件中定义 Spring MVC 模块的具体配置。mvc-servlet.xml
的配置内容如下所示:
在WEB-INF建立xxx-servlet.xml 其中xxx代表 web.xml中的<servlet-name>mvc</servlet-name>
名字一致,所以我们在这里建立mvc-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
<!-- 有一个用途是可以返回一个对象 ,其他的暂时不知道-->
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
<!-- 组件扫描 扫描springmvc的controller部分 -->
<!--对包中的所有类进行扫描,以完成Bean创建和自动依赖注入的功能-->
<context:component-scan base-package="com.kaishengit.controller"/>
<!-- 使用上面导入的schema/mvc 启用注解-->
<mvc:annotation-driven/> <!-- 静态资源 **该目录及其子目录-->
<mvc:resources location="/static/" mapping="/static/**"/> <!-- 单纯的跳转,比如跳转到静态网页等 比如请求根的时候到index.jsp -->
<mvc:view-controller path="/" view-name="index"/> <!-- 视图解析器 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
<!-- 让它支持jstl -->
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<!-- 前缀 -->
<property name="prefix" value="/WEB-INF/views/"/>
<!-- 后缀 -->
<property name="suffix" value=".jsp"/>
</bean> <!-- 文件上传解析器 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 解析request的编码 ,Default is ISO-8859-1 -->
<property name="defaultEncoding" value="UTF-8" />
<!-- 设置最大允许的大小(字节)。-1表示没有限制(默认) 1024*1024*10=10MB -->
<property name="maxUploadSize" value="1048576000" />
<!--被允许的最大的内存的大小,Default is 10240 bytes -->
<property name="maxInMemorySize" value="20480" />
<!-- 一个类似懒加载的属性.可以定义该属性.让解析文件的时候再抛异常,然后Controller中定义异常处理的方法 -->
<property name="resolveLazily" value="true" />
</bean> </beans>
spring
根目录配置applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"
> <!-- Controller在之前的配置springmvc的时候已经扫描过了.扫描的时候记得把去除掉 -->
<context:component-scan base-package="com.kaishengit">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan> <!-- 配置数据源 -->
<context:property-placeholder location="classpath:jdbc.properties"/>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="url" value="${jdbc.url}"/>
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="username" value="${jdbc.name}"/>
<property name="password" value="${jdbc.password}"/>
<property name="minIdle" value="5"/>
<property name="maxActive" value="10"/>
<property name="maxWait" value="5000"/>
</bean> <!-- Hibernate SessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="packagesToScan" value="com.kaishengit.pojo"/>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</prop>
</props>
</property>
</bean> <!-- Hibernate事务管理器 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean> <tx:annotation-driven transaction-manager="transactionManager"/> </beans>
ehcache.xml
<?xml version="1.0" encoding="UTF-8"?>
<ehcache> <diskStore path="java.io.tmpdir"/> <defaultCache
maxElementsInMemory="1000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
/> <!--
<cache name="com.kaishengit.pojo.User"
maxElementsInMemory="100"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
/>
-->
</ehcache>
jdbc.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///book?useUnicode=yes&characterEncoding=UTF-8
jdbc.name=root
jdbc.password=root
springMVC用法 以及一个简单的基于springMVC hibernate spring的配置的更多相关文章
- 手写一个简单版的SpringMVC
一 写在前面 这是自己实现一个简单的具有SpringMVC功能的小Demo,主要实现效果是; 自己定义的实现效果是通过浏览器地址传一个name参数,打印“my name is”+name参数.不使用S ...
- struts1:(Struts重构)构建一个简单的基于MVC模式的JavaWeb
在构建一个简单的基于MVC模式的JavaWeb 中,我们使用了JSP+Servlet+JavaBean构建了一个基于MVC模式的简单登录系统,但在其小结中已经指出,这种模式下的Controller 和 ...
- 一个简单的基于 DirectShow 的播放器 2(对话框类)
上篇文章分析了一个封装DirectShow各种接口的封装类(CDXGraph):一个简单的基于 DirectShow 的播放器 1(封装类) 本文继续上篇文章,分析一下调用这个封装类(CDXGrap ...
- 一个简单的基于 DirectShow 的播放器 1(封装类)
DirectShow最主要的功能就是播放视频,在这里介绍一个简单的基于DirectShow的播放器的例子,是用MFC做的,今后有机会可以基于该播放器开发更复杂的播放器软件. 注:该例子取自于<D ...
- 并发编程概述 委托(delegate) 事件(event) .net core 2.0 event bus 一个简单的基于内存事件总线实现 .net core 基于NPOI 的excel导出类,支持自定义导出哪些字段 基于Ace Admin 的菜单栏实现 第五节:SignalR大杂烩(与MVC融合、全局的几个配置、跨域的应用、C/S程序充当Client和Server)
并发编程概述 前言 说实话,在我软件开发的头两年几乎不考虑并发编程,请求与响应把业务逻辑尽快完成一个星期的任务能两天完成绝不拖三天(剩下时间各种浪),根本不会考虑性能问题(能接受范围内).但随着工 ...
- 构建一个简单的基于MVC模式的JavaWeb
零晨三点半了,刚刚几个兄弟一起出去吼歌,才回来,这应该是我大学第二次去K歌,第一次是大一吧,之后每次兄弟喊我,我都不想去,因为我还是很害怕去KTV,或许是因为那里是我伤心的地方,也或许是因为我在那里失 ...
- 从零开始搭建一个简单的基于webpack的vue开发环境
原文地址:https://segmentfault.com/a/1190000012789253?utm_source=tag-newest 从零开始搭建一个简单的基于webpack的react开发环 ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(四)——一步一步教你如何撸Dapr之订阅发布
之前的章节我们介绍了如何通过dapr发起一个服务调用,相信看过前几章的小伙伴已经对dapr有一个基本的了解了,今天我们来聊一聊dapr的另外一个功能--订阅发布 目录:一.通过Dapr实现一个简单的基 ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统
本来想在Dpar 1.0GA时发布这篇文章,由于其他事情耽搁了放到现在.时下微服务和云原生技术如何如荼,微软也不甘示弱的和阿里一起适时推出了Dapr(https://dapr.io/),园子里关于da ...
随机推荐
- Aone新拉分支
1.进入Aone新建项目 2.测试人员填huyangjun和husong 3.进入后拉分支 4.弄个日常普通环境 5.吧环境跑起,绑定Host就可以
- 内核加载与linux的grub
计算机系统的启动是一个复杂的过程,启动过程大致可以分为以下几个阶段: +------计算机系统启动流程----------------------------- ------------------- ...
- JS 修改元素
var ele; window.onload=function(){ ele=document.createElement('div'); ele.id='myEle1'; ele.style.bor ...
- C# 读书笔记之访问虚方法、重写方法和隐藏方法
C#允许派生类中的方法与基类中方法具有相同的签名:基类中使用关键字virtual定义虚方法:然后派生类中使用关键字override来重写方法,或使用关键字new来覆盖方法(隐藏方法). 重写方法用相同 ...
- step_by_step_G+入门-在线服务
第一步:先大概介绍下我们的窗体的布局框架,窗体大体分为以下3大块: 顶部:也就是大的模块划分(比如首页,软件管家,在线服务等) 内容区域:根据选择的不同的顶部模块,进行不同的内容展示: 底部:设置,下 ...
- 射频识别技术漫谈(20)——RC系列射频接口芯片
目前基于13.56MHz的射频识别技术主要有ISO14443A.ISO14443B.ISO15693和FELICA技术.针对13.56MHz的射频识别技术,NXP开发了一系列名字以RC(Radio C ...
- HDU 2852 KiKi's K-Number
权值线段树 #include <cstdio> #include <cstring> const int N=200000,M=220000; int k,q,x,y,sum[ ...
- APUE学习之------------信号
在学习一个东西的时候我总是喜欢去问这样做的理由是什么?也喜欢去究竟他的历史.从中你可以发现所有的设计都在不断改进出来的,从来就没有一个设计是一开始就是完美的.好比是人,之初,性也许是善的,如果我们不通 ...
- JAVA 线程学习 - Thread了解
public class ThreadKnow { private TimeThread timeThread; private boolean flag; public ThreadKnow() { ...
- 关于GROUP BY的应用
前面收藏了别人的SQL语句操作,可是没有实战,也未知学的如何 正好今天有个事需要做一下 (sql server 2000) 三个表:stuInf,sType,sinInf分别为学生信息表,类型表,信息 ...