Vscode 配置java 您所在的位置:网站首页 javaweb应用的jsp文件存放位置 Vscode 配置java

Vscode 配置java

#Vscode 配置java| 来源: 网络整理| 查看: 265

前置条件,安装JDK,VScode(其中依赖插件:Extension Pack for Java,Language Support for Java(TM) by Red Hat,Maven for Java,Tomcat for Java),Maven, 1.1在vscode上配置Tomcat

1)先安装:官方网站(最好使用9.0的版本,因为10.0的版本中的一些名字会发生改变)

2)安装Tomcat for Java插件:然后点击插件中右上角的 + 号

image-20210908145342241

然后选择你本地安装Tomcat的目录:image-20210908145535503

完成之后:image-20210908145613334

2创建java_web项目:

2.1 在vscode中按快捷键:ctrl + shift + p 然后输入 maven,之后在选择如下图中所示:

image-20210908150144839

2.2 选择webapp:

image-20210908150319511

2.3 版本可以随便选,这里以1.4为例

image-20210908150504570

2.4 输入项目路径及名称,这里可以随意

image-20210908150641179

image-20210908150657188

2.5选择文件夹存放项目

image-20210908150734822

2.6 maven 开始部署相关配置

2.6.1 当询问你选择version时,直接回车即可image-20210908151106022

2.6.2 当询问你选择package时,直接回车即可

image-20210908151202515

2.6.3 当出现 如下提示就表明项目建立好了:image-20210908151258044

2.7 然后建立所需要的目录:java,test,resources,其文件结构图如下所示:

image-20210908151658483

其中java文件夹用来存放java文件, resources用来存放资源文件(maven编译时会识别文件夹名所以必须要叫resources, 不然就要在pom.xml中手动配置资源文件夹)到此一个web项目的框架已经建好了, 使用maven创建web项目的话导包都是在pom.xml中进行

3 运行java_web程序

3.1 按下ctrl+shift+p, 输入maven,悬着执行命令

image-20210908151954062

3.2 然后选择你刚刚创建的项目,我这边是mercurows

image-20210908152054422

3.3 然后选择package

image-20210908152129024

maven对项目编译完成之后终端显示如下:

image-20210908152220654

​ 其中还会生产target目录

3.4 在Tomcat上运行项目

​ 项目左边文件导航中:项目文件->target->项目名称.war

​ 右键选择用tomcat运行:

image-20210908152647487

3.5 如果终端没有报错的话,就可以展开TOMCAT SERVERS插件 使用浏览器打开项目

image-20210908152843766

​ **其打开的是 webapp中的index.jsp中的文件 ****

image-20210908153030487

4.1 maven 的一些功能

4.1.1 可使用项目其中的clean功能,清理target目录

image-20210908153426918

​ 然后项目中的target目录就会消失。

附加:导入jar包方法:(这里以 servlet.jar包 为样例说明)

0.1 先来看看如果没有导入JDK1.7没有自带的servlet包会出现什么情况:

image-20210908154842065

法一:不依赖于maven包管理的手动配置包(最下文有更新方法~)

1.1 在项目目录文件下建立lib文件夹 然后在其中放入需要导入的包(servlet-api)

image-20210908154236635

*注:担心兼容问题,这里用的servlet包是Tomcat lib中的 servlet-api包

image-20210908155403673

1.2在资源管理中找到项目根目录下的.classpath文件,然后用vscode打开

目的:只需将 jar 的路径填入到 path 中即可,源码路径填入到 sourcepath 中即可(暂时不清楚源码哪里看= =、、)

​ 然后, 增加一行 classpathentry,并填入正确的路径,可以填相对路径,也可以填绝对路径

由于我不清楚源码哪里看,所以上面代码可以将``sourcepath`给删除了,变成以下代码:

注:如果需要填写sourcepath的话,需要在lib下建立一个sourcepath文件夹用来存放源码:

image-20210908161042150

综上,我的。classpath文件配置为:

1.3 重启vscode

导入成功:

image-20210908161533304

但是实际上我这虽然识别出了包,但是打包项目时失败了,文末有类似问题的解决方法。

image-20210908161819295

法二:借助maven的包管理

[这里推荐一个Maven包管理的网站https://mvnrepository.com/;->search你需要寻找的包->点击其中的一个搜索结果(可能不唯一,你得一个一个试,不过一般来说下载量最多那个就是了)->选择下栏的Maven的代码(其格式类似于下面的那个) ]

1.1 打开项目中的pom.xml配置文件,然后在 与 代码中添加以下代码:

javax.servlet servlet-api 2.5 provided

综上,我的pom.xml配置文件为:

4.0.0 com.test mercurows 1 war mercurows Maven Webapp http://www.example.com UTF-8 1.7 1.7 junit junit 4.11 test javax.servlet servlet-api 2.5 provided mercurows maven-clean-plugin 3.1.0 maven-resources-plugin 3.0.2 maven-compiler-plugin 3.8.0 maven-surefire-plugin 2.22.1 maven-war-plugin 3.2.2 maven-install-plugin 2.5.2 maven-deploy-plugin 2.8.2 法二可以正常的打包运行项目,初始化Servlet类:

image-20210908162854482

image-20210908162913626

附件:

​ web.xml配置代码:

Archetype Created Web Application demo servlet.demo demo /demo

项目文件结构:

image-20210908163553496

2021-11-3 更新 法一:不依赖于maven包管理的手动配置包

在上文提到了,用.classpath文件手动导入包之后可以在本地运行,但是打包到tomcat后就无法正常运行,

现在给出解决方法,这里以数据库连接为例子(即手动导入mysql-connector-java版本为8.0.27)。(同理这里也就只需要将mysql连接jar包放入lib目录中,以及在.classpath 文件中新添一条命令(在下图))

1.1)先不使用maven包管理,直接使用 (法一) 的方法,进行测试(本地连接):

其中pom.xml中没有依赖mysql-connector-java 包

image-20211103115625331

本地构建项目完后本仓库也没有下载 mysql-connector-java 因此,这里依靠的只有lib里面的

image-20211103115932034

文件框架:

在.classpath中新增的指令:

1.2)执行相关的访问数据库指令,其执行结果如下,可以看出可以正常访问远程数据库:

image-20211103121713438

1.3)打包项目,放到tomcat中运行:

然后提示这个错误:

image-20211103123402165

再看看tomcat里面是作怎么说的:

image-20211103123448243

很明显说明这数据库连接包没有正常导入。

2.1)寻找问题:

在打算将打包的放在tomcat服务器上运行的 *.war打开来看看之前,先来了解一下里面的相关的文件及其作用

引用于:WEB-INF目录与META-INF目录详解

WEB-INF简介

WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。

如果想在页面中直接访问其中的文件,必须通过 web.xml 文件对要访问的文件进行相应映射才能访问。

WEB-INF目录的作用

/WEB-INF/web.xml

Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。

/WEB-INF/classes/

包含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中。

/WEB-INF/lib/

存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件。

/WEB-INF/src/

源码目录,按照包名结构放置各个Java文件。

/WEB-INF/database.properties

数据库配置文件

/WEB-INF/tags/

存放了自定义标签文件,该目录并不一定为 tags,可以根据自己的喜好和习惯为自己的标签文件库命名,当使用自定义的标签文件库名称时,在使用标签文件时就必须声明正确的标签文件库路径。例如:当自定义标签文件库名称为 simpleTags 时,在使用 simpleTags 目录下的标签文件时,就必须在 jsp 文件头声明为:。

/WEB-INF/jsp/

jsp 1.2 以下版本的文件存放位置。改目录没有特定的声明,同样,可以根据自己的喜好与习惯来命名。

WEB-INF/jsp2/

与 jsp 文件目录相比,该目录下主要存放 Jsp 2.0 以下版本的文件,当然,它也是可以任意命名的,同样为区别 Jsp 1.2以下版本的文件目录,通常才命名为 jsp2。

META-INF

相当于一个信息包,目录中的文件和目录获得Java 2平台的认可与解释,用来配置应用程序、扩展程序、类加载器和服务manifest.mf文件,在用jar打包时自动生成。

对照与上面的所介绍的,我们应去找*.war目录下的/WEB-INF/lib/文件夹。然后我发现里面并没有 mysql-connector-java jar包,也就是说上传至服务端时完全没用到。

image-20211103165957852

2.2)尝试解决问题:

在上面我们还发现一个问题,就是对照与上面附录中的项目结构,发现还少了一个.classpath 文件。

image-20211103170517482

因此,我们就顺手将项目中的.classpath文件也丢一份进,再然后为了能顺利的将我们需要的数据库连接jar包打包到tomcat服务器中,这里需要我们手动的复制一份lib(里面包含所需的*.jar文件)。如下图:

image-20211103171335227

再次打包项目,之后就会发现对应的lib文件里面有我们想要的数据库连接jar了:

image-20211103173846710

然后就可以正常访问到服务器了:

image-20211103173241718



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有