springmvc知识点

导读:本篇文章讲解 springmvc知识点,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

1.springmvc知识点

ServletContext

对于一个web应用,其部署在web容器中,web容器提供其一个全局的上下文环境,这个上下文就是我们的ServletContext,其为后面的spring IoC容器提供一个宿主环境

spring上下文,springmvc上下文

springMVC容器只负责创建Controller对象,不会创建service和dao,并且他是一个子容器。而spring的容器只负责Service和dao对象,是一个父容器。子容器可以看见父容器的对象,而父容器看不见子容器的对象,这样各司其职。 

2.url匹配优先级

springmvc知识点

不论有多少个/*/*,都比/**优先级高.

当有多个*和多个‘{}’时,命中单个路径多的,优先越高。

前缀匹配优先级低,比非前缀的低

*,{}越少优先级越高

路径越短优先级越高

3.form表单出现中文乱码,在web.xml文件添加如下过滤器

<!--解决乱码的过滤器-->
    <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-mapping呢,是让所有的请求都过一下这个filter,即让过滤器过滤一下子-->
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

4.在idea中测试http响应可以在test文件夹下新建一个user.http(只要以.http结尾就行),格式和帮助文档在建立该文件后,右上角会提示,具体文档全文如下

### Send POST request with json body
POST https://httpbin.org/post
Content-Type: application/json

{
  "id": 999,
  "value": "content"
}

### Send POST request with body as parameters
POST https://httpbin.org/post
Content-Type: application/x-www-form-urlencoded

id=999&value=content

### Send a form with the text and file fields
POST https://httpbin.org/post
Content-Type: multipart/form-data; boundary=WebAppBoundary

--WebAppBoundary
Content-Disposition: form-data; name="element-name"
Content-Type: text/plain

Name
--WebAppBoundary
Content-Disposition: form-data; name="data"; filename="data.json"
Content-Type: application/json

< ./request-form-data.json
--WebAppBoundary--

### Send request with dynamic variables in request's body
POST https://httpbin.org/post
Content-Type: application/json

{
  "id": {{$uuid}},
  "price": {{$randomInt}},
  "ts": {{$timestamp}},
  "value": "content"
}

###

5.当需要传递复杂参数的时候,需要建立一个vo类,专门用于传参

@Data
public class QueryVo {
    private String sortField;
    private User user;
    private Long[] ids;
    private List<User> userList;
    private Map<String, User> userMap;
}

6.entity对象的属性应该保持和数据库中的字段名完全一致.

7.越靠近po,复用度越低

8.springmvc知识点

9.避免每次添加新的包都手动引入的办法: project settings->artifacts->左上加号->WEBapplication EXPLORED ->第二个选项(from module) 然后重新部署tomcat, configuration->Deployment  然后reload下maven

10.thymeleaf  乱码,添加第二行

<bean class="org.thymeleaf.spring4.view.ThymeleafViewResolver">
        <property name="templateEngine" ref="templateEngine" />
        <property name="characterEncoding" value="utf-8" />
        <property name="order" value="1"></property>
</bean>
<bean id="templateResolver"
          class="org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver">
        <property name="prefix" value="/WEB-INF/templates/" />
        <property name="suffix" value=".html" />
        <property name="templateMode" value="HTML" />
        <property name="cacheable" value="true" />
        <property name="characterEncoding" value="utf-8" />
</bean>

11. 上传文件时,要在springmvc的配置文件中添加如下内容(application.xml)

<!--    文件上传bean-->
    <bean id="multipartResolver"
          class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!--上传文件的最大大小,单位为字节 -->
        <property name="maxUploadSize" value="17367648787"></property>

        <!-- 上传文件的编码 -->
        <property name="defaultEncoding" value="UTF-8"></property>
</bean>

同时要注意表单的名字和controller中的

@RequestParam("textFile") 的参数要一致 
public R upload(@RequestParam("textFile") CommonsMultipartFile file){
<form action="/application/upload" enctype="multipart/form-data" method="post">
    <input type="file" class="file" name="textFile"/>
    <input type="submit" />
</form>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/88884.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!