javaweb sprintmvc 如何搭建
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有啥区别?”这问题问得挺实在。我打开他后台,发现他花大价钱买的“站群系统”里,八十多个站点全是同一套模板,标题就换了个城市名,内容
...[详细]
-
打开任何一个网页,浏览器都在替你做一件事:把服务器发来的HTML、CSS和JavaScript翻译成你能看见、能点击的页面。干这个活的核心部件,就是浏览器内核,也叫渲染引擎。你写的代码在Chrome里
...[详细]
-
去年三月,我帮一家做环保设备的小公司查一个政府采购项目的中标结果。打开某招标网站,搜索框里输入关键词,跳出来47页信息。翻到第9页,才看到那个项目的名称——但中标金额那一栏是空的,要注册会员才能看。注
...[详细]
-
去年给一个做机械配件的客户改站,对方突然提了个要求:手机端打开的产品详情页,要单独挂一个“获取图纸”的按钮,点进去填表单,字段和PC端完全不同——不要公司名,只要姓名、微信号、产品型号。默认的Pboo
...[详细]
-
没有哪个浏览器能让你合法地看违禁网站。这句话得放在最前面说。不管Chrome、Firefox、Edge还是Safari,它们都只是工具,真正决定你能打开什么网页的,是你所在地区的网络规则和运营商层面的
...[详细]
-
“Seoul”这个词,十个人里有八个会读成“西哦”或者“秀儿”,剩下两个干脆念“首尔”的拼音。先给个准话:英语里标准读法是 /soʊl/,跟“soul”灵魂)完全同音。对,就是那个 soul。 我第一
...[详细]
-
端口扫描只干一件事:确认目标主机上哪些端口是开着的。它不关心这些端口后面跑的是什么服务、有没有已知漏洞、能不能被利用。就像你挨个敲门,只听里面有没有人应声,至于开门的是谁、带没带武器,你不管。 漏洞扫
...[详细]
-
赌徒老周的手机里存着十七个网址,每个都长得不一样。他管那个红黑配色的叫"主站",界面干净得像正规理财APP,客服头像是个穿西装的中年男人,说话永远带句"尊敬的VIP用户"。直到某天凌晨三点,这个"主站
...[详细]
-
打开织梦DedeCMS搭建的网站,翻到页面底部,大概率会看到一行不太起眼的文字:“Power by DedeCMS”。这东西官方默认带着,版权标识,删不删取决于你。但很多人还是想把它去掉,原因无非两种
...[详细]

邮箱有效性验证网站
vbs满屏错误弹窗代码
漏洞交税
php文件包含漏洞利用
怎么用word制作流程图
