day64_SpringMVC学习笔记_02

目录 1、springmvc对多视图的支持 2、SSM整合小案例 2.0、需求 2.1、使用eclipse,创建一个动态web工程并导入jar包 2.2、web.xml配置文件(入口) 2.3、springmvc.xml配置文件 2.4、bean.xml配置文件(相当于applicationContext.xml) 2.6、编写代码 2.7、springmvc文件上传 3、页面缓存 3.1、简单理解缓存原理 3.2、浅谈互联网架构 3.3、实现页面缓存 3.4、在SSM项目中使用Oscache 4、使用springmvc的其他视图 4.1、整合freemarker视图 5、拦截器 5.1、局部拦截器 5.2、全局拦截器 5.3、测试 5.4、拦截器应用:用户身份认证 6、springmvc整合Hibernate 回到顶部 1、springmvc对多视图的支持 (1)导入xml格式视图支持的jar包   注意:springmvc本身就支持xml格式,所以不用导入其他支持的jar包了。 (2)在springmvc.xml中配置支持多视图 com.itheima.domain.User   小结:通过以上配置,模拟了WebService对多视图的支持的功能。 (3)配置javabean,即在绑定的类User中加入对xml格式视图转换的注解:@XmlRootElement (4)在web.xml中配置约定访问的url springmvc /rest/* (5)定义Controller // 多视图支持 // 返回的是对象,把返回的对象转换成json格式视图和xml格式的视图 @RequestMapping("multiView") public User multiView() { User user1 = new User(); user1.setId(1); user1.setUsername("晓艺"); user1.setAge("26"); user1.setAddress("物资学院"); user1.setBirthday(new Date()); return user1; } (6)访问   根据官方文档约定:访问的时候需要加上响应的扩展名。   即:访问json格式的数据,需要加上json扩展名;访问html格式的数据,需要加上html的扩展名;访问xml格式的数据,需要加上xml的扩展名。   根据我们web.xml文件的访问约定:扩展名.do是访问jsp页面的。   我们约定rest目录下所有以json和xml扩展名都支持相应的视图。 我们访问json格式数据的访问形式如下: 我们访问xml格式数据的访问形式如下: (7) 默认创建:注解处理器映射器、注解处理器适配器、并提供对json格式数据的支持。 在springmvc.xml中进行配置: 但是注意:此时javaBean不能添加注解@XmlRootElement了。@XmlRootElement表示提供对xml视图支持。 回到顶部 2、SSM整合小案例 2.0、需求 实现商品查询列表,从mysql数据库中查询商品信息。 2.1、使用eclipse,创建一个动态web工程并导入jar包 其中Dynamic web module version版本选择 2.5,这样兼容性好一些; Default output folder设置为 WebRoot\WEB-INF\classes Content directory设置为 WebRoot 更改JRE System Library[J2SE-1.5]为 JRE System Library[jre1.7.0_80] 删掉没用的库:EAR Libraries 增加服务器运行环境库 Server Runtime,不然jsp文件会报错。 创建完项目后,将整个项目的编码改为UTF-8。 操作步骤:选中项目右键 --> Properties --> Resource --> Text file encoding --> Other中选择UTF-8。 对于动态的java web项目,为了工程目录结构的清爽,我们将引入的jar包放到“Web App Libraries”中,可以通过“小三角”选择是否“Show 'Referenced Libraries' Node ”进行调节。 对于普通的java项目,为了工程目录结构的清爽,我们将引入的jar包放到“Referenced Libraries”中,可以通过“小三角”选择是否“Show 'Referenced Libraries' Node ”进行调节。 导入jar包   包括:spring(包括springmvc)、mybatis、mybatis-spring整合包、数据库驱动、第三方连接池、jstl、c3p0管理数据源、log4j、junit。   参考:“mybatis与springmvc整合全部jar包”目录。 本次案例共导入28个jar包。如下图所示: 2.2、web.xml配置文件(入口) web.xml day63_SpringMVC_01 characterEcoding org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 characterEcoding /* springmvc org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:springmvc.xml springmvc *.do springmvc /rest/* org.springframework.web.context.ContextLoaderListener contextConfigLocation classpath:beans.xml index.html index.htm index.jsp default.html default.htm default.jsp 2.3、springmvc.xml配置文件 2.4、bean.xml配置文件(相当于applicationContext.xml) bean.xml 2.6、编写代码 mapper层(dao层):   mapper接口代码使用Mybatis的逆向工程生成的。 service层:   ItemsService.java public interface ItemsService { public List findAll(); public Items findById(Integer id); public void saveOrUpdate(Items items); public void deleteById(Integer id); }   ItemsServiceImpl.java @Service public class ItemsServiceImpl implements ItemsService { // 注入接口对象(Mapper接口使用代理类) @Resource private ItemsMapper itemsMapper; public List findAll() { List list = itemsMapper.findAll(); return list; } public Items findById(Integer id) { Items items = itemsMapper.selectByPrimaryKey(id); return items; } public void saveOrUpdate(Items items) { itemsMapper.updateByPrimaryKey(items); // 商品id通过页面隐藏域传过来的 } public void deleteById(Integer id) { itemsMapper.deleteByPrimaryKey(id); } } controller层(web层/Action层):   ItemsController.java @Controller @RequestMapping("/items") public class ItemsController { // 注入service对象 @Resource private ItemsService itemsService; // 查询所有商品方法 @RequestMapping("list") // springmvc使用Model对象进行页面数据回显,Model对象相当于javaweb时所学的application对象(应用域对象),所以Model对象中的数据,在页面上可以通过EL表达式进行获取。 // 有了Model对象,才可以向对象中放值,那么Model对象该如何创建呢? // 答:“由于springmvc中放到方法里面的对象会自动被创建”,那么我们就把Model对象放到方法里面。 public String list(Model model) { List itemsList = itemsService.findAll(); model.addAttribute("itemsList", itemsList); return "itemsList"; } // 修改商品方法 @RequestMapping("editById") public String editById(Integer i
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信