宁波实习day4

宁波实习day4

关于模糊查询的四种方法

https://www.jb51.net/article/48315.htm

跟着蒋老师做maven项目

刚上班,老师就分享屏幕带着我们一起做maven项目,虽然是很简单的实现一个查询全部的语句,但我还是收获到了很多。
之前自己用IDEA写的小项目都只是运用了一部MVC框架进行架构,然后需要在dao层的函数里面写上很多的java代码,来进行数据库的连接访问,但是今天的这个项目让我大开眼界。
利用maven意味着你可以利用xml文件实现底层的与数据库的连接访问,但在这个之前你需要熟悉maven对javaweb项目的架构,
主要就是在bean层封装好实体类,包括get set,带参数和不带参数的构造方法,tostring方法的重写,然后在dao层中定义接口的实现方法,在mapper里利用xml进行sql语句的编写,如果你之前都是自己一点点得到connect,resultset,preparastatement,来对数据库访问的话,你会觉得这样的架构有些不可思议,(封装的太完美了),然后就是service中的接口方法以及重写,最后最重要的就是controller,控制器中利用Spring注解(需要掌握)对方法进行编写,得到访问结果,传递参数,转向页面(需要注意的是返回的如果是bean中的实体或实体列表,方法的返回值类型是ModelAndView),而空类型返回的方法在这里需要返回String,因为需要重定向,这时return “redirect:—”

关于SpringMVC

1.springmvc概述
概述 一款表现层MVC框架.常用版本:4.x . 类似框架struts.
资源地址: www.spring.io

注: 执行流程.经典面试题.
springMVC : 1.springMVC的加载核心控制器:DispatcherServlet.
内部: 1.1:初始化方法中将进行各种组件解析器的加载.
initMultipartResolver(context);
initLocaleResolver(context);
initThemeResolver(context);
initHandlerMappings(context);
initHandlerAdapters(context);
initHandlerExceptionResolvers(context);
initRequestToViewNameTranslator(context);
initViewResolvers(context);
initFlashMapManager(context);
2. HandlerMappings核心组件:创建映射器:
将客户端的请求地址 : 用于匹配所有的@RequestMapping注解地址.
如果没有自定义的解析器
将采用默认的: BeanNameUrlHandlerMapping.
3. HandlerAdapters适配器: 可以负责调用找到的Controller对象和方法.
默认适配器: SimpleControllerHandlerAdapter

  1. ViewResolvers: 视图解析器. 当用户响应视图时,
    用作视图页面的解析展示.
    默认视图解析器: InternalResourceViewResolver.

所有的用户请求都将在DispatcherServlet中的doService()方法中实现:
1.匹配器的匹配.2.匹配成功后的适配器调用.
3.返回结果视图解析器的解析. 4.最终由DispatcherServlet完成响应.

2.第一个springmvc程序
2.1搭建项目环境.导入jar包.
2.2编写Controller与jsp.
2.3编写核心配置SpringMVC.xml.
2.4编写web.xml配置前端控制器.
Springmvc的加载控制器: DispatcherServlet
2.5测试请求响应.

3.springmvc请求参数映射.
3.1:直接封装到基本类型包装类对象参数上.
3.2:@RequestParam修饰参数实现封装并提供设置.
3.3:封装参数到实体对象中.
3.4:封装到数组中. 如果集合,在实体类中属性形式封装.
3.5:封装接收客户端参数: 采用原始办法: HttpServletRequest 实现获取参数.

4.springmvc响应数据与响应页面(涉及ajax请求与json响应)
4.1:ModelAndView
4.2:return “page”/”redirect:page”/”forward:page”
4.3:request / response

4.4:ModelAndView.
4.5:Model/ModelMap
4.6:@ModelAttribute(“u1”)
4.7:servletAPI. HttpServletRequest , HttpServletResponse , HttpSession,

4.8:@ResponseBody可以直接返回.
4.9:响应对象,集合,json字符串.
注: jackson-annotations-2.4.0.jar/jackson-core-2.4.2.jar/jackson-databind-2.4.2.jar

5.拦截器使用. 异常处理器. 类型转换器. 视图解析器.
拦截器: 实现HandlerInterceptor接口.
mvc:interceptors
mvc:interceptor

		<!-- 指定拦截器的拦截范围 :  -->
		<mvc:mapping path="/**"/>
		<!-- 指定拦截器的忽略的内容 :  -->
		<mvc:exclude-mapping path="/login"/>
		<!-- 拦截器自身 :  -->
		<bean class="com.hfxt.utils.MyInterceptor"></bean>
		
	</mvc:interceptor>
</mvc:interceptors>

类型转换器:

  1. 自定义类型转换器:
    implements Converter<String , Date>.

  2. 注册转换器在springmvc容器中.







    <mvc:annotation-driven conversion-service=“factoryBean”></mvc:annotation-driven>

  3. 当封装Date参数时,即会自动完成转换.
    异常处理器:controller层抛出的任何异常.

  4. 默认处理器:


  5. 自定义处理器:
    HandlerExceptionResolver接口实现类即可.

    视图解析器:


    	扩展解析的页面上的其他成员 : 可以预先提供一个属性对象,或域对象.提供给该页面.
    	<property name="attributes" ref="" ></property>
    	<property name="servletContext" ref=""></property>
    

6.springMVC上传功能(web上传下载功能).

补充:web项目中的上传下载:
1.首先需要上传jar包: commons-io.jar / commons-fileupload.jar
2.编写上传表单 :
表单类型声明 : enctype=”multipart/form-data”
3. 编写上传处理类:servlet. 将文件保存在: 服务器上.
4. 针对服务器上传成功的文件: 需要对外提供下载.
5. 针对服务器上传成功的图片: 需要页面展示.
回显照片: 将指定位置的照片地址显示在.
注: 需要通过服务器设置: 对外提供访问地址.
Tomcat/conf/server.xml :

下载: 基本的web下载方式.

  1. 获取下载指定的文件名.
  2. 设置下载方式通知客户端:
    response.setHeader(“content-disposition”, “attrachement;filename=”+ filename);
  3. 拼接path + filename 的资源完整路径. 进行字节流的读取. 并写入到response的响应流通道中.
  4. 释放关闭资源流通道.

1.springmvc容器中配置:





2.提供FIleUploadController:
MultipartFile file1封装上传文件对象.
file1.transferTo( file );

3.下载FIleDownController:
HttpHeaders headers = new HttpHeaders();
headers.add(“content-disposition”, “attachement;filename=1.jpg”);
ResponseEntity entity = new ResponseEntity(bs ,headers , HttpStatus.CREATED );
Return entity;

springMvc下载的方式二: 依然采用web下载方式实现.

7.其它.restful编程风格.字符编码解决方案.防止表单重复提交.
字符编码:可以作用post/响应编码. get需要单独设置.
org.springframework.web.filter.CharacterEncodingFilter
注:配置encoding=utf-8/forceEncoding=true
表单重复提交控制: 原理等同于u2处理解决方案 + 拦截器实现.
Restful编程:
@RequestMapping("/users/findUser/{id}")
getUser(@PathVariable(“id”) Integer id)

  1. ssh整合. spring + strutrs + hibernate. 现在采用: springmvc+spring+hibernate.
    整合步骤:

  2. spring + springmvc整合.
    1.1: 先引入相关jar包.
    1.2: 提供springMVC容器(扫描controller层. MVC注解的支持.和一些解析器组件).
    1.3:springMVC容器: 在web.xml中交给DispatcherServlet核心处理器加载.
    1.4:提供spring容器.(扫描各层.不包含controller. )
    1.5:基于web.xml核心配置: 加载spring容器.(spring加载监听器. )
    1.6:补充: springmvc默认还会具备过滤器: CharacterEncodingFilter.解决:post.
    注: 如果是Get请求,还需要进行全局配置URIEncoding.

  3. Spring(4.0) + hibernate整合+spring-orm.jar/spring-transaction.jar.
    2.1: 先引入相关jar包.
    2.2:基于spring容器: 集成1.数据源. 2.sessionFactory.
    3.提供声明式事务(service层).

  4. 编写整合实现功能.
    模拟测试功能: 新增.

  5. 编写controller处理器. 提供新增页面和成功提示页面.

  6. 编写Service服务层.

  7. 编写dao层.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值