IntelliJ IDEA 最简单配置搭建Spring MVC Java web Maven项目
2017-05-21 14:57
721 查看
原文地址:http://blog.csdn.net/qq_27093465/article/details/68961393
使用这个IntelliJ IDEA创建一个简单的Java web maven项目,我在前面的文章里面已经示范过了。
先看下项目目录
至于为什么这么做,看下面链接的解释:
IntelliJ IDEA 中 右键新建时,选项没有Java class的解决方法和具体解释
好,准备工作就绪,那么就开干了。看代码,至于整个项目的目录结构,在上面的对比图里面已经看过了,这就不再重复上图啦。
大致看一下,整个简单的项目都用到了什么jar包,也就是了解下maven依赖。
最好看下上面说的那个简单Java web maven项目的那一篇文章,因为,里面说了如何使用国内的镜像仓库,maven下载jar包的时候,速度就快很多。
先是pom.xml文件,如下:
pom.xml文件中包含spring mvc依赖及为编写jsp文件提供支持的taglib相关依赖
[html] view
plain copy
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>lxk</groupId>
<artifactId>springMVC</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>springMVC Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<org.springframework-version>4.1.4.RELEASE</org.springframework-version>
</properties>
<dependencies>
<!-- Spring MVC support -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- Tag libs support for view layer -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
<scope>runtime</scope>
</dependency>
<!-- junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>springMVC</finalName>
</build>
</project>
因为这个项目太简单,所以,这个pom.xml文件里面的配置也很简单。可以参考下面链接的一篇文章了解到基本所有的标签的作用。
哎,不要嫌啰嗦,你可以全文搜索你要了解的标签,又不是让你全部看一遍。对不对嘛。我就不解释标签的作用啦。
pom.xml配置文件中所有标签及作用简单描述
因为我在之前,转载过一篇,关于springmvc的各个jar包之间的maven依赖关系,具体链接如下:
spring framework体系结构及内部各模块jar之间的maven依赖关系
此文中详细描述了各个jar包之间的依赖关系,那么,我上面的pom.xml里面对springmvc的依赖导入,就有一个是多余的啦,就那个spring-web,这个jar包啦。spring-webmvc这个jar包是依赖spring-web的,所以,maven会自动添加这个jar的,所以,你就不需要自己声明引入jar依赖啦。
前提是你知道他们之间的关系,你才知道哪个可以写,哪个不用写。一般我看到的,基本都是随意的引入,不需要考虑,那样的话,你的pom.xml文件里面的dependency标签会很多,起码,我看很多人在示范这个springmvc框架,构建项目的时候,pom文件可是相当可观的,估计自己都不知道引入那么多有啥用。
所以,你可以把上面的那个多余的jar包给删除了。项目还是会正常的跑起来的。
再看一下,所有依赖的jar包,都使用了些什么jar包。
下面就该web.xml文件的配置了
[html] view
plain copy
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
在配置中设置spring-servlet.xml的路径
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-servlet.xml</param-value>
</init-param>
本来上面的这个是可以不用配置的,默认在/WEB-INF/自己找XXX--servlet.xml对应的配置文件xxx对应为servlet的名字,我们也可以如上自己指定,
然后是servlet.xml的配置内容。
[html] view
plain copy
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<!-- 开启spring的扫描注入,使用如下注解 -->
<!-- @Component,@Repository,@Service,@Controller-->
<context:component-scan base-package="com.lxk"/>
<!-- 开启springMVC的注解驱动,使得url可以映射到对应的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>
</beans>
<mvc:annotation-driven /> 这个默认就给容器注入了下面的2个bean,所以就不需要再次重复注入了
下面第一个行使得自动映射到对应的controller类上,再下一行是映射到方法上,缺一不可。
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
这个地方,有的人是不知道的。我看有的人的例子,这个地方就写重复啦。
配置基本完成,从发出请求到controller,然后处理完,得到数据之后,再返回到浏览器页面上,这么个流程。
先看controller的代码。
[java] view
plain copy
package com.lxk.controller;
import com.lxk.service.StudentService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
/**
* Created by lxk on 2017/3/27
*/
@Controller
@RequestMapping("student")
public class StudentController {
@Resource(name = "studentService")
private StudentService studentService;
//@ResponseBody(之前我因为加了这个注解,导致页面访问一直是406错误,注释了就好啦,具体为啥我暂时还不知道)
@RequestMapping(value = "/getAllStudent", method = RequestMethod.GET)
public ModelAndView getAllStudent() {
ModelAndView mav = new ModelAndView();
mav.setViewName("studentDisplay");
mav.addObject("students", studentService.getAllStudent());
return mav;
}
}
然后是service
[java] view
plain copy
package com.lxk.service;
import com.lxk.dao.StudentDao;
import com.lxk.model.Student;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* Created by lxk on 2017/3/27
*/
@Service("studentService")
public class StudentService {
@Resource(name = "studentDao")
private StudentDao dao;
public List<Student> getAllStudent() {
return dao.findAll();
}
}
然后是dao,这个地方,为了简单,没有去访问数据库,而是直接返回了个list集合。还请见谅。
[java] view
plain copy
package com.lxk.dao;
import com.lxk.model.Student;
import org.springframework.stereotype.Repository;
import java.util.ArrayList;
import java.util.List;
/**
* Created by lxk on 2017/3/27
*/
@Repository("studentDao")
public class StudentDao {
public List<Student> findAll() {
List<Student> all = new ArrayList<Student>();
all.add(new Student("1", "tom", 18, true));
all.add(new Student("2", "cat", 28, true));
all.add(new Student("3", "lxk", 18, true));
all.add(new Student("4", "cms", 18, true));
return all;
}
}
最后,是我们使用的Java model bean的代码
[java] view
plain copy
package com.lxk.model;
import java.io.Serializable;
/**
* Created by lxk on 2017/3/27
*/
public class Student implements Serializable {
private String id;
private String name;
private int age;
private boolean sex;
public Student() {
}
public Student(String id, String name, int age, boolean sex) {
this.id = id;
this.name = name;
this.age = age;
this.sex = sex;
}
//getter and setter
......
}
这地方有需要注意的地方:你重写了一个model bean的构造方法,那么他的无参构造函数就不见了,所以,你最好。
哦,不,为了省去不必要的麻烦,你必须给他加上默认的构造函数。因为,在这使用的简单,请求都是不带参数的。
项目复杂了,是会带model bean类型的参数的,那么可能就会因为对象初始化失败而报错。可能你排错都得整半天,都不知道错在哪,一直请求400错误码。
参考链接:ajax 报错 400 (Failed to load resource: the server responded with a status of 400 (Bad Request))
现在后台完事了,那么就该前台的jsp代码了,不要嫌弃,为什么还在使用jsp当前台,学习嘛。
[html] view
plain copy
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Spring MVC Hello World</title>
</head>
<body>
<h2>All Students in System</h2>
<table border="1">
<tr>
<th>Id</th>
<th>Name</th>
<th>Age</th>
<th>Sex</th>
</tr>
<c:forEach var="student" items="${students}">
<tr>
<td>${student.id}</td>
<td>${student.name}</td>
<td>${student.age}</td>
<td>${student.sex}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
这个jsp页面也是有个地方需要注意的,对就是乱码的问题。因为你不设置一下jsp页面的编码格式,汉字就会显示为???很多个问号。
我看其他人做测试的时候,都没遇到,也就不会考虑这个问题啦。因为湿胸我出过这个bug,所以,深切知道这个问题的重要性,
谁让计算机不是中国人发明的呢,所以,就会莫名其妙的出现编码问题的bug,比如我最近的编码bug就是log4j日志输出到文件所有汉字都变问号了。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
另外,jsp页面上使用的就是jstl标签啦。也就是个简单的foreach循环,雷同Java的foreach循环。简单理解一下就OK拉。
现在,前后台的代码,算是都敲完了,该配置个tomcat服务器,跑起来这个Java web项目。具体配制流程,我也不上图啦,我在此文一开始的时候,附的那个链接
详细的记录了如何配置启动一个tomcat。当你按照那个配置完成之后,直接启动tomcat,会跳到hello world页面,然后你再输入如下URL
http://localhost:8080/lxk/student/getAllStudent
就可以看到如下的执行结果啦。
至此,这个算是极其简单的spring mvc项目算是从头到尾的示范完了。遗憾的是,这个项目还是太简单了,还是么有使用到数据库,比如mongo DB。
也没有使用到JavaScript,jQuery,ajax,而且后台代码也是超级简单。也没有使用到配置文件,而且使用的前台页面也是不符合实际开发要求的。
所以,还是不行的。
所以,还是可以继续复杂起来的。路漫漫其修远兮吾将上下而求索。留待湿胸我慢慢整理吧。
虽然这一篇,还是水的不行。当然,还是希望各位,不嫌弃麻烦的,点个赞啥的。也是极好的。
后面我又多方试探,发现,pom.xml文件还是可以继续精简的。那个依赖可以直接只要下面2个依赖就可以了。
其他的都是多余的。
[html] view
plain copy
<dependencies>
<!-- Spring MVC support -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- Tag libs support for view layer -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<scope>runtime</scope>
</dependency>
</dependencies>
就这2个jar包就够用了。
想不想看看,现在这个maven项目的所有jar包的依赖关系呢?
看图。
好,这个就是现在的修改过,去掉多余的jar包之后的maven jar 包依赖关系图。
使用这个IntelliJ IDEA创建一个简单的Java web maven项目,我在前面的文章里面已经示范过了。
先看下项目目录
至于为什么这么做,看下面链接的解释:
IntelliJ IDEA 中 右键新建时,选项没有Java class的解决方法和具体解释
好,准备工作就绪,那么就开干了。看代码,至于整个项目的目录结构,在上面的对比图里面已经看过了,这就不再重复上图啦。
大致看一下,整个简单的项目都用到了什么jar包,也就是了解下maven依赖。
最好看下上面说的那个简单Java web maven项目的那一篇文章,因为,里面说了如何使用国内的镜像仓库,maven下载jar包的时候,速度就快很多。
先是pom.xml文件,如下:
pom.xml文件中包含spring mvc依赖及为编写jsp文件提供支持的taglib相关依赖
[html] view
plain copy
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>lxk</groupId>
<artifactId>springMVC</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>springMVC Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<org.springframework-version>4.1.4.RELEASE</org.springframework-version>
</properties>
<dependencies>
<!-- Spring MVC support -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- Tag libs support for view layer -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
<scope>runtime</scope>
</dependency>
<!-- junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>springMVC</finalName>
</build>
</project>
因为这个项目太简单,所以,这个pom.xml文件里面的配置也很简单。可以参考下面链接的一篇文章了解到基本所有的标签的作用。
哎,不要嫌啰嗦,你可以全文搜索你要了解的标签,又不是让你全部看一遍。对不对嘛。我就不解释标签的作用啦。
pom.xml配置文件中所有标签及作用简单描述
因为我在之前,转载过一篇,关于springmvc的各个jar包之间的maven依赖关系,具体链接如下:
spring framework体系结构及内部各模块jar之间的maven依赖关系
此文中详细描述了各个jar包之间的依赖关系,那么,我上面的pom.xml里面对springmvc的依赖导入,就有一个是多余的啦,就那个spring-web,这个jar包啦。spring-webmvc这个jar包是依赖spring-web的,所以,maven会自动添加这个jar的,所以,你就不需要自己声明引入jar依赖啦。
前提是你知道他们之间的关系,你才知道哪个可以写,哪个不用写。一般我看到的,基本都是随意的引入,不需要考虑,那样的话,你的pom.xml文件里面的dependency标签会很多,起码,我看很多人在示范这个springmvc框架,构建项目的时候,pom文件可是相当可观的,估计自己都不知道引入那么多有啥用。
所以,你可以把上面的那个多余的jar包给删除了。项目还是会正常的跑起来的。
再看一下,所有依赖的jar包,都使用了些什么jar包。
下面就该web.xml文件的配置了
[html] view
plain copy
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Archetype Created Web Application</display-name>
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
在配置中设置spring-servlet.xml的路径
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-servlet.xml</param-value>
</init-param>
本来上面的这个是可以不用配置的,默认在/WEB-INF/自己找XXX--servlet.xml对应的配置文件xxx对应为servlet的名字,我们也可以如上自己指定,
然后是servlet.xml的配置内容。
[html] view
plain copy
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<!-- 开启spring的扫描注入,使用如下注解 -->
<!-- @Component,@Repository,@Service,@Controller-->
<context:component-scan base-package="com.lxk"/>
<!-- 开启springMVC的注解驱动,使得url可以映射到对应的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>
</beans>
<mvc:annotation-driven /> 这个默认就给容器注入了下面的2个bean,所以就不需要再次重复注入了
下面第一个行使得自动映射到对应的controller类上,再下一行是映射到方法上,缺一不可。
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
这个地方,有的人是不知道的。我看有的人的例子,这个地方就写重复啦。
配置基本完成,从发出请求到controller,然后处理完,得到数据之后,再返回到浏览器页面上,这么个流程。
先看controller的代码。
[java] view
plain copy
package com.lxk.controller;
import com.lxk.service.StudentService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import javax.annotation.Resource;
/**
* Created by lxk on 2017/3/27
*/
@Controller
@RequestMapping("student")
public class StudentController {
@Resource(name = "studentService")
private StudentService studentService;
//@ResponseBody(之前我因为加了这个注解,导致页面访问一直是406错误,注释了就好啦,具体为啥我暂时还不知道)
@RequestMapping(value = "/getAllStudent", method = RequestMethod.GET)
public ModelAndView getAllStudent() {
ModelAndView mav = new ModelAndView();
mav.setViewName("studentDisplay");
mav.addObject("students", studentService.getAllStudent());
return mav;
}
}
然后是service
[java] view
plain copy
package com.lxk.service;
import com.lxk.dao.StudentDao;
import com.lxk.model.Student;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* Created by lxk on 2017/3/27
*/
@Service("studentService")
public class StudentService {
@Resource(name = "studentDao")
private StudentDao dao;
public List<Student> getAllStudent() {
return dao.findAll();
}
}
然后是dao,这个地方,为了简单,没有去访问数据库,而是直接返回了个list集合。还请见谅。
[java] view
plain copy
package com.lxk.dao;
import com.lxk.model.Student;
import org.springframework.stereotype.Repository;
import java.util.ArrayList;
import java.util.List;
/**
* Created by lxk on 2017/3/27
*/
@Repository("studentDao")
public class StudentDao {
public List<Student> findAll() {
List<Student> all = new ArrayList<Student>();
all.add(new Student("1", "tom", 18, true));
all.add(new Student("2", "cat", 28, true));
all.add(new Student("3", "lxk", 18, true));
all.add(new Student("4", "cms", 18, true));
return all;
}
}
最后,是我们使用的Java model bean的代码
[java] view
plain copy
package com.lxk.model;
import java.io.Serializable;
/**
* Created by lxk on 2017/3/27
*/
public class Student implements Serializable {
private String id;
private String name;
private int age;
private boolean sex;
public Student() {
}
public Student(String id, String name, int age, boolean sex) {
this.id = id;
this.name = name;
this.age = age;
this.sex = sex;
}
//getter and setter
......
}
这地方有需要注意的地方:你重写了一个model bean的构造方法,那么他的无参构造函数就不见了,所以,你最好。
哦,不,为了省去不必要的麻烦,你必须给他加上默认的构造函数。因为,在这使用的简单,请求都是不带参数的。
项目复杂了,是会带model bean类型的参数的,那么可能就会因为对象初始化失败而报错。可能你排错都得整半天,都不知道错在哪,一直请求400错误码。
参考链接:ajax 报错 400 (Failed to load resource: the server responded with a status of 400 (Bad Request))
现在后台完事了,那么就该前台的jsp代码了,不要嫌弃,为什么还在使用jsp当前台,学习嘛。
[html] view
plain copy
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Spring MVC Hello World</title>
</head>
<body>
<h2>All Students in System</h2>
<table border="1">
<tr>
<th>Id</th>
<th>Name</th>
<th>Age</th>
<th>Sex</th>
</tr>
<c:forEach var="student" items="${students}">
<tr>
<td>${student.id}</td>
<td>${student.name}</td>
<td>${student.age}</td>
<td>${student.sex}</td>
</tr>
</c:forEach>
</table>
</body>
</html>
这个jsp页面也是有个地方需要注意的,对就是乱码的问题。因为你不设置一下jsp页面的编码格式,汉字就会显示为???很多个问号。
我看其他人做测试的时候,都没遇到,也就不会考虑这个问题啦。因为湿胸我出过这个bug,所以,深切知道这个问题的重要性,
谁让计算机不是中国人发明的呢,所以,就会莫名其妙的出现编码问题的bug,比如我最近的编码bug就是log4j日志输出到文件所有汉字都变问号了。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
另外,jsp页面上使用的就是jstl标签啦。也就是个简单的foreach循环,雷同Java的foreach循环。简单理解一下就OK拉。
现在,前后台的代码,算是都敲完了,该配置个tomcat服务器,跑起来这个Java web项目。具体配制流程,我也不上图啦,我在此文一开始的时候,附的那个链接
详细的记录了如何配置启动一个tomcat。当你按照那个配置完成之后,直接启动tomcat,会跳到hello world页面,然后你再输入如下URL
http://localhost:8080/lxk/student/getAllStudent
就可以看到如下的执行结果啦。
至此,这个算是极其简单的spring mvc项目算是从头到尾的示范完了。遗憾的是,这个项目还是太简单了,还是么有使用到数据库,比如mongo DB。
也没有使用到JavaScript,jQuery,ajax,而且后台代码也是超级简单。也没有使用到配置文件,而且使用的前台页面也是不符合实际开发要求的。
所以,还是不行的。
所以,还是可以继续复杂起来的。路漫漫其修远兮吾将上下而求索。留待湿胸我慢慢整理吧。
虽然这一篇,还是水的不行。当然,还是希望各位,不嫌弃麻烦的,点个赞啥的。也是极好的。
后面我又多方试探,发现,pom.xml文件还是可以继续精简的。那个依赖可以直接只要下面2个依赖就可以了。
其他的都是多余的。
[html] view
plain copy
<dependencies>
<!-- Spring MVC support -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- Tag libs support for view layer -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<scope>runtime</scope>
</dependency>
</dependencies>
就这2个jar包就够用了。
想不想看看,现在这个maven项目的所有jar包的依赖关系呢?
看图。
好,这个就是现在的修改过,去掉多余的jar包之后的maven jar 包依赖关系图。
相关文章推荐
- 使用Intellij idea搭建maven java web项目
- 使用IntelliJ IDEA 14和Maven创建java web项目(maven 配置)
- 【SpringMVC】Intellij Idea搭建一个完整的 spring mvc项目 (附带ibatis的配置与使用)
- 使用maven搭建Java Web的spring MVC项目
- Maven搭建Spring MVC4 Hibernate4全注解项目配置实例详解
- Java Web笔记:搭建环境和项目配置(MyEclipse 2014 + Maven + Tomcat)
- 基于IntelliJ IDEA15 搭建最简单的maven项目
- IntelliJ IDEA 2017-初学者搭建简单MAVEN的SpringMVC项目
- 用maven快速搭建spring mvc的web项目(配置到jackson 和 任务调度)
- 利用maven及nexus简单搭建Struts2项目小结
- struts2+hibernate4+spring3+maven搭建项目:简单账务管理系统第二篇:struts+spring搭建
- java web项目中配置spring mvc
- Activiti环境配置、项目搭建、与Spring集成、简单示例
- spring mvc-quartz的maven配置管理项目
- intellij idea 12 搭建maven web项目 freemarker + spring mvc(续)
- maven搭建spring mvc+ibatis项目
- 简单MVC项目搭建--Java1.7+Eclipse luna + Maven 3.2.5 +spring 4.1.4
- springmvc+mongodb+maven 项目搭建配置
- 使用Maven构建Spring MVC项目的简单示例
- IntelliJ IDEA使用Maven快速开发Java Web项目,并添加JFinal依赖