多语言展示
当前在线:1653今日阅读:84今日分享:32

intellij idea2019开发servlet(java web)项目

开发环境:openJDK11、tomcat9、intellij idea2019。发这篇文章的主要目的是记录一下踩坑记录,因为用的都是比新的东西,我在网上搜的时候,依然是各种无用的东西一大堆。其中碰到的最让我花时间的问题就是乱码的问题。网上搜啊试啊,试得我怀疑人生。。。所以就有了这篇文章,希望对大家有所帮助。内容主要包括:openJDK的下载安装、tomcat的下载安装、tomcat虚拟主机的简单配置、tomcat控制台乱码问题、intellij idea2019的下载安装、用intellij idea2019创建并简单配置servlet(java web)项目、servlet输出中文乱码问题等。。。
工具/原料
1

openJDK11安装包

2

tomcat9安装包

3

intellij idea2019开发工具

方法/步骤
1

先来下载openJDK11,下载地址:http://jdk.java.net/java-se-ri/11。进入页面后,如下图红框中所示。linux系统选择第一个,windows系统选择第二个。因为我是win10系统,所以我选择第二个下载,后面我都会以windows为例进行操作。这里说下为什么选择openJDK11,原因是openJDK11是最新的长期支持版本。

2

安装openJDK,其实就是配置环境变量。将下载好的openJDK解压,我解压到了E:\Program Files\jdk-11.0.2这个目录。开始配置环境变量。在“我的电脑”上右击,在弹出的菜单中选择“属性”,弹出系统信息窗口。单击左侧“高级系统设置”,弹出系统属性窗口。选择“高级”选项卡,单击下方“环境变量”按钮,弹出环境变量窗口。单击用户环境变量列表下方的“新建”按钮,弹出新建用户变量窗口。变量名输入JAVA_HOME,路径输入E:\Program Files\jdk-11.0.2(你解压出的openJDK的目录),点击确定。在用户环境变量列表中选择'Path'环境变量,点击列表下方的“编辑”按钮,弹出编辑环境变量窗口。单击“新建”按钮,输入%JAVA_HOME%\bin,单击右下方“确定”按钮,完成用户环境变量配置。点击系统环境变量下方的“新建”按钮,弹出新建系统变量窗口。变量名输入JAVA_HOME,路径输入E:\Program Files\jdk-11.0.2(你解压出的openJDK的目录),点击确定。 在系统环境变量列表中选择“Path”环境变量,点击列表下方的“编辑”按钮。弹出编辑环境变量窗口。单击“新建”按钮,输入%JAVA_HOME%\bin,单击右下方“确定”按钮,完成系统环境变量配置。在编辑环境的变量的时候,win7系统的话是输入一个';'作为分隔符,然后输入%JAVA_HOME%\bin,点击“确定”就可以了。环境变量建好后,先点击环境变量窗口的“确定”按钮,再点击系统属性窗口的“确定”按钮。到这里openJDK就安装好了。我们来验证一下是否安装成功,按win(键盘左下方ctrl键右边的键)+R键,弹出运行窗口,输入cmd,打开命令行窗口,输入java -version。具体信息请参考下方图片。

3

下载tomcat9,下载地址:http://tomcat.apache.org/。我是64位win10,所以我下载的是第4个 64-bit Windows zip

4

将下载好的tomcat9安装包解压到某个目录,我解压到了E:\Program Files\apache-tomcat-9.0.20这个目录。我们来启动tomcat。进入E:\Program Files\apache-tomcat-9.0.20\bin目录中,按住shift键,同时单击鼠标右键,在弹出的菜单中选择“在此处打开Powershell窗口“(win7是在此处打开命令窗口),打开命令行窗口。输入startup.bat(在没有输入完整的情况下,可以按tab键进行补全)。

5

我们来对上一步作个补充。tomcat启动后,会弹出一个tomcat的窗口。但我们发现,其中的中文都是乱码。我们在tomcat窗口的标题栏上单击鼠标右键,在弹出的菜单中选择“属性”,弹出tomcat属性窗口,我们看到当前tomcat窗口的编码为GBK。既然出现乱码了,那么tomcat窗口在输出内容时的编码肯定不是GBK。我们进入E:\Program Files\apache-tomcat-9.0.20\conf这个目录,用记事本打开logging.properties这个文件,可以看到这段代码 java.util.logging.ConsoleHandler.encoding = UTF-8,这段代码控制着tomcat控制台窗口输出内容的编码。也就是说现在tomcat控制台窗口输出编码为utf-8。这时我们有两种办法可以解决乱码问题。第一种:将代码直接改为java.util.logging.ConsoleHandler.encoding = GBK。这种方法简单粗暴,但我并不推荐这么做。因为utf-8是通用编码,GBK是中文编码。如果改了,说不定以后某些地方还出现乱码的问题,所以最好不要动tomcat的代码。第二种:新建一个文本文件,名字随便(我起的是 AddTomcatPageCode.bat),将扩展名改为.bat,也就是window批处理文件。里面写入代码set code_page_item='HKCU\Console\Tomcat'reg add %code_page_item% /v 'CodePage' /t REG_DWORD /d 0x0000fde9 /f>nul保存关闭文件。双击这个文件运行一下。我们再次启动tomcat,会发现tomcat控制台窗口中的中文能正常显示了。解释一下第二种方法做了什么事情。第二种方法是在HKEY_CURRENT_USER\Console下创建了一个名为Tomcat的注册表项,并在这个新建的Tomcat下新建了一个键为CodePage,类型为REG_DWORD,值为fde9(十六进制)的键值项。Tomcat控制台窗口在显示内容的时候会以这个键值项的值作为字符编码来进行内容的显示。我们可以在tomcat控制台窗口的标题栏上单击鼠标右键,在弹出的菜单中选择“属性”,弹出tomcat属性窗口,我们看到当前tomcat窗口的编码为utf-8。

6

下载intellij idea安装程序,下载地址:https://www.jetbrains.com/idea/。

7

安装intellij idea,双击下载好的安装程序进行安装。安装中有一步需要选择,这一步稍微说一下。Create Desktop Shortcut(创建桌面快捷图标),32位系统选择第一个,64位系统选择第二个。Create Associations(创建关联),可以3个全选,以.java、.groovy、.kt结尾的文件,默认会使用intellij idea打开。其他的选项不用管。

8

打开intellij idea,会提示你进行激活。关于激活我就不多说了,大家肯定各有各的方法(^_^)。我们点击“Create New Project”进入项目类型选择窗口,点击左侧的“Java Enterprise'。“Project SDK”选择openJDK的安装目录,我的是E:\Program Files\jdk-11.0.2。“Java EE version”选择Java EE 8。点击“Application Server”右边的“New”按钮,在弹出的菜单中选择“Tomcat Server”,弹出选择Tomcat安装目录的窗口,单击“Tomcat Home”右侧的文件夹图标,选择tomcat的安装目录,我的是E:\Program Files\apache-tomcat-9.0.20,选择完成后,点击“OK”。“Additional Libraries and Frameworks”列表中选择“Web Application”,然后下方“Versions”选择4.0,勾选上“Create web.xml”。上面的操作完成后,点击右下方的“Next”,进入下一步。“Project name” 中输入项目的名称,点击“Project location”右边的“...”按钮,选择项目保存的位置(或者直接输入项目保存的位置),完成后,点击最下方的“Finish”,完成项目的创建。

9

在创建servlet页面之前,我们先选择一下servlet页面所依赖的jar包,servlet依赖的是E:\Program Files\apache-tomcat-9.0.20\lib\servlet-api.jar。我们点击“File -> Project Structure”,弹出Project Structure窗口,点击左侧的“Modules”,接着在右侧点击“Dependencies”选项卡,接着点击最右侧的“+”,在弹出的菜单中选择“Library”,弹出Choose Libraries窗口,选择“Tomcat 9.0.20”,点击下方的“Add Selected”,关闭窗口。最后先点击最下方的“Apply”,再点击“OK”,完成操作。这时我展开项目中的“External Libraries”,就可以看到“Tomcat 9.0.20”了。

10

下面我们创建servlet页面,在项目的“src”目录上点击鼠标右键,选择“New”,接着选择“Create New Servlet”,弹出New Servlet窗口。“Name”是servlet页面的名称(我输入的是View)。“Package”是这个类所属的包名(我输入的是Animation)。“Class”是类名,输入完Name和Package之后会自动生成,不用管。“Create Java EE6 annotated class”勾选取消,不需要。点击“OK“,完成servlet页面的创建。

11

servlet页面创建完成后,在web.xml中会自动给我们添加一段代码     View     Animation.View 这样还不够,我们还需要添加View页面访问路由。为了避免servlet-name重名,我们还需要把servlet-name修改一下,最后的代码是     AnimationView     Animation.View       AnimationView     /animation/view url-pattern就是Animation.View页面的访问路由。

12

下面我们写些简单的代码。首页修改index.jsp页面,修改后的代码<%@ page contentType='text/html;charset=UTF-8' language='java' %>         番剧         在线观看    

13

修改Animation.View类的代码,把doPost方法删掉,在doGet方法中添加如下代码PrintWriter out = response.getWriter() String outStr = '

hai,你好sao啊!

' out.println(outStr);

14

代码写完之后,我们来编译一下。点击”Build -> Build Artifacts“,在弹出的菜单中选择”Build“进行编译,编译完成后,可以看到,我们项目下多了一个out目录。这个目录下的文件,就是编译后产生的文件。

16

修改host文件。打开C:\Windows\System32\drivers\etc\host文件,添加代码127.0.0.1 www.web1.local保存并退出。无法保存的,先将host文件到别的地方,修改完成后,再复制到C:\Windows\System32\drivers\etc,替换掉原来的host文件即可。

17

重启一下tomcat。进入E:\Program Files\apache-tomcat-9.0.20\bin目录下,按住shift键,同时单击鼠标右键,在弹出的菜单中选择“在此处打开Powershell窗口“(win7是在此处打开命令窗口),打开命令行窗口。输入shutdown.bat(在没有输入完整的情况下,可以按tab键进行补全),关闭tomcat。tomcat关闭后,输入startup.bat(在没有输入完整的情况下,可以按tab键进行补全),启动tomcat。接着打开浏览器,在地址栏中输入http://www.web1.local:8080/,显示是index.jsp页面的内容,点击”在线观看“超链接跳转到Animation.View页面。

18

我们来对上一步作个补充。我们发现Animation.View页面虽然可以显示,但中文字符显示的却是'?'问号,难道是我们输出的内容太那个。。。被和谐了??!我们打开Animation.View类文件,在doGet方法中添加如下代码response.setContentType('text/html'); response.setCharacterEncoding('utf-8');我们打开浏览器,在地址栏中输入http://www.web1.local:8080/,点击”在线观看“超链接跳转到Animation.View页面,嗯?正常了,看来我们输出的内容还是挺正规的,没有被和谐#^_^,其实没什么高深的,就是输出编码的问题。但是这两行代码一定要写在response.getWriter()前面,不然没效果。 这里我就要吐槽一下了,吐槽一下了,吐槽一下了,就是这的乱码问题!我在网上找了好多资料,找了整整两天!!网上写的那些东西基本都差不多,要么是说tomcat默认是iso-8859-1编码,要在server.xml文件中的子节点上添加URIEncoding='utf-8';要么就是在servlet页面中把要输出的字符串转码,代码如下String outStr = '

hai,你好sao啊!

' String newStr = new String(outStr.getBytes('iso-8859-1'), 'utf-8') out.println(newStr);可是依然没用,输出的东西更加乱得让人看不懂了。其实我感觉吧以上两种还好,更夸张的是,还有说在E:\Program Files\apache-tomcat-9.0.20\bin\catalina.bat文件中加上如下代码set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MaxPermSize=1024m -Dfile.encoding=UTF-8这个更是让我一脸懵逼,而且加进去之后,还是乱码!看完网上那些资料后,我也开始怀疑是不是tomcat本身代码中有某些问题,或是JVM编译时某些问题,因为网上那些资料我确实看到有人说是tomcat代码遗留的问题啦,JVM的问题啦。后来,就在我就快要放弃的时候,我突然想起来tomcat中的webapps\examples中不是有一些示例么,示例中会不会有输出中文的servlet类呢?于是,我打开浏览器进入http://127.0.0.1:8080/,哎呀,阿伟死了!还真有啊!就是那个webapps\examples\WEB-INF\classes\RequestInfoExample.java文件,对!就是那个文件!哎呀呀。。。

19

最后,感谢大家的收看,哦不,观看,谢谢!有不懂的地方可以问我,我尽量解答。

推荐信息