1. SpringMVC简单使用

1.1 引入SpringMVC依赖

pom.xml

 <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>org.example</groupId><artifactId>maven_test</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><name>maven_test Maven Webapp</name><!-- FIXME change it to the project's website --><url>http://www.example.com</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.7</maven.compiler.source><maven.compiler.target>1.7</maven.compiler.target><spring.version>4.2.6.RELEASE</spring.version></properties><dependencies><!-- junit是自动生成的 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><!-- spring-context --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.5.RELEASE</version></dependency>
<!-- web.xml里的DispatcherServlet需要用到 --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version><!-- 与tomcat的依赖冲突,需要加上scope --><scope>provided</scope></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId><version>2.3.3</version><!-- 与tomcat的依赖冲突,需要加上scope --><scope>provided</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency></dependencies><!-- 下面是自动生成的 --><build><finalName>maven_test</finalName><pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --><plugins><plugin><artifactId>maven-clean-plugin</artifactId><version>3.1.0</version></plugin><!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging --><plugin><artifactId>maven-resources-plugin</artifactId><version>3.0.2</version></plugin><plugin><artifactId>maven-compiler-plugin</artifactId><version>3.8.0</version></plugin><plugin><artifactId>maven-surefire-plugin</artifactId><version>2.22.1</version></plugin><plugin><artifactId>maven-war-plugin</artifactId><version>3.2.2</version></plugin><plugin><artifactId>maven-install-plugin</artifactId><version>2.5.2</version></plugin><plugin><artifactId>maven-deploy-plugin</artifactId><version>2.8.2</version></plugin></plugins></pluginManagement></build>
</project>

在上面的依赖中,需要对servlet-api和jsp-api加上scope,因为tomcat的依赖包含这两个,如果不加,运行时会报错。这个scope 只能作用在编译和测试时,同时没有传递性。

1.2 创建mvc-dispatcher-servlet.xml

<!--这里的配置了xmlns:context,在xsi:schemaLocation中就要配置对应的spring-context.xsd-->
<?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.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"><!-- 扫描的目录--><context:component-scan base-package="com.crystallake.demo"/><!-- 静态资源配置--><mvc:default-servlet-handler/><!-- 启用注解--><mvc:annotation-driven/><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>

InternalResourceViewResolver会将视图名解析为JSP文 件。另外,如果在你的JSP页面中使用了JSP标准标签库 (JavaServer Pages Standard Tag Library,JSTL)的 话,InternalResourceViewResolver能够将视图名解析为 JstlView形式的JSP文件,从而将JSTL本地化和资源bundle变量暴 露给JSTL的格式化(formatting)和信息(message)标签。

  • prefix:前缀,请求的接口带上/WEB-INF/pages/前缀
  • suffix:后缀,请求的接口后面带上.jsp
    这两个参数来自于InternalResourceViewResolver的父类UrlBasedViewResolver,如图所示:

1.3 配置web.xml

<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-appxmlns="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>Archetype Created Web Application</display-name><servlet><!--    这里的名称要和servlet-mapping里面的名称一致--><servlet-name>mvc-dispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:mvc-dispatcher-servlet.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><!--    这里的名称要和servlet里面的名称一致--><servlet-name>mvc-dispatcher</servlet-name><url-pattern>/</url-pattern></servlet-mapping></web-app>
  • 如果不写任何参数配置(也就是没有servlet和servlet-mapping配置),默认的是在/WEB-INF/applicationContext.xml。
  • 如果指定了要加载的文件(就是配置了init-param),则会去加载相应的xml,而不会去加载/WEB-INF/下的applicationContext.xml。如果没有指定的话,默认会去/WEB-INF/下加载applicationContext.xml。
  • 如果想要自定义文件名,需要在web.xml中加入contextConfigLocation这个context参数并指定classpath,这里默认加载resources文件夹下的xml文件

1.4 MainController创建

package com.crystallake.demo;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;@Controller
public class MainController {@RequestMapping(value = "/",method = RequestMethod.GET)public String test(){return "main";}
}

注意,webapp下的index.jsp要删除,不然它默认加载该jsp页面。

maven->clean->package->run


http://localhost:8083/maven_test_war_exploded/baseUrl,因为在mvc-dispatcher-servlet.xml里面配置了前缀和后缀,所以它默认会加上前缀/WEB-INF/pages/,然后调用MainControllertest方法返回main,然后自动加上后缀.jsp,所以最终的请求为
http://localhost:8083/maven_test_war_exploded/WEB-INF/pages/main.jsp

【Java后台】从零开始的Java后台开发(二)相关推荐

  1. 写给java初学者,从零开始学习java开发的完整学习路线

    要问编程王者是谁?自然是非java莫属!发展了20多年,学习java的人络绎不绝.不管是有计算机基础还是没有基础,都想学习这门前途无量的技术.这时候有人担心了,零基础该怎么学java呢?会不会困难重重 ...

  2. windows java eclipse_从零开始学 Java - Windows 下安装 Eclipse

    三观是什么鬼 当我们在讨论「三观一致」的时候是在讨论些什么? 我认为这个世界上本没有「三观」这一说法,说的人多了,也就有了「三观」这个词,当我们讨论「三观一致」其实并不是真的在说世界观.价值观.人生观 ...

  3. quartz java spring_从零开始学 Java - Spring 使用 Quartz 任务调度定时器

    生活的味道 睁开眼看一看窗外的阳光,伸一个懒腰,拿起放在床一旁的水白开水,甜甜的味道,晃着尾巴东张西望的猫猫,在窗台上舞蹈.你向生活微笑,生活也向你微笑. 请你不要询问我的未来,这有些可笑.你问我你是 ...

  4. 【Java后台】从零开始的Java后台开发(三)

    编写基础的Servlet应用程序 1 Servlet 使用Servlet需要在pom.xml中引入以下依赖: <!-- https://mvnrepository.com/artifact/ja ...

  5. Java Web 后台中餐饮业报表系统开发实例

    本期葡萄城公开课,我们诚邀石家庄品智技术有限公司,高级软件工程师--刘永政先生,为大家在线分享餐饮业报表系统设计模式,以及在 HTML5 报表浏览器.Java 架构中跨平台使用ActiveReport ...

  6. java+bizx文件_14.Teambiz后台开发规范

    IBM GDC DL Teambiz后台开发规范 (2012年3月9日修订版) 撰写:何杨 2012年3月9日 1. 包的命名 包名应全由小写单词组成,如com.dalpha.common.gui,c ...

  7. java iterator如何知道数量_Java开发岗面试题基础篇(二)

    点击蓝字 关注wo们 老哥们,接上篇<Java开发岗面试题--基础篇(一)>,本期推出Java开发岗面试题--基础篇(二),来看看Java中的集合.多线程.异常体系等知识在面试中是怎么体现 ...

  8. 从程序员到CTO的Java技术路线图 JAVA职业规划 JAVA职业发展路线图 系统后台框架图、前端工程师技能图 B2C电子商务基础系统架构解析...

    http://zz563143188.iteye.com/blog/1877266在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了.但如果有清晰的指示图供参考还是非常不错的,这样 ...

  9. java职业发展路线图_从程序员到CTO的Java技术路线图 JAVA职业规划 JAVA职业发展路线图 系统后台框架图、前端工程师技能图 B2C电子商务基础系统架构解析...

    http://zz563143188.iteye.com/blog/1877266在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了.但如果有清晰的指示图供参考还是非常不错的,这样 ...

  10. JAVE EE 企业级开发之从零开始学JAVA【51CTO技术论坛】

    http://bbs.51cto.com JAVE EE 企业级开发之从零开始学JAVA         从零开始学JAVA?YES!本刊内容全部为午饭redking整理.撰写,所涉及内容均为原创,非 ...

最新文章

  1. html显示数据库图片django,django将图片上传数据库后在前端显式的方法
  2. loadrunner写脚本常用C函数
  3. mseloss 与 smooth_l1_loss比较
  4. k8s(1)-使用kubeadm安装Kubernetes
  5. 查询缺少的依赖文件归属于哪个rpm包
  6. 物理层协议有哪四大特性
  7. 剑指offer——python【第54题】字符流中第一个不重复的字符
  8. 【Python数据分析】Python3操作Excel(二) 一些问题的解决与优化
  9. AS3 CookBook学习整理(二)
  10. Shell脚本学习指南(一)——入门
  11. 你为什么来日本做IT?日本IT优劣谈
  12. 网关冗余技术、链路冗余技术 、 ACL原理、ACL配置
  13. 蓝桥杯训练 日期计算
  14. Unity文件转移出现的粉红色材质的处理方法
  15. 第一课 以太坊开发从入门到精通学习导航
  16. YY语音无有效验证导致下载执行任意程序
  17. fscanf php,php fscanf 函数_PHP教程
  18. hive:函数:trim
  19. 总结 nginx access.log 太大如何清理
  20. 前端微信小程序资讯类仿今日头条微信小程序

热门文章

  1. 欢迎进入测试day01作业
  2. uniapp引入字体包——DIN
  3. 群晖服务器密码修改,群晖nas使用教程:重置黑群晖登陆密码 – 群晖教程
  4. 【Unity3D读取数据】(三)Xml文件操作(创建、读取、写入、修改)
  5. 暴几个用明文在网上传输用户名密码的网站
  6. Qt组态软件设计文章导航
  7. 常见的html字体,网页设计中最常用的字体有哪些
  8. 深度学习人工智能中编写程序
  9. 同一张表sql省市区三级联动查询
  10. steam授权_Epic喜+1:塔洛斯的法则|Steam上周销量榜出炉|格力折叠屏手机专利授权...