java SpringMvc笔记

ops/2024/10/9 11:25:52/

springMVC

   M:模型层,包含实体类,业务逻辑层,数据访问层;

   v: 视图层,html,javascript,vue等

  c:控制层,它是用来接收客户端的请求,并返回响应客户端的组件,Servelet组件

SpringMVC

   1、轻量级,基于MVC的框架

    2、具备IOC和AOP

   3、完全基于注解开发

client(客户端)-(http请求)-tomcat-control(携带数据的优化)

3、基于注解的springmvc框架开发的步骤

   1、新建项目,选择webapp模板;

   2、修改目录,添加缺失的test,java.resources(两套),并修改目录属性

   3、修改pom.xml文件,添加springmvc的依赖,添加servelet的依赖;

   4、添加springmvc.xml的配置文件,指定包扫描,添加视图解析器;

删除web.xml文件新建web.xml

分析web请求

 web请求

 index.jsp请求-DIspatcherServlet(核心处理器)-springmvc的处理器

DIspatcherServerlet必须在web.xml中注册

5、@RequestMapping详细注解(用映射访问服务器访问的路径)

 1)注解加到方法上,是为了此方法注册一个可以访问的名称

@Controller//交给spring 去创建对象

public class MyDemo {

@RequestMapping("/demo")

public String demo(){

return "main";//可以直接跳到jsp上

}

}

<a href="${pageContext.request.contextPath}/demo.action">页面跳转</a>

2)此注解可以加到类上,相当于包名(虚拟路径),区分不同类名相同action的名称

@RequestMapping("/zar")

public class MyDemo1 {

3)区分get和post的请求

6)5种数据提交的优化方式

  1、单个数据提交

2、对象封装数据提交

在提交请求,保证请求参数的实体类型与成员变量的名称保持一致,可以自动创建对象,自动类型转换,自动封装到对象中3WT4g ,自动提交数据

  通过封装类完成数据提交;

3、动态占位符的提交

   仅限于超链接:一杠一直,一杠一大括号,

4)映射名称不一致

   提交请求参数与action方法的形参名称不一致使用注解来解析@RequestParam

5)、手工提交

@RequestMapping("/five")

public String five(HttpServletRequest request){

String name= request.getParameter("2name");

int age= Integer.parseInt(request.getParameter("2age"));

System.out.println("姓名:" + name +"姓名:"+ age);

return "main";

   

7、中文乱码的解决方案

   (1)web.xml中配置中文编码过滤器 fileter解决post请求乱码

<filter>

<filter-name>encode</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>

<init-param>

<param-name>forceRequestEncoding</param-name>

<param-value>true</param-value>

</init-param>

<init-param>

<param-name>forceResponseEncoding</param-name>

<param-value>true</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>encode</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

  

  8、action的返回值

      String:客户端资源的地址,自动拼接前缀和后缀,还可以自动屏蔽拼接字符串,可以返回指定的路径;

      object: 返回json格式对象,自动将对象或集合转为json,使用jacson工具进行转换,必须添加jackson依赖,一般用于ajax请求

     void:无返回值,用于ajax;

     基本数据类型用于ajax;

9、完成ajax请求访问服务器,返回学生集合

 1)添加jacson依赖

2)在webapp目录下新建js目录,添加jquery函数库

3)在index.jsp上添加导入函数库

4)在action添加注解@ResponseBody,用来处理ajax请求

5)在sptringmvc.xml添加注解驱动<mvc:annotationdriven>,他用来解析@ResponseBody

14、springMVC拦截器

   1、针对请求和响应进行的额外处理,在请求和响应的时候添加预处理,后处理和最终处理

   2拦截器的执行时机

     preHandle:在请求之前进行操作,预处理;

     postHandle:在请求处理之后,但结果还没有渲染前进行操作,可以改变相应

    aftercompletion:所有请求响应结束后善后工作,清理对象,关闭资源,善后处理

拦截器实现的方式

   继承HandlerInterceptorAdapter

  实现 HandlerInterceptor接口

拦截器实现的步骤

  1、改造登陆方法,在session中存储用户信息,用于进行权限验证

  2、开发拦截器的功能,实现handlerInterceptor接口,重写preHandle()方法;

  3、在springmvc.xml文件中注册拦截器

   

  


http://www.ppmy.cn/ops/14089.html

相关文章

Arcgis 定义投影、投影变换、导出栅格为tif、矢量转tif

目录 一、Arcgis 定义投影 1、定义投影 2、设置平移 二、投影变换 1、栅格数据的投影变换 2、矢量数据的投影变换

AI-数学-高中-43常见函数的导数

原作者视频&#xff1a;【导数】【一数辞典】2常见函数的导数_哔哩哔哩_bilibili

宜搜科技死磕港交所上市:从搜索引擎到广告投放,业绩疲态凸显

近日&#xff0c;宜搜科技控股有限公司&#xff08;下称“宜搜科技”&#xff09;向港交所递交招股书&#xff0c;计划在香港主板上市&#xff0c;中银国际为其独家保荐人。 值得注意的是&#xff0c;宜搜科技已在资本市场辗转多年。该公司曾于2014年向纽交所递交上市申请&…

MongoDB应用:forEach方法实际应用

项目场景 今日的工作中有个需求是按照条件修改MongoDB集合中某个字段的值。之前都是用kettle或者代码处理&#xff1b;但是对于短频、偶尔的修改&#xff0c;上述方式实在是浪费时间。所以研究了下如何通过写MongoDB的 shell去实现。 代码呈现 在做语法说明之前&#xff0c…

python+django校园社交高校交友网站2x7r5.

本课题使用Python语言进行开发。代码层面的操作主要在PyCharm中进行&#xff0c;将系统所使用到的表以及数据存储到MySQL数据库中&#xff0c;方便对数据进行操作本课题基于WEB的开发平台&#xff0c;设计的基本思路是&#xff1a; 前端&#xff1a;vue.jselementui 框架&#…

spring的bean创建流程源码解析

文章目录 IOC 和 DIBeanFactoryApplicationContext实现的接口1、BeanFactory接口2、MessageSource 国际化接口3、ResourcePatternResolver&#xff0c;资源解析接口4、EnvironmentCapable接口&#xff0c;用于获取环境变量&#xff0c;配置信息5、ApplicationEventPublisher 事…

【Python】爬虫-基础入门

目录 一、什么是爬虫 二、爬虫的主要用途 三、学会爬虫需要掌握的技能 四、爬虫使用的语言 五、编写爬虫需要的库&#xff0c;以python为例 六、爬虫示例-python 示例一 示例二 示例三 一、什么是爬虫 爬虫&#xff0c;又称网络爬虫或网页爬虫&#xff0c;是一种用来自…

web前端框架设计第六课-样式绑定

web前端框架设计第六课-样式绑定 一.预习笔记 1.class属性绑定 给P标签绑定一个类样式&#xff0c;类名为active。当active取值为true时&#xff0c;表示绑定样式成功&#xff0c;取值为false时&#xff0c;取消绑定 以对象形式给P标签绑定多个类样式 以数组形式给P标签绑定多…