springmvc学习补充注意事项
一、入门
1、常规WEB应用的三层架构
view: jsp、html等
controller: 用于接收请求、转发请求
service: 用于处理业务逻辑
dao: 用于操作数据库
view+controller: 表现层
service: 业务层
dao: 持久层
2、spring MVC 的代码组织模式
首先,spring MVC 是一个表现层的框架
M:model
V:view
C:controller
可以理解为,由视图层(View)发送特定模型(Model)到控制层(Controller)
3、springmvc实现controller接口例子
java类代码:
//实现Controller的自定义控制类需要在web.xml中定义bean,以确认访问路径
public class Lu2Controller implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("date", "自定义");
modelAndView.addObject("id", "自定义");
modelAndView.setViewName("success");
return modelAndView;
}
}
springmvc配置(定义访问路径):
<!--自定义控制器-->
<bean name="/index" class="com.lyf.springmvc.cmd.Lu2Controller"/>
4、 九大组件源码的初始化处
DispatcherServlet类中onRefresh()函数调用的initStrategies(ApplicationContext context)函数中来做初始化
七、查漏补缺
1、JSP中EL表达式不能使用
原因:idea自动生成的web.xml 头部定义为2.3版本,导致在jsp中EL表达式不可用,可更换2.3版本至3.0版本
2.3版本
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
</web-app>
3.0版本
<?xml version="1.0" encoding="UTF-8"?>
<web-app
version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
</web-app>
2、Maven项目下HttpServletRequest 或 HttpServletResponse需引用的依赖包
idea,maven构建的java web工程中调用这两个类报红,需要在工程的pom.xml中添加以下依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
3、八种基本数据类型
链接:https://www.cnblogs.com/heima3/articles/11012763.html
4、SpringMVC访问静态资源的三种方式
链接:https://www.cnblogs.com/caoyc/p/5639078.html
5、Web.xml详解
链接:https://blog.csdn.net/believejava/article/details/43229361
6、pojo包装类型参数作为接收参数的坑
报org.springframework.beans.NullValueInNestedPathException错误,需要检查:
1.对比请求参数:表单中的属性和BEAN的属性名字必须一样
2.BEAN必须有默认构造函数
经测试这种传参方法不适用pojo类自定义类为内部类的情况
7、get请求URL带中文的解决方式
7.1 IDE外置tomcat配置
修改tomcat下server.xml的配置
<Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080"
protocol="HTTP/1.1" redirectPort="8443"/>
7.2 IDE 内置tomcat配置(maven插件配置)
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8080</port>
<path>/</path>
<!--URL按UTF-8进行编码,这样就解决了get请求url中文参数乱码-->
<uriEncoding>UTF-8</uriEncoding>
</configuration>
</plugin>
8、java中Map及Map.Entry详解
链接:https://blog.csdn.net/yaomingyang/article/details/78748130
9、Pattern和Matcher用法
链接:https://blog.csdn.net/weixin_42868638/article/details/82721489
10、spring Assert教程
链接:https://blog.csdn.net/neweastsun/article/details/80152756