当前位置:首页 > 时尚 > javaweb sprintmvc 如何搭建

javaweb sprintmvc 如何搭建

2026-10-17 05:33:18 [休闲] 来源:力不从心网

JavaWeb Spring MVC 搭建:从零到能跑通,何搭其实没那么玄乎

Spring MVC 搭建的何搭核心就一句话:把请求路由到方法,把方法返回值渲染成视图。何搭别被那些铺天盖地的何搭架构图唬住,实际动起手来,何搭比你想的何搭简单。

先准备好工具:JDK 8+,何搭Maven 3.x,何搭IDEA(或者 Eclipse,何搭但 IDEA 真香)。何搭我假设你已经建好了一个空的何搭 Maven webapp 项目——如果连这一步都卡住,那先补 Maven 基础,何搭别硬撑。何搭

第一步:塞依赖,何搭配 web.xml

打开 pom.xml,何搭加 Spring MVC 的核心依赖。别贪多,先加 spring-webmvc 和 javax.servlet-api(scope 选 provided)。版本选 5.x 稳定版,别追新,5.3.x 就够用。

<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.30</version> </dependency>

然后配置 web.xml。这一步是历史遗留的坑,但绕不开。Spring MVC 的核心是 DispatcherServlet,所有请求都先经过它。配置如下:

<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>

注意 url-pattern 写成 / 而不是 *.do,这样 RESTful 风格的路由才能正常工作。你要是还抱着 .do 后缀的习惯,那等于把自己锁死在十年前。

第二步:写 springmvc.xml,开启注解驱动

在 resources 目录下新建 springmvc.xml。核心就三件事:开启组件扫描、开启注解驱动、配置视图解析器。

<context:component-scan base-package="com.example.controller"/> <mvc:annotation-driven/> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/"/> <property name="suffix" value=".jsp"/> </bean>

组件扫描让 Spring 找到你写的 @Controller 类。注解驱动是必须的,否则 @RequestMapping 根本不会生效。视图解析器决定了 Controller 返回的字符串对应哪个 JSP 文件——比如返回 "home",就找 /WEB-INF/views/home.jsp。

这里有个小坑:/WEB-INF/ 目录下的 JSP 不能直接通过浏览器访问,只能由 Spring 内部转发。这是好事,防止用户绕过 Controller 直接看页面,但新手容易以为自己写错了。

第三步:写个 Controller 验证一下

创建一个 HomeController,放在你扫描的包路径下。别想复杂,先跑通再说。

@Controller public class HomeController {  @RequestMapping("/home") public String home() {  return "home"; } }

在 /WEB-INF/views/ 下建一个 home.jsp,随便写点内容。然后启动 Tomcat,访问 http://localhost:8080/你的项目名/home。看到页面了?恭喜,Spring MVC 已经跑起来了。

要是 404,多半是 web.xml 的 url-pattern 写错了,或者 springmvc.xml 没被加载。检查 Tomcat 启动日志,看有没有报错信息,比瞎猜管用。

第四步:加个参数接收,感受一下灵活性

光能跳转页面没什么意思,Spring MVC 的强项在于参数绑定。比如接收一个 GET 请求的 name 参数:

@RequestMapping("/greet") public String greet(@RequestParam("name") String name, Model model) {  model.addAttribute("name", name); return "greet"; }

在 greet.jsp 里用 EL 表达式 ${ name} 就能显示出来。这里有几个细节值得注意:@RequestParam 可以设 required=false 加默认值,避免参数缺失时报 400。Model 对象往页面传数据,比用 HttpServletRequest.setAttribute() 干净多了。

我见过太多人上来就折腾 RESTful 风格、JSON 交互、拦截器,结果连最基础的请求转发都没搞明白。先把这套跑通,再谈进阶。Spring MVC 的入门曲线其实平缓得很,卡住你的往往不是框架本身,而是对 HTTP 协议和 Servlet 规范的理解不够。

搭建过程中最容易翻车的几个点:spring-webmvc 版本和 servlet-api 版本不兼容(Tomcat 9 用 javax,Tomcat 10 用 jakarta,别混);Maven 依赖没刷新导致类找不到;web.xml 头声明版本太低不支持注解。这些坑我都踩过,每次解决都靠看日志——别怕报错,把堆栈信息读完,答案就在里面。

最后说句实在话:Spring MVC 说白了就是一套封装好的 Servlet 工具集。你只要理解了一个 HTTP 请求从浏览器出发,经过 DispatcherServlet 分发到 Controller 方法,再返回视图的完整链路,剩下的都是细节。跑通这个最小示例,后面加数据库、加拦截器、加 REST API,都是在这个骨架上添砖加瓦罢了。

(责任编辑:时尚)

推荐文章
  • 免费渗透电视剧在线观看完整版

    免费渗透电视剧在线观看完整版 凌晨两点十七分,我第三次点开那个标着“高清无删减”的链接。缓冲圈转了四十秒,跳出来的是三十秒赌场广告,然后画面卡在男女主角对视的瞬间——男主角的眼皮眨到一半,像被谁按了暂停键。这大概就是免费看剧的代价 ...[详细]
  • 站长站seo

    站长站seo 去年帮一个做机械配件的外贸客户看站,他问我:“站长站seo跟普通seo有啥区别?”这问题问得挺实在。我打开他后台,发现他花大价钱买的“站群系统”里,八十多个站点全是同一套模板,标题就换了个城市名,内容 ...[详细]
  • 浏览器内核检测

    浏览器内核检测 打开任何一个网页,浏览器都在替你做一件事:把服务器发来的HTML、CSS和JavaScript翻译成你能看见、能点击的页面。干这个活的核心部件,就是浏览器内核,也叫渲染引擎。你写的代码在Chrome里 ...[详细]
  • 招标网站

    招标网站 去年三月,我帮一家做环保设备的小公司查一个政府采购项目的中标结果。打开某招标网站,搜索框里输入关键词,跳出来47页信息。翻到第9页,才看到那个项目的名称——但中标金额那一栏是空的,要注册会员才能看。注 ...[详细]
  • pbootcms独立手机端自定义表单

    pbootcms独立手机端自定义表单 去年给一个做机械配件的客户改站,对方突然提了个要求:手机端打开的产品详情页,要单独挂一个“获取图纸”的按钮,点进去填表单,字段和PC端完全不同——不要公司名,只要姓名、微信号、产品型号。默认的Pboo ...[详细]
  • 哪个浏览器能看违禁网站

    哪个浏览器能看违禁网站 没有哪个浏览器能让你合法地看违禁网站。这句话得放在最前面说。不管Chrome、Firefox、Edge还是Safari,它们都只是工具,真正决定你能打开什么网页的,是你所在地区的网络规则和运营商层面的 ...[详细]
  • seoul英文怎么读

    seoul英文怎么读 “Seoul”这个词,十个人里有八个会读成“西哦”或者“秀儿”,剩下两个干脆念“首尔”的拼音。先给个准话:英语里标准读法是 /soʊl/,跟“soul”灵魂)完全同音。对,就是那个 soul。 我第一 ...[详细]
  • 端口扫描和漏洞扫描的区别是什么

    端口扫描和漏洞扫描的区别是什么 端口扫描只干一件事:确认目标主机上哪些端口是开着的。它不关心这些端口后面跑的是什么服务、有没有已知漏洞、能不能被利用。就像你挨个敲门,只听里面有没有人应声,至于开门的是谁、带没带武器,你不管。 漏洞扫 ...[详细]
  • 黑彩平台官网

    黑彩平台官网 赌徒老周的手机里存着十七个网址,每个都长得不一样。他管那个红黑配色的叫"主站",界面干净得像正规理财APP,客服头像是个穿西装的中年男人,说话永远带句"尊敬的VIP用户"。直到某天凌晨三点,这个"主站 ...[详细]
  • 织梦dede如何去除power by dedecms

    织梦dede如何去除power by dedecms 打开织梦DedeCMS搭建的网站,翻到页面底部,大概率会看到一行不太起眼的文字:“Power by DedeCMS”。这东西官方默认带着,版权标识,删不删取决于你。但很多人还是想把它去掉,原因无非两种 ...[详细]
热点阅读