目录
1.找不到Project Explorer/Package Explorer
2.Error:Cannot change version of project facet Dynamic Web Module to 3.1
3.Error:Could not publish server configuration for Tomcat v8.0 Server at localhost
一、前言
动态网页的实现方法有很多,本文讲述的是基于Maven Project实现JavaWeb项目的环境配置,以及SpringMVC框架部署的步骤和方法
关键词:eclipse、JavaWeb、Maven、SpringMVC
配置JavaWeb的环境需要完成以下步骤:
- Java环境配置
- eclipse下载
- Tomcat的配置
- Maven的配置
在前面工作的基础上,部署SpringMVC框架需要完成以下步骤:
- 导入相关的依赖包
- 添加SpringMVC所需的配置文件
- 配置web.xml文件
在配置中需要的文件和软件资源,大家可以从官网下载,需要注意一下版本问题
或者也可以直接下载我整理好的压缩包:https://pan.baidu.com/s/1BuU1ZpeZ2L2xGDN8xN6JNg 提取码:csdn
二、具体步骤
(一)Maven Project环境配置
1.Java环境配置
下载JDK1.8
直接解压作者提供的压缩包:jdk1.8.0_111.zip
或者从官网下载:JDK官网下载
配置Java的环境变量
环境变量是在操作系统中用来指定操作系统运行环境的一些参数,可以分为用户变量与系统变量两类。其中,系统变量对所有用户起作用,而用户变量只对当前用户起作用。
1)计算机>属性>高级系统设置>环境变量
2) 新建系统变量JAVA_HOME,通过浏览目录获取JDK的路径
3)把%JAVA_HOME%\bin添加至用户变量PATH
编辑用户变量PATH,新建,输入%JAVA_HOME%\bin,确定
如果是windows7系统,编辑用户变量Path
在末尾添加 ;%JAVA_HOME%\bin,确定
4) 测试
[Windows+R]>输入cmd>输入java -version
显示java的版本即为配置成功
2.eclipse下载
直接解压作者提供的压缩包:eclipse.rar
或者从官网下载:eclipse官网下载
eclipse无需安装,直接将压缩包解压在指定文件夹下就可以直接使用。双击eclipse.exe运行程序
第一次启动eclipse需要配置工作空间(即项目所在的文件夹)的位置,可以选择默认路径(eclipse\workspace),也可以自定义工作空间
3.Tomcat的配置
Tomcat( Apache Tomcat ) 是Jakarta Servlet、Jakarta Server Pages、Jakarta Expression Language、Jakarta WebSocket、Jakarta Annotations和Jakarta Authentication 规范的开源实现 。你可以把Tomcat简单理解为一个免费、开源的轻量级Web应用服务器。
下载tomcat
直接解压作者提供的压缩包:apache-tomcat-8.0.39.zip
或者从官网下载:tomcat官网下载
请记住Tomcat解压后的位置。为了方便,您可以把JavaWeb的所有软件配置于同一目录下
在eclipse中配置tomcat
1)启动eclipse,在左上角的菜单栏中选择Window>Preferences
2)在左侧导航栏中选择Server>Runtime Environments,点击Add
3)根据Tomcat的版本,选择v8.0
4)点击Browse,选择apache-tomcat的路径,然后点击Finish
4.Maven的配置
Maven是一个管理项目的仓库,可以对项目进行构建、依赖的管理。
下载Maven
直接解压作者提供的压缩包:apache-tomcat-8.0.39.zip
或者从官网下载:maven官网下载
Maven环境变量的配置
解压Maven压缩包到某一目录下,配置Maven的环境变量,与Java的环境配置类似,具体步骤如下:
1)计算机>属性>高级系统设置>环境变量
2)新建系统变量MAVEN_HOME,通过浏览目录获取apache-maven的路径
3)把%MAVEN_HOME%\lib添加至用户变量PATH中
4)测试:[Windows+R]打开运行界面,输入cmd
在命令行中输入mvn -version,如果能查到Maven的版本说明配置成功
修改Maven本地仓库的位置
事实上到这里Maven仓库还没完全配置好。Maven默认的仓库路径为C:\Users\.m2\repository,如果把Maven下载的jar包都放在C盘时间久了可能会造成系统卡顿,所以一般会通过修改Maven目录下conf\setting.xml文件来改变仓库的位置
1)在apache-maven同级目录下新建一个文件夹.m2,在.m2文件夹下再新建一个文件夹repository
2)打开目录apache-maven-3.3.9\conf\setting.xml文件,在如图所示的位置中将本地仓库的位置修改为新建的.m2\repository的路径
5.建立一个Maven项目
1)左上角的菜单栏中,File>New>Maven Project
2)选择工作空间(即项目所在的目录),Next
3)选择最后一个maven-archetype-webapp
4)输入包名(Group Id)和项目名(Artifact Id),包名一般填com.china,项目名自定义;Finish
(二)SpringMVC部署
1.导入所需的依赖包
配置pom.xml文件
1)在Project Explorer中双击pom.xml文件,在下方导航栏中选择pom.xml选项卡
打开后如下图:
2)选中 <dependencies>...</dependencies>部分的文本
替换为下列代码:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- spring版本号 -->
<spring.version>4.0.2.RELEASE</spring.version>
<!-- mybatis版本号 -->
<mybatis.version>3.2.6</mybatis.version>
<!-- log4j日志文件管理包版本 -->
<slf4j.version>1.7.7</slf4j.version>
<log4j.version>1.2.17</log4j.version>
<!-- pagehelper版本号 -->
<pagehelper-version>5.1.4</pagehelper-version>
<jsqlparser-version>1.2</jsqlparser-version>
<corenlp.version>3.6.0</corenlp.version>
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.49</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<!-- 表示开发的时候引入,发布的时候不会加载此包 -->
<scope>test</scope>
</dependency>
<!-- spring核心包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- mybatis核心包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<!-- mybatis/spring包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.2</version>
</dependency>
<!-- aspectjweaver 事务管理用的 -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.7.0</version>
</dependency>
<!-- 导入alibaba数据源 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.27</version>
</dependency>
<!-- oracle数据库驱动??? -->
<!-- 导入Mysql数据库链接jar包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.30</version>
</dependency>
<!-- aspectjweaver -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.7.0</version>
</dependency>
<!-- JSTL标签类 -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- 日志文件管理包 -->
<!-- log start -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<!-- 格式化对象,方便输出日志 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.1.41</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- log end -->
<!-- 映入JSON -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.5.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.1</version>
</dependency>
<!-- 上传组件包 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>
<!-- 读取excel -->
<dependency>
<groupId>net.sourceforge.jexcelapi</groupId>
<artifactId>jxl</artifactId>
<version>2.6.12</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!--pagehelper核心包 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>${pagehelper-version}</version>
</dependency>
<!-- pagehelper的依赖包:jsqlparser -->
<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>${jsqlparser-version}</version>
</dependency>
<!-- 阿里的easyExcel插件 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>1.1.2-beta5</version>
</dependency>
</dependencies>
2)在build中<finalName>...</finalName>标签的下面添加代码
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.7.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
配置好后如下图所示:
3)单机右键,选择Save保存
4)在左侧目录中,鼠标右键单击项目名称,选择Maven>Update Project
勾选你的项目,OK
等待几秒后,在Package Explorer中可以看到JRE的版本从1.5变为了1.8
2.添加SpringMVC框架配置文件
1)复制作者提供的压缩包 ssm配置文件.zip 目录ssm配置文件/resourse 下的5个文件
2)打开eclipse,在左侧的Project Explorer中右键单击 src/main 目录下的resourse文件夹,点击Paste,粘贴上面的5个文件
3)复制 ssm配置文件.zip 中的web.xml文件的信息
在Project Explorer中打开 src/main/webapp/WEB-INF 下的文件web.xml,替换为 ssm配置文件/web.xml 的内容,右键Save保存
ssm配置文件/web.xml 的内容:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>Archetype Created Web Application</display-name> <!-- 启动一个WEB项目的时候,会去读它的配置文件web.xml.读两个节点: <listener></listener> 和 <context-param></context-param> --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-mybatis.xml</param-value> </context-param> <!-- spring 编码格式--> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <async-supported>true</async-supported> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- spring 监听器 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <!-- springmvc servlet--> <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:spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> <async-supported>true</async-supported> </servlet> <servlet-mapping> <servlet-name>SpringMVC</servlet-name> <url-pattern>*.action</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>/login.jsp</welcome-file> </welcome-file-list> </web-app>
3.后端代码分层
创建java包
1)打开Project Explorer,单击右键main,选择New>Other
2)在上方的Wizards输入框中输入Package,选择如下选项,点击Next
- Source folder:myproject/src/main
- Name:java
- 点击Finish
在Package Explorer中可以看到包的组织结构
创建myproject文件夹
1)在Project Explorer中,单击右键java,选择New>Folder
2)输入文件名myproject,点击Finish
如果创建文件夹后找不到新建的文件夹,单击右键>Refresh
类比上述方法,在src/main/java/myproject目录下新建五个文件夹——
- biz: 接口层
- control: 控制层
- dao: 存放数据库访问接口
- mapper: 存放mybatis的数据库映射xml文件
- vo: 存放显示层对象定义
创建Java类
1)单击右键src/main/java/myproject/control,New>Other
2)输入class,选择Class,点击Next
3)输入类名Control,点击Finish
创建JSP文件
1)在src/main/webapp目录下,单击右键webapp>New>JSP File
2)输入文件名test.jsp,点击Finish
4.测试
·1)打开test.jsp,将其中的内容替换为下列代码:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>测试页面</title>
</head>
<body>
测试成功!
</body>
</html>
单击右键>Save保存
2)打开index.jsp, 将其中的内容替换为下面的代码,右键Save保存
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
+ path + "/";
//http://localhost:8088/myproject/
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>主页</title>
</head>
<body>
<a href="<%=basePath%>control/test.action">你好,世界!</a>
</body>
</html>
3)打开Control.java,将其中的内容替换为下面的代码,右键Save保存
package myproject.control;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("control")
public class Control {
@RequestMapping("test")
public String test() {
return "/test.jsp";
}
}
5.启动服务器并运行项目
打开index.jsp,右键Run As>Run on Server
选择Tomcat8.0,点击Finish(勾选Always之后,下次运行时不必再设置)
三、常见问题
1.找不到Project Explorer/Package Explorer
添加Project Explorer窗口:Window>Show View>Project Explorer
添加Package Explorer窗口:Window>Show View>Other>输入Package Explorer
2.Error:Cannot change version of project facet Dynamic Web Module to 3.1
Markers提示错误如下:
解决办法:在目录 eclipse工作空间/项目名/.settings下,用记事本打开文件org.eclipse.wst.common.project.facet.core.xml
将<installed facet="jst.web" version="3.0"/>中的version="3.0"改为Markers提示的版本
3.Error:Could not publish server configuration for Tomcat v8.0 Server at localhost
eclipse有弹窗提示 :
解决办法:在eclipse中打开Servers>Tomcat>server.xml
在底部删除<Context>重复的路径,重启Tomcat
参考资料: