[转载]使用IntelliJ IDEA开发SpringMVC网站(二)框架配置

news/2024/4/27 19:36:22/文章来源:https://blog.csdn.net/weixin_33752045/article/details/88572231

摘要
讲解如何配置SpringMVC框架xml,以及如何在Tomcat中运行
转载请注明出处:Gaussic(一个致力于AI研究却不得不兼顾项目的研究生)。

注:此文承接上一文:使用IntelliJ IDEA开发SpringMVC网站(一)开发环境

访问GitHub下载最新源码:https://github.com/gaussic/Sp...

文章已针对IDEA 2016做了一定的更新,部分更新较为重要,请重新阅读文章并下载最新源码。
另外:文中的附图部分仍然为旧版本,请参照自身版本进行配置。

五、SpringMVC框架配置

进行完上面的配置,那就说明现在基本的开发环境已经搭建好了,现在要开始进行SpringMVC的网站开发。

1、web.xml配置

打开srcmainwebappWEB-INF下的web.xml文件,稍微更新一下web.xml的版本,可以支持更高级的一些语法,如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"version="3.1"><display-name>SpringMVCDemo Web Application</display-name></web-app>

在<web-app>中加入一个servlet:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"version="3.1"><display-name>SpringMVCDemo Web Application</display-name><servlet><servlet-name>mvc-dispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>mvc-dispatcher</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
</web-app>

该servlet名为mvc-dispatcher(名称可修改),用于拦截请求(url-pattern为 / ,说明拦截所有请求),并交由Spring MVC的后台控制器来处理。这一项配置是必须的。

为了能够处理中文的post请求,再配置一个encodingFilter,以避免post请求中文出现乱码情况:

<filter><filter-name>encodingFilter</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><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param>
</filter>
<filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern>
</filter-mapping>

至此,web.xml配置完毕。

2、xxx-servlet.xml配置

在配置完web.xml后,需在web.xml同级目录下新建 mvc-dispatcher-servlet.xml(-servlet前面是在servlet里面定义的servlet名):

mvc-dispatcher-servlet.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"></beans>

MVC框架有model、view、controller三部分组成。model一般为一些基本的Java Bean,view用于进行相应的页面显示,controller用于处理网站的请求。

在srcmainjava中新建一个用于保存controller的package:

在controller包中新建java类MainController(名称并不固定,可任意取),并修改如下:

package com.gaussic.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;/*** Created by dzkan on 2016/3/8.*/
@Controller
public class MainController {@RequestMapping(value = "/", method = RequestMethod.GET)public String index() {return "index";}
}

(1)@Controller注解:采用注解的方式,可以明确地定义该类为处理请求的Controller类;

(2)@RequestMapping()注解:用于定义一个请求映射,value为请求的url,值为 / 说明,该请求首页请求,method用以指定该请求类型,一般为get和post;

(3)return "index":处理完该请求后返回的页面,此请求返回 index.jsp页面。

回到mvc-dispatcher-servlet.xml,进行相关配置。首先加入component-scan标签,指明controller所在的包,并扫描其中的注解(最好不要复制,输入时按IDEA会在beans xmlns中添加相关内容):

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><!--指明 controller 所在包,并扫描其中的注解--><context:component-scan base-package="com.gaussic.controller"/>
</beans>

再进行js、image、css等静态资源访问的相关配置,这样,SpringMVC才能访问网站内的静态资源:

<!-- 静态资源(js、image等)的访问 -->
<mvc:default-servlet-handler/>

再开启springmvc注解模式,由于我们利用注解方法来进行相关定义,可以省去很多的配置:

<!-- 开启注解 -->
<mvc:annotation-driven/>

再进行视图解析器的相关配置:

<!--ViewResolver 视图解析器-->
<!--用于支持Servlet、JSP视图解析-->
<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/><property name="prefix" value="/WEB-INF/pages/"/><property name="suffix" value=".jsp"/>
</bean>

关于controller如何找到视图文件,这里需要详细的说明。在 controller 的一个方法中,返回的字符串定义了所需访问的jsp的名字(如上面的index)。在jspViewResolver中,有两个属性,一个是prefix,定义了所需访问的文件路径前缀,另一是suffix,表示要访问的文件的后缀,这里为 .jsp。那么,如果返回字符串是 xxx ,SpringMVC就会找到 /WEB-INF/pages/xxx.jsp 文件。

完成以上配置后,mvc-dispatcher-servlet.xml文件如下图所示:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"><!--指明 controller 所在包,并扫描其中的注解--><context:component-scan base-package="com.gaussic.controller"/><!-- 静态资源(js、image等)的访问 --><mvc:default-servlet-handler/><!-- 开启注解 --><mvc:annotation-driven/><!--ViewResolver 视图解析器--><!--用于支持Servlet、JSP视图解析--><bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/><property name="prefix" value="/WEB-INF/pages/"/><property name="suffix" value=".jsp"/></bean>
</beans>

我们删除 webapp 目录下的 index.jsp 文件,在WEB-INF目录下新建文件夹pages,再在pages目录下新建 index.jsp,并修改为如下所示:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! --><title>SpringMVC Demo 首页</title><!-- 新 Bootstrap 核心 CSS 文件 --><link rel="stylesheet" href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css"><!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --><!-- WARNING: Respond.js doesn't work if you view the page via file:// --><!--[if lt IE 9]><script src="//cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script><script src="//cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script><![endif]-->
</head>
<body>
<h1>这里是SpringMVC Demo首页</h1><h3>出现此页面,说明配置成功。</h3><!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
<script src="//cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script><!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
<script src="//cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
</body>
</html>

这里使用了Bootstrap的CDN加速服务,如果要使用本地的Bootstrap,请前往Bootstrap官网下载,并放在 webapp 目录下,然后引入到 index.jsp 中,这里不做详细介绍。

现在,需要配置 Tomcat 来运行该项目。点击界面右上角的向下箭头,选择 Edit Configurations:

点击左上角的”+“号,选择Tomcat Server,(如果没有请选择最下方的33 items more,找到Tomcat Server),再选择Local:

进入如下界面:

点击 Application server 右边的 Configure,导入Tomcat 目录(项目已更新到Tomcat8,请按照自身版本导入):

在配置好tomcat的路径后,如下图所示,发现依然存在警告,且左方的Tomcat7图标上有一个错误标记,说明还没有配置完全:

我们还需要将项目部署到 Tomcat 服务器中。点击 Deployment,再点击右边的”+“号,添加一个Artifact:

选择第二个:war exploded,点击OK,这样,该项目就已经部署到了tomcat中:

再点击OK,整个Tomcat配置结束:

点击界面右上角的红框中的绿色箭头,就可以启动 Tomcat 了,其控制台输出将在 IDEA 下方显示

启动后,浏览器将自动弹出项目首页:

这样,说明配置完成。这里总结一下其相关机制:首先,浏览器访问 localhost:8080,后台controller拦截该请求,进行相应的处理(此处无),在跳转到视图 index.jsp进行显示。此后,将会进行详细的介绍。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_779161.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Firefox 66 发布,阻止网站自动播放声音

开发四年只会写业务代码&#xff0c;分布式高并发都不会还做程序员&#xff1f; >>> Firefox 66 发布了&#xff0c;此版本在桌面版中带来的新特性包括&#xff1a; Firefox 现在阻止网站自动播放声音&#xff0c;如果需要可以单独调整改进的搜索体验&#xff1a; 当…

【发现资源共同分享】介绍一些web前台开发比较不错的网站【2012-06-14更新】

1. 模板之家&#xff08;强烈推荐&#xff09;中国divcss 模板中的精品网站 这个网站中的有很多现成的divcss做的模板供大家之间使用&#xff0c;最主要的是它是免费滴。而且图片已经切好、css文件已经写好、html demo也已经写好&#xff0c;您只需要改下里面的内容即可。…

您需要搭建怎样的网站来帮助您赚取更多利润?

做为一个有竞争力的企业&#xff0c;拥有自己的门户网站就像是建设自已的厂房一样重要&#xff0c;因为在信息时代&#xff0c;潜在客户通过互联网获取产品方案信息&#xff0c;并做为定单参考&#xff0c;已经是很多企业采购节省成本的主要方式之一。(当然其他还有很多好处&am…

python多页网站目录_想爬取一个有很多页的网站,但是我不知道这个网站的准确页数。请问 Python 中如何用循环来实现呢?...

25 2019-07-27 17:28:21 08:00 1 solider245 就是一般意义上我们说的二分查找&#xff0c;一般的程序员应该都了解的。 如果你这方面有缺失&#xff0c;我时间不多&#xff0c;只能在这里简单解释一下&#xff1a;假设我有一个有序的整数数组&#xff0c;我想要查询里面一个数…

常见的网站各种类型的页面缓存时间及http头

转载于:https://blog.51cto.com/ceekay/1083378

20款非常棒的网站可用性测试工具

2019独角兽企业重金招聘Python工程师标准>>> 网站可用性是指用户能否有效地找到所需的信息或完成他的任务&#xff0c;效率如何以及是否让人有愉快满意的感受。如果网站可用性较差&#xff0c;会浪费用户的时间&#xff0c;大大降低网站的回头访问率&#xff0c;这对…

网站攻击软件_如何防范误植攻击 | Linux 中国

误植是一种引诱用户将敏感数据泄露给不法分子的方式&#xff0c;针对这种攻击方式&#xff0c;我们很有必要了解如何保护我们的组织、我们的开源项目以及我们自己。-- Sam Bocetta误植Typosquatting是一种引诱用户将敏感数据泄露给不法分子的方式&#xff0c;针对这种攻击方式&…

16个时髦的扁平化设计的 HTML5 CSS3 网站模板

创建网站最好办法之一是使用现成的网站模板或使用开源 CMS 应用程序。所以&#xff0c;今天这篇文章给大家带来的是16款基于 HTML5 & CSS3 的精美的扁平风格网站模板&#xff0c;大家可以借助这些优秀的网站模板创建自己的优秀网站。这些网站模板虽然是收费&#xff0c;但是…

如今的SEO与以往的SEO有何不同?

1. SEO的术语解释SEO在2000-2011年之间都是针对于主流搜索引擎友好度的一种网站站内外技术与内容的优化。通过接近搜索引擎算法的一种手段&#xff0c;所以称之为Search Engine Optimization (搜素引擎优化)。而从2011 – 2014年开始&#xff0c;搜索引擎优化不只局限在代码、内…

apache php网站,Apache,mysql,PHP搭建网站环境

须要用到三个压缩包&#xff1a;php各模块配置&#xff1a;Apache&#xff1a;下载&#xff0c;解压安装vc2015运行库bin目录下&#xff0c;管理员权限执行httpd -k install安装服务安装成功后&#xff0c;此目录下双击ApacheMonitor启动apache如出现错误(1.查看一下是不是端口…

使用ClipFinder HD搜索和查看多个视频网站

If you’re looking for an easy way to search through several video websites at once from your desktop, today we take a look at an app that does an excellent job. Ashampoo’s ClipFinder HD allows you to search and download videos from popular video sites f…

谭晓威个人博客网站

经过前一段时间的折腾&#xff0c;个人博客网站终于开始上线运作了&#xff0c;从选择主机到搭建环境&#xff0c;从注册域名到域名备案&#xff0c;特别是备案&#xff0c;很是麻烦呀&#xff0c;不过终于搞定了&#xff0c;在此打个小广告&#xff0c;欢迎朋友们前来支持&…

全球第2大同性交友网站曝光,2022程序员现状

全球第二大同性社交网站 提到全球最大的同性社交网站&#xff0c;大家马上想到Github。 Github是技术人的聚集地&#xff0c;因为程序员以男人居多&#xff0c;所以被网友戏称为全球最大的同性社交网站。 还有一个网站&#xff0c;它的世界编程者心中的地位&#xff0c;就像知…

cortana 无法使用_如何使用Microsoft Edge和Cortana创建网站提醒

cortana 无法使用Want to set a web page aside and come back to it in the future? If you use Microsoft Edge in Windows 10’s Creators Update, you don’t have to leave the tab open or bookmark it and remember to come back. You can tell Cortana to remind you …

电影下载网站收集

为什么80%的码农都做不了架构师&#xff1f;>>> 1.小浣熊下载站&#xff1a;http://www.xiaohx.com/ 2.97电影网&#xff1a;http://www.id97.com/ 转载于:https://my.oschina.net/miger/blog/483343

云中数据_免费备份和共享云中数据的最佳网站

云中数据We’ve been told many times how important backups are, although we may not realize it until it’s too late and our data’s gone. You can backup your PC’s data to external media, but free online backup services provide useful redundancy that could …

如何使用Google搜索仅搜索您正在查看的网站

Have you ever wanted to search the site you’re viewing, but the built-in search box is either hard to find, or doesn’t work very well? Here’s how to add a special keyword bookmark that searches the site you’re viewing using Google’s site: search oper…

数据库候选关键词怎么求_[SEO优化技巧]美咖网络-企业网站怎么利用搜索排名做霸屏推广...

怎么利用搜索排名做霸屏推广非常多传统实业现在都面临着一个库存和销售的大问题&#xff0c;有货卖不出去&#xff0c;或者有生产实力却没好的销售渠道&#xff0c;该怎么办&#xff1f;今天我帮大家解决问题&#xff0c;那就是做关键词霸屏推广&#xff0c;什么是关键词霸屏推…

python-41: 直接使用cookies登陆网站

2019独角兽企业重金招聘Python工程师标准>>> 终于到这里了&#xff0c;卡了两天&#xff0c;纠结的地方主要是在选择什么网站来作为示范&#xff0c;因为现在的网站有好多都有验证码&#xff0c;比较难弄&#xff0c;或者像百度一样什么信息都不给&#xff0c;本来还…

chrome 停止单个请求_如何在Google Chrome上清除单个网站的存储和网站数据

chrome 停止单个请求Deleting site data, such as cache and cookies, is helpful for when a site is misbehaving. However, removing all site data in Google Chrome will sign you out of every website. Here’s how to delete data from a single site. 删除站点数据 (例…