博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
最基本springMVC,响应页面请求
阅读量:6916 次
发布时间:2019-06-27

本文共 6364 字,大约阅读时间需要 21 分钟。

        前几天整个最基本的MVC配置都弄了小半天,基础还是很弱,还是花时间整理一下。

        逻辑:页面通过一个点击事件访问后台接口,后台返回一个数据给jsp,jsp弹出即可。

        1.首先是在pom.xml中导入需要的依赖,spring的几个基础包加一个servlet和一个fastjson包

        

1     
2
junit
3
junit
4
4.12
5
test
6
7 8
9
10
org.springframework
11
spring-core
12
5.0.8.RELEASE
13
14
15
16
org.springframework
17
spring-context
18
5.0.8.RELEASE
19
20
21
22
org.springframework
23
spring-webmvc
24
5.0.8.RELEASE
25
26
27
28
javax.servlet
29
javax.servlet-api
30
3.1.0
31
provided
32
33 34
35
36
com.alibaba
37
fastjson
38
1.2.47
39

2.配置文件spring-context.xml,demo比较简单,直接用一个xml,不分什么spring-MVC.xml了

  

1 
2
12 13 14
15
16
17
18
19
20
21 22
23
25
26
27 28 29
30
31
32
33
34
35
36
37
38
text/html;charset=UTF-8
39
application/json;charset=UTF-8
40
41
42
43
44
45 46
因为在web.xml的DispatcherServlet中拦截的为"/",也就是所有的请求都会被拦截,这样会导致项目里的一些静态资源css,js,img等出现404的情况,可以在这里配置,也可以在 web.xml中配置,以放行静态资源,在DispatcherServlet的mapping中加一个default
default
*.map
*.js
*.css
*.png
*.jpg
下面是需要扫描的controller,也就是将该包下的所有类交给spring进行管理,在对应的controller类上加上@controller注解,表示它是一个接口
最下面那段配置,是因为向页面响应数据的时候报No converter found for return value of type: class com.alibaba.fastjson.JSONObject,fastjson转springMVC报 转换错误,加上那段配置解决。 3.web.xml
org.springframework.web.context.ContextLoaderListener
contextConfigLocation
classpath:spring-context.xml
characterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
characterEncodingFilter
/*
springServlet
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring-context.xml
1
springServlet
/
1)监听web容器启动 
org.springframework.web.context.ContextLoaderListener
在web.xml配置监听器ContextLoaderListener(listener-class)  ContextLoaderListener的作用就是启动Web容器时,自动装配ApplicationContext的配置信息。 因为它实现了ServletContextListener这个接口,在web.xml配置这个监听器,启动容器时,就会默认执行它实现的方法。在ContextLoaderListener中关联了 ContextLoader这个类,所以整个加载配置过程由ContextLoader来完成.它的API说明: 第一段说明ContextLoader可以由 ContextLoaderListener和ContextLoaderServlet生成。如果查看ContextLoaderServlet的API, 可以看到它也关联了ContextLoader这个类而且它实现了HttpServlet这个接口 ,第二段,ContextLoader创建的是 XmlWebApplicationContext这样一个类, 它实现的接口是WebApplicationContext->ConfigurableWebApplicationContext->ApplicationContext-> BeanFactory这样一来spring中的所有bean都由这个类来创建
2)  装载配置信息 
contextConfigLocation
classpath:spring-context.xml
这里导入配置文件spring-context.xml
3)字符编码过滤器 
characterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
characterEncodingFilter
/*
字符编码过滤器,这个过滤器是针对于浏览器每次请求进行过滤的 4)DispatcherServlet
springServlet
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring-context.xml
1
springServlet
/
程序的入口,所有的请求都会经过dispatchServlet进行处理,如果与后台controller能匹配则通过,否则不通过。
1
表示 让dispatchServlet与Tomcat容器一起启动。 4.后台接口controller
1 package cn.test.controller; 2  3  4 import com.alibaba.fastjson.JSONObject; 5 import org.springframework.stereotype.Controller; 6 import org.springframework.web.bind.annotation.RequestMapping; 7 import org.springframework.web.bind.annotation.ResponseBody; 8  9 import javax.servlet.http.HttpServletRequest;10 11 @Controller12 @RequestMapping("/test")13 public class SpringController {14     @RequestMapping("/index")15     @ResponseBody16     public JSONObject index(HttpServletRequest request){17         String username = request.getParameter("username");18         String password ="123456";19         JSONObject jsonObject = new JSONObject();20         jsonObject.put("password",password);21         return jsonObject;22     }23 }

加上@ResponseBody注解,向页面返回json格式的响应数据

5.jsp

1 <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2  3  4 

Hello World!

5 <%--
--%> 6 <%--
--%> 7
8 <%--
--%> 9 10 11 12 26 27

到此就结束了,点击你个傻鸟按钮,页面将弹出"123456"。

因为用的ajax请求,ajax是不支持重定向的,如果请求成功后要跳转到一个页面,可以在ajax的success函数里进行跳转。

或者使用表单提交数据,访问<form>标签中的action,再这后台进行跳转页面,去掉@responseBody注解,返回视图名字,经过spring.xml中配置的视图解析器即可。

项目打包时,默认是项目名+版本号,要去除版本号的话可以在pom.xml中加上

customAct
在build标签中加入即可。 有不对的地方,欢迎大家批评指着,谢谢。文章web.xml中配置的一些讲解,参考这篇博客,写的比较详细,感兴趣的可以去看 https://www.cnblogs.com/wkrbky/p/5929943.html
 
 
 

转载于:https://www.cnblogs.com/Yang777/p/9506067.html

你可能感兴趣的文章
《嵌入式Linux基础教程(第2版)》——1.2 嵌入式Linux现状
查看>>
科普丨【计算机视觉】OpenCV中直方图处理函数简述
查看>>
《量化金融R语言初级教程》一2.3 使用真实数据
查看>>
《C++编程惯用法——高级程序员常用方法和技巧》——1.4 使用CRC卡片来辅助设计...
查看>>
《Adobe Flash CS6中文版经典教程》——1.10 修改内容和舞台
查看>>
《Python高手之路》——2.7 Christophe de Vienne访谈
查看>>
《iOS 6高级开发手册(第4版)》——1.10节秘诀:Core Motion基础
查看>>
《Ansible权威指南》一1.6 Ansible应用场景
查看>>
HTML超链接
查看>>
Netty知识笔记
查看>>
wampserver如何配置。
查看>>
架构的演进,阿里资深Java工程师表述架构的腐化之谜
查看>>
android中调用native的fork函数后的现象观察
查看>>
javascript模拟new的实现
查看>>
IDEA快捷键
查看>>
微信小程序模板介绍
查看>>
JDK源码阅读-Iterable接口
查看>>
【算法刷题】2:寻找两个有序数组的中位数
查看>>
Linux学习笔记(三)-Linux 磁盘与文件系统管理
查看>>
站在巨人的肩膀上
查看>>