javaweb生成war包 tomcat部署

1、背景
MD5加密算法java与C#加密结果不一致,而服务商要求是java,所以有了今天的这个需求。

2、操作
下载tomcat、jdk、eclipse
配置环境变量JAVA_HOME
这个环境变量是tomcat需要使用到的

3eclipse 窗口->首选项->server->runtime Env
将tomcat添加进来

4、在eclipse中新建动态web项目
在src下新建servlet 在这里插入图片描述
5、
下面展示一些 我的代码是需要返回java MD5加密的结果

package com.md5;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class Md5EncryText
 */
@WebServlet("/Md5EncryText")
public class Md5EncryText extends HttpServlet {
	private static final long serialVersionUID = 1L;
	private static final String APPID = "123456";
	private static final String APPSECRET = "334455667788";
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Md5EncryText() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		
		
		String requestId = request.getParameter("requestId");
		String timestamp = request.getParameter("timestamp");
		
		 if(requestId == null ||"".equals(requestId) || timestamp == null ||"".equals(requestId))
		 {
			 return;
		 }
		 List<String> param = new ArrayList<String>();
		 param.add(requestId);
		 param.add(timestamp);
		 param.add(APPID);
		 param.add(APPSECRET);
		 String result = "";
		 try
		 {
			 result = sign(param);
		 }
		 catch (Exception e) 
		 {
			 return;
	     }
		 response.getWriter().append(result);
		
		
//		request.getRequestDispatcher("/WEB-INF/NewFile.jsp").forward(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		request.getRequestDispatcher("/WEB-INF/NewFile.jsp").forward(request, response);
	}
	
    private static String sign(List<String> param) throws Exception {
        Collections.sort(param);
        StringBuilder sb = new StringBuilder();
        for (String str : param) {
            sb.append(str);
        }
        try {
            String sign = MD5Util.encrypt32(sb.toString());
            return sign;
        } catch (Exception e) {
            throw new Exception("加签异常");
        }
    }
}



class MD5Util {
    /**
     * 十六进制
     */
    private static final char[] DIGITS = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a',
            'b', 'c', 'd', 'e', 'f' };
    /**
     * 对字符串进行MD5加密
     * @param text 明文
     * @return 密文
     */
    public static String encrypt32(String text) {
        MessageDigest msgDigest = null;
        try {
            msgDigest = MessageDigest.getInstance("MD5");
        } catch (NoSuchAlgorithmException e) {
            throw new IllegalStateException("System doesn't support MD5 algorithm.");
        }
        try {
            msgDigest.update(text.getBytes("UTF-8")); // 注意改接口是按照指定编码形式签名
        } catch (UnsupportedEncodingException e) {
            throw new IllegalStateException("System doesn't support your  EncodingException.");
        }
        byte[] bytes = msgDigest.digest();
        String md5Str = new String(encodeHex(bytes));
        return md5Str.toString();
    }
    private static char[] encodeHex(byte[] data) {
        int l = data.length;
        char[] out = new char[l << 1];
        // two characters form the hex value.
        for (int i = 0, j = 0; i < l; i++) {
            out[j++] = DIGITS[(0xF0 & data[i]) >>> 4];
            out[j++] = DIGITS[0x0F & data[i]];
        }
        return out;
    }
}

6、选中项目右键导出成war包

7、找到tomocat的webapps目录,把刚才导出的war包放进去。启动tomcat

这里启动tomcat如果需要非dos川口启动,需要
《1、打开cmd窗口
进入到tomcat的bin目录下
然后输入dos命令
service install tomcat的exe文件名,不加扩展名我这里是tomcat9所以
命令为:
service install tomcat9
《2 启动tomcat服务
net start tomcat9
《3 关闭tomcat服务
net stop tomcat9

8、检测:
这里说一下安装jdk、tomcat的检测方式
jdk安装目前的版本都是自动安装jre,所以jre不需要单独安装
jdk安装完成后,需要在环境变量path中添加jdk安装目录的bin目录
这样就可以直接使用bin目录下的可执行文件了比如java 比如javac

重点说一下由于tomcat的需要所以需要 把jdk的安装目录放进JAVA_HOME中,不让tomcat的bin目录下的startup.bat文件点击后闪退。如果出现这种情况:请使用cmd进入到tomcat的斌目录下,输入startup.bat执行,查看报错结果

tomcat启动后,如果端口没占用的情况下:可以在本地浏览器中输入:
localhost:8080进行访问,如果8080端口被占用可以在tomcat的conf目录下找到server.xml ,打开后将8080修改为需要的端口

我这里直接访问servlet使用:
http://localhost:8080/JavaMD5/Md5EncryText?requestId=33333333333333333&timestamp=12341242353
即可访问

9注意事项:
我tomcat部署在外网不可连接的局域网中,所以没有进行安全校验,如果在网络环境中请对访问进行安全校验。

如果局域网中访问该网址,需要在防火墙中添加该端口的入站规则

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酷啦啦诶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值