Java-Servlet服务端初试

9 篇文章 0 订阅
7 篇文章 0 订阅

近来要做自己的毕业设计,顺便抛弃了之前使用的Golang语言,而使用java来写后台数据的交互,由于是新进坑,所以没有直接从各大框架开始做,而选择了servlet,并且还直接抛弃了Eclipse,转而使用Intellij IDEA。
因为客户端使用的是ios,ios基本的json请求之前都已经写好了,所以主要记录一下mac环境下服务端从零开发的步骤。


正文开始,第一步肯定是先下载Intellij IDEA这个IDE啦,我直接选择了专业版,因为Tomcat插件是自带的,而社区版还要搞什么maven,对于我这种新入门的肯定一切从简出发啦。

点击进入Intellij_IDEA官方下载地址

社区版(Community)是不需要¥的,而专业版(Ultimate)是需要¥的,而且还很贵的噢,我下的是当时的最新版2016.3.1,对于手上没有多少¥的童鞋,我这里有条偏方,再次重申,我是非常非常滋瓷正版的噢,在有钱的前提下。好了,到了这一步就完成了IDE部分了。

然后就是Tomcat了,作为有新用新的我选择的肯定是最新版本9.0.0.M15的啦,那么先打开tomcat的网站

Tomcat官方下载地址


我们要下载的是tar.gz。文件下载后解压放到/Users/Libary/你的用户名/,现在进入刚解压好的tomcat文件夹,输入sudo sh startup.sh,这样就完成安装啦。然后我们新建一个文件,叫tomcat,输入内容

#!/bin/bash
case $1 in
start)
sh /Users/Library/Tomcat/bin/startup.sh
;;
stop)
sh /Users/Library/Tomcat/bin/shutdown.sh
;;
restart)
sh /Users/Library/Tomcat/bin/shutdown.sh
sh /Users/Library/Tomcat/bin/startup.sh
;;
*)
echo “Usage: start|stop|restart”
;;
esac
exit 0

注意代码中的路径和你tomcat的路径是不是一样噢,如果之前的解压路径和我不一样,这里就要作出相应的修改。然后把这个文件放进去/usr/bin/,这里要注意的是在Mac 10.11之后,root权限也不能直接把文件放进去这个地方,解决方法是重启电脑按住command+R进入恢复界面,在终端输入命令scrutil disable,再重启电脑后就可以放进去了,我极力建议在放完tomcat后重新在恢复界面的终端输入csrutil enable重新开启这个保护功能。
然后我们就可以直接在命令行输入tomcat start来启动tomcat服务器了,但是苹果现在都已经开始强制https的连接了,作为紧跟潮流的我怎么可能还留着http呢,接下来我们就让tomcat开启TLS的功能。

不使用https的童鞋可以跳过这一步~

为了简洁,许多展开来的知识说明我这里就不多言了,想了解的童鞋请自行Google。以下我们生成的文件都集中放在桌面上。由于我这些步骤都已经做过了,所以就没有那么多图片的去辅助说明。

生成服务端的证书

打开终端,输入keytool -genkey -v -alias tomcat -keyalg RSA -keystore /Users/用户名/Desktop/tomcat.keystore -validity 36500,输入完这个命令后有两个信息是要重点注意的,一个是密码,这个密码要自己记住,然后是名字姓氏,这里如果是用本机进行调试的话就填localhost,其它都可以不填,最后一步会要你填y或者n,我们就填入y就成功了。

生成客户端的证书

输入keytool -genkey -v -alias mykey -keyalg RSA -storetype PKCS12 -keystore /Users/用户名/Desktop/mykey.p12,这里除了密码,其它的信息都可以不填,然后打开应用,如图点击login,然后把刚才生成的p12文件拖进去。

服务端信任客户端证书

输入keytool -export -alias mykey -keystore /Users/用户名/Desktop/mykey.p12 -storetype PKCS12 -storepass 密码 -rfc -file /Users/用户名/Desktop/mykey.cer

然后输入keytool -import -v -file /Users/用户名/Desktop/mykey.cer -keystore /Users/用户名/Desktop/tomcat.keystore,这样客户端的证书就放进服务器里面去了

客户端信任服务端证书

输入keytool -keystore /Users/用户名/Desktop/tomcat.keystore -export -alias tomcat -file /Users/用户名/Desktop/tomcat.cer,双击加入信任。

配置Tomcat服务器

打开Tomcat根目录下的/conf/server.xml,找到Connector port=”8443”配置段,去掉注释修改成

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
        maxThreads="150" SSLEnabled="true" scheme="https" 
        secure="true" clientAuth="true" sslProtocol="TLS" 
        keystoreFile="/Users/Mario.Hu/Desktop/tomcat.keystore" keystorePass="hukangze" 
        truststoreFile="/Users/Mario.Hu/Desktop/tomcat.keystore" truststorePass="hukangze">
        <!--<SSLHostConfig>
            <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
                         type="RSA" />
        </SSLHostConfig>-->
    </Connector>

然后打开/conf/web.xml,在最后面添加

<login-config>
 <auth-method>CLIENT-CERT</auth-method>
<security-constraint> 
<web-resource-collection > 
<web-resource-name >SSL</web-resource-name> 
<url-pattern>/*</url-pattern> 
</web-resource-collection> 
<user-data-constraint> 
<transport-guarantee>CONFIDENTIAL</transport-guarantee> </user-data-constraint> 
</security-constraint>

这样我们的https就建好了,在终端输入tomcat restart重启一下tomcat,在浏览器输入localhost:8443,就成功进入tomcat页面了~~

接下来我们打开Intellij IDEA

创建一个新的工程


点选maven来管理我们的项目,点击webapp来初始化,点击next


按照自己的喜好输入对应的名称


到这一步没问题,继续点next


继续next


进入后的界面应当是这样子的,右下角的提示框点击Enable Auto-Import


然后使用快捷键command+;点击modules,把文件的结构弄成这个样子


添加Library


选择tomcat添加


然后左边栏选择Libraries-Java


添加tomcat目录lib文件夹中的servlet-api.jar


点击这个倒三角按钮,选择Edit Configurations…


点击+号,选择Tomcat Server,这里有个坑爹的地方,这一条列表是不完全显示出来的,一开始点的时候还有很多没显示出来,要你滚动下去才有的,而且一点提示都没有,导致我刚开始的时候一直找都找不到tomcat…


如果Application server没有东西就点进去configre…哪里设置tomcat对应的路径,然后点击右下角的Fix


点击Exploded


双击右边的jar放入


这时候文件结构就会变成这个样子


web.xml是用来控制关联java代码和路径的,这里填Servlet是因为我的class名是Servlet,然后路径是/a,全名就是https://localhost:8443/a

前期准备工作就到这,具体的项目代码可以到我的github上查阅,我会在做的过程中添加较详尽的注释~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值