旅游网小项目总结

本文总结了一个六天完成的旅游网小项目,涉及技术包括HTML+jQuery+Servlet+JdbcTemplate,以及MD5加密、验证码、面向接口编程等。在Linux上使用Nginx服务器进行发布,讨论了正向代理、反向代理及其作用。同时分享了五个开发心得,强调了测试、数据封装、调试技巧、EL表达式和反射的重要性。项目开发过程中暴露了前端知识的不足,作者计划加强前端学习。
摘要由CSDN通过智能技术生成
六天小项目使用技术:
  1. 旅游网前台用户界面,纯异步开发
    使用技术:HTML+jQuery+Servlet+JdbcTemplate
  2. 旅游网后台管理,纯同步开发
    使用技术:JSP+JSTL+EL+Servlet+JdbcTemplate
    提供工具类MD5加密,验证码,已及前端页面,大部分只通过三层架构写后端代码:
MD5加密:
import java.math.BigInteger;
import java.security.MessageDigest;

public class Md5Utils {

	/**
	 * 对给定的字符使用md5进行加密,返回加密以后的字符串
	 * 
	 * @param origin
	 * @return
	 */
	public static String getMd5(String origin) {
		// 1) 使用静态方法,创建MessageDigest对象
		try {
			MessageDigest md = MessageDigest.getInstance("MD5");
			// 2) 将字符串使用utf-8进行编码,得到字节数组
			byte[] input = origin.getBytes("utf-8");
			// 3) 使用digest(input)对字节数组进行md5的哈希计算,得到加密以后的字节数组,长度是16个字节。
			byte[] num = md.digest(input);
			// 4) 使用类BigInteger(1, 加密后的字节数组),将这个二进制数组转成无符号的大整数
			// 1 正数, -1表示负数
			BigInteger big = new BigInteger(1, num);
			// 5) 将这个大整数转成16进制字符串,参数为多少进制
			return big.toString(16);
		} catch (Exception e) {
			e.printStackTrace();
			throw new RuntimeException(e);
		}
	}

    public static void main(String[] args) {
        System.out.println(getMd5("123"));
        System.out.println(getMd5("abc"));
    }
}
验证码
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;

/**
 * 创建一个验证码图片
 */
@WebServlet("/code")
public class PicCodeServlet extends HttpServlet {
    private Random ran = new Random();      //随机类

    //1) 写一个方法随机获取颜色
    private Color getColor() {
        //红,绿,蓝取值0-255,随机生成 0-255之间数
        int r = ran.nextInt(256);
        int g = ran.nextInt(256);
        int b = ran.nextInt(256);
        return new Color(r, g, b);
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //2) 创建缓存图片:指定宽
        int width = 90, height = 30;
        //参数3:图片的类型,使用RGB类型
        BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        //3) 获取画笔对象
        Graphics graphics = image.getGraphics();
        //4) 设置画笔颜色,并且填充矩形区域
        graphics.setColor(Color.WHITE);
        graphics.fillRect(0, 0, width, height);
        //创建一个StringBuider对象
        StringBuilder sb = new StringBuilder();
        //5) 从字符数组中随机得到字符
        char[] arr = {'A', 'B', 'C', 'D', 'N', 'E'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值