idea 开发springmvc 非maven版_idea java springmvc 非maven-程序员宅基地

技术标签: spring  

开发环境

jdk1.8.0_92 
tomcat8

创建工程

打开IntelliJ IDEA 新建一个project,选择spring MVC,然后点击next

给project随便起一个名字,点击finish

创建完成的project目录如下

首先打开web/WEB-INF目录下的web.xml文件,如下,把url-pattern的值改为/,用于拦截请求(url-pattern为 / ,说明拦截所有请求,网上有说配置为/*的,我这样配置会出错),并交由Spring MVC的后台控制器来处理。这一项配置是必须的。

<?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">
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>
 
 
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

编写Controller与jsp页面

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

在项目的src目录创建一个包用于存放controller

在新建的包中,创建一个HelloController类 
添加以下代码

@Controller
@RequestMapping(value = "/hello", method = RequestMethod.GET)
public class HelloController {
    

    @RequestMapping(value = "/hello", method = RequestMethod.GET)
    public String printHello(ModelMap model) {
        model.addAttribute("msg", "Spring MVC Hello World");
        model.addAttribute("name", "yuntao");
        return "hello";
    }
}
 
 
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

解释下上边代码的意思

1.@Controller注解:采用注解的方式定义该类为处理请求的Controller类; 
2.@RequestMapping解:用于定义一个请求映射,value为请求的url,method用以指定该请求类型,一般为get和post,代码中要调用printHello方法,即可访问 hello/hello 
3.return “hello”:处理完该请求后返回的页面,此请求返回 hello.jsp页面。

接下来删除web目录下的index.jsp,在web/WEB-INF中创建一个views目录,然后创建一个hello.jsp文件

把下边代码贴入hello.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>${msg}</title>
</head>
<body>
<h1>${msg}</h1>
<span>${name}</span>
</body>
</html>
 
 
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

配置xxx-servlet.xml

完成上边的步骤之后,在web.xml同级目录下有个dispatcher-servlet.xml的配置文件,他的前缀dispatcher对应上边web.xml中配置的servlet(名称可修改),节选web.xml如下

<servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
</servlet>
 
 
  
  • 1
  • 2
  • 3
  • 4
  • 5

打开dispatcher-servlet.xml是空的,我们需要添加一些配置 
首先要指定下controller所在的包,这样spring mvc会扫描其中的注解

<context:component-scan base-package="com.yuntao.hello"/>
 
 
  
  • 1
<!--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/jsp/"/>
        <property name="suffix" value=".jsp"/>
</bean>
 
 
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

还需要配置下边两项,静态资源访问,开启注解。

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

<!-- 开启注解 -->
<mvc:annotation-driven/>
 
 
  
  • 1
  • 2
  • 3
  • 4
  • 5

最后配置完成如下

<?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">
    <context:component-scan base-package="com.yuntao.hello"/>

    <!-- 静态资源(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/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>
 
 
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

配置Tomcat

上述代码写好了之后,还需要一个web服务,这里使用tomcat8.去http://tomcat.apache.org/下载一个适合自己系统的tomcat,解压。终端执行./startup.sh,windows执行startup.bat

然后打开IDEA,选择run->edit configurations,如图

配置tomcat所在目录,如下

然后点击run,运行

打开浏览器访问http://localhost:8080/hello/hello

问题

NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config

使用spring mvc进行开发,使用tomcat容器,通过url映射寻找view的时候,会报错NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config,如果随便去找个jstl包过来放入web-inf/lib会报错,正确的下载地址在这里,下载jakarta-taglibs-standard-1.1.2.zip这个包,解压缩后将standard和jstl两个包放入lib下即可

No mapping found for HTTP request with URI [/] in DispatcherServlet with name
 <servlet-mapping>
     <servlet-name>dispatcher</servlet-name>
     <url-pattern>/</url-pattern>
 </servlet-mapping>
 
 
  
  • 1
  • 2
  • 3
  • 4

网上有人说url-pattern写的是/*,一开始写成这样报这个错误

其次没有开启静态资源访问,也会报错,添加

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

代码下载地址 https://github.com/pengyuntao/HelloSpring

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yisun123456/article/details/78661972

智能推荐

ELasticsearch的安装以及与spring-data-elasticsearch的整合使用_lorg/elasticsearch/common/settings/settings;ljava/-程序员宅基地

文章浏览阅读3.1k次。#Elasticsearch安装这里本人使用的是docker镜像安装,至于怎么安装就不说了,贴一下配置最基本的配置文件就好#集群名称,默认为elasticsearch, 命名规则为 es-产品名-ES版本cluster.name: luckyqing#节点名称,es启动时会自动创建节点名称,但你也可进行配置node.name: es-46-68-76#设置索引的分片数#index..._lorg/elasticsearch/common/settings/settings;ljava/lang/string;)v

Linux运维面试题(四)之Linux服务管理_linux运维网络服务4-程序员宅基地

文章浏览阅读337次。Linux运维面试题(四)之Linux服务管理_linux运维网络服务4

Spring注解依赖注入详解_依赖注入和注解的区别-程序员宅基地

文章浏览阅读1.1k次。依赖注入可以使用 `@Autowired`, `@Resource`, `@Inject` 三个注解,那么这3中注解有何异同呢?_依赖注入和注解的区别

大数据lab5/spark_大数据实验spark-程序员宅基地

文章浏览阅读1k次。sparkidea加入Scala插件的方法:在pom.xml加入 <build> <plugins> <plugin> <groupId>net.alchim31.maven</groupId> <artifactId>scala-maven-plugin</artifactId> _大数据实验spark

解除PDF限制打印/编辑_advancedpdfpasswordrecovery-程序员宅基地

文章浏览阅读2.4k次。工具:AdvancedPDFPasswordRecovery操作步骤:我们经常会遇到这样一种情况,同事或朋友发给你的pdf被设置了密码,导致被限制了编辑或不能够打印,导致工作进展很麻烦。这时候我们可以用到一款工具AdvancedPDFPasswordRecovery,来破解pdf文件的密码,然后愉快的进行打印或编辑了。1.解压软件,此软件是已破解绿化版,无需安装2.双击打开APDFPR.exe程序3.将待解除限制的pdf文件拖入软件4.显示弹框点击“是”..._advancedpdfpasswordrecovery

w10计算机用户名密码忘了,电脑w10系统开机密码忘了-程序员宅基地

文章浏览阅读1.4w次。如果是普通账户密码忘了请用第一种方法。方法(一)重新启动电脑,启动到系统登录界面时,同时按住Ctrl+Alt键,然后连击Del键两次,会出现新的登录界面,用户名处输入“Administrator”密码为空,回车即可登录,登录后,打开控制面板选/用户账户/更改账户/点击原来的“账户名”/更改我的密码/输入新密码,再次输入新密码,然后点击“更改密码”按钮即可。如果是计算机管理员密码忘了,请用第二种方法..._w10系统不知道电脑的账户密码是多少

随便推点

Activiti工作流使用详细介绍_activiti开启工作流-程序员宅基地

文章浏览阅读554次。Activiti项⽬是⼀项新的基于Apache许可的开源BPM平台,BPM,即Business Process Management,业务流程管理,通常,BPM也指针对流程管理的信息化系统,其特点是注重流程驱动为核⼼,实现端到端全流程信息化管理。BPMN,即Business Process Modeling Notation,业务流程建模符号。BPMN定义了⼀个业务流程图。_activiti开启工作流

十大排序算法总结(c++版本)-程序员宅基地

文章浏览阅读78次。排序算法的分类:1插入:插入,折半插入,希尔2交换:冒泡,快速3选择:简单选择,堆4归并:归并(不只二路归并)5基数:1插入排序void insert_sort(){ for (int i = 1; i < n; i ++ ) { int x = a[i]; int j = i-1; while (j >= 0 && x < a[j])...

新颖的基于BS结构的毕业设计题目50例_bs实训题目-程序员宅基地

文章浏览阅读711次。新颖的基于BS结构的毕业设计题目50例,该基于BS结构的毕业设计题目包含了:UML对基于BS结构的PDM系统的分析与建模,基于BS结构的高校毕业设计选题系统的设计与实现,基于BS结构的第三方物流管理系统设计与实现,基于BS结构的毕业设计(论文)系统的设计与实现等。..._bs实训题目

GVRP基础配置_gvrp unrecognized command-程序员宅基地

文章浏览阅读1k次。原理概述:GVRP VLAN 注册协议是一种通用属性注册协议的应用,使得交换机之间能够相互交换VLAN配置信息,动态创建和管理VLAGVRP三种注册模式:Normal模式:允许动态VLAN在端口上进行注册,同时会发送静态VLAN和动态VLAN的声明消息。Fixed模式:不允许动态VLAN在端口上注册,只发送静态VLAN的声明消息。Forbidden模式:不允许动态VLAN在端口上进行注册,同时删除端口上除VLAN1外的所有VLAN,只发送VLAN1的声明消息。实验目的:1、理解GVRP的应用场_gvrp unrecognized command

MeterSphere使用MySQL8.0部署(Windows10)_metersphere mysql-程序员宅基地

文章浏览阅读1.3k次。背景看MeterSphere文档推荐5.7,但是因为我本地和服务器均为8.0版本,考虑到已经有很多服务在使用MySQL服务,而且相对来说,8.0比5.7性能更好,其他地方也更好些,所以就尝试直接用Mysql8.0部署本地环境:Windows10 MySQL8.0.18关于为什么会推荐使用MySQL5.7,其实主要原因是他们后端的sql有些group by语句在高版本的MySQL中是不合法的。MySQL 5.7.5及以上功能依赖检测功能。如果启用了ONLY_FULL_G.._metersphere mysql

简单的重写控件_自定义控件通常要重写哪些方法-程序员宅基地

文章浏览阅读923次。我们知道最基本的就是继承View,下面我们结合一个例子对重写进行简单地分析: 继承一个view,都会有一个或多个构造方法,在不同的时候调用到不同的构建方法,一般会重写三个方法,onMeasure();onLayout();onDraw();分别是测量,定位和画下面说下,android中重写view时,经常会遇到的混淆:requestLayout(),invalidate_自定义控件通常要重写哪些方法