Java web开发问题整理

原创 2017年09月17日 16:21:52

背景

近期开发过程中的简单问题,整理一下。

数据库字段类型选择

数据库设计过程中,选择合适的类型,可以极大提高磁盘空间的利用率。使用TokuDB数据库引擎的某张表的主键,由原来的128位的varchar类型,改为bigint类型后,相同数据规模下,发现数据库文件大小减少了一半。

效果非常明显:原来一亿条记录的字符串主键类型,需要7G左右磁盘空间,改为数值存储后,只需要3G左右的磁盘空间,大大减少了磁盘消耗。

启示:字段类型按需选择,MySQL的客户端HediSQL在编辑表字段时,可以看到各种类型所表示的数据范围。hour类型可以选择tinyint,端口类型smallint(正好跟端口号的0-65535一致)。还有其他的时间字段,字符串最大20即可。

Tomcat连接池问题

使用Tomcat数据源配置后,Java Web启动过程中会报mysql驱动jar包找不到,虽然已经将jdbc驱动添加到项目的lib目录下了,但是还是出现这个问题。

原因是Tomcat数据源是依赖jdbc的jar包的,所以还必须将其放在tomcat的lib目录下。但是使用其他数据源,就不需要再放在tomcat的lib目录了。

Spring配置文件

我们使用SpringMVC时,需要在web.xml中添加两个配置信息,SpringMVC的初始化配置信息和Spring的配置信息:

<!-- 初始化spring配置文件 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath*:config/applicationContext.xml
        </param-value>
    </context-param>
<!-- spring MVC初始化 -->
    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:config/applicationContext-mvc.xml
            </param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

applicationContext-mvc.xml和applicationContext.xml文件,他俩的区别和联系是什么呢?前者是SpringMVC的初始化配置信息,后缀是Spring的Bean配置文件。

Spring作为一个Bean工厂,它需要管理所有配置的bean的信息,项目中所有需要的Bean都应该在该文件中定义,如果配置文件过多,可以分别写多个xml文件,然后在applicatonContext.xml使用resource标签引入,但是必须保证引入路径的正确。

SpringMVC,作为一个MVC框架技术,它的配置文件中主要是DispatcherServlet所需要的bean的配置,并利用它们来处理Request请求和生成相应的视图返回。

摘要算法的选择

项目中的密码存储方式是MD5摘要的16进制格式的数据,但是据说MD5算法已经被破解了,所以更换了另一种摘要生成算法SM3。

摘要算法,是不可逆的,并不存在解密之说,在数字签名中使用MD5,是为了保证数据的真实性、不可抵赖的特性。而加密算法的作用才是保证数据的完整性,通常加密算法都是可逆过程,需要解密得到明文数据的。

启示录

检查代码时发现一个单独配置spring-mail.xml中的Bean的定义又在applicationContext.xml文件中定义了一遍,而该文件中已经用resource引入了spring-mail.xml配置文件,但是被注释掉了。

仔细一看,才发现被注释掉的resource的配置路径错误了,修正后并删掉applicationContext.xml中关于spring-mail的bean配置,直接通过文件引用就可以了。

解决这个遗留问题后,就想到了spring和springMVC配置文件直接的区别和联系了。自己想想就想明白它们的区别和作用的。编码时间久了,有写技术用着用这顺带知其所以然了。书读百遍,其义自见,大概就是这种体验吧!

此外,喝水的时候果真不能思考,否则会忘记喝水而被呛着的,这也是程序员一大风险!

版权声明:本文为博主原创文章,未经博主允许不得转载。

有关自己javaweb项目常见问题汇总

1.你项目是怎样实现国际化的?   java推荐用 XX.properties配置文件,比如lan_Zh_CN.properties里面放你程序的所有中文提示,lan_fr.properties里面...
  • s2940086379
  • s2940086379
  • 2015年05月22日 13:31
  • 1963

javaweb开发最新整理实用可用的五大框架精简jar包(SSHID)

下面是各大主流框架实用且能跑得起来的扩展jar资源清单: Hibernate4.0.2jar包 Springmvc和权限控制jar包 Mybatise3.0-jar包 Struts2.3...
  • a284065570
  • a284065570
  • 2014年01月04日 15:09
  • 3057

第一个java Web项目中遇到的问题(上)

前两天开始学习J2EE,没有JavaWeb的任何经验,就靠着之前学习的一点点java知识在那撑着,才照着书上码了一个小Demo,过程中却果然问题多多。。。值得庆幸的是靠着各种折腾,现在解决了部分,这些...
  • sinat_33587403
  • sinat_33587403
  • 2016年03月17日 21:42
  • 1752

java web经典面试问题

一、Tomcat怎么进行性能调整? 1.加速JSP编译速度。JSP会被转换为Java serverlet再编译成Java字节码。可以使用更快的编译器, Jikes编译器,需要修改web.xml;或在...
  • zrl0506
  • zrl0506
  • 2017年03月17日 15:59
  • 613

Java系列-JavaWeb复习资料整理

JAVA基础复习资料 1.JAVA关键字:final、finally、finalize、static 解析:简单区别 final 用于声明属性、方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。...
  • Dream_angel_Z
  • Dream_angel_Z
  • 2015年04月24日 22:45
  • 1517

Java 异常整理

java常见异常的整理
  • treeya2012
  • treeya2012
  • 2016年08月08日 16:47
  • 283

移动端web整理 移动端问题总结,移动web遇到的那些坑

http://www.cnblogs.com/PeunZhang/p/3407453.html#question_20 meta基础知识 H5页面窗口自动调整到设备宽度,并禁止用户缩放页面忽略将页...
  • kongjiea
  • kongjiea
  • 2015年09月07日 11:50
  • 5034

第八届蓝桥杯 java B组 日期问题

标题:日期问题 小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在1960年1月1日至2059年12月31日。令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月...
  • q962743011
  • q962743011
  • 2017年04月16日 15:27
  • 233

eclipse进行Javaweb开发常见问题总结

一、eclipse中如何配置tomcat进行Javaweb程序开发1、安装tomcat具体安装教程可参考:安装教程提醒几点注意事项: ①安装tomcat前要先安装好JDK,具体安装教程上面链接里也有...
  • u012829611
  • u012829611
  • 2017年03月11日 14:35
  • 542

Java web开发遇见的问题整理

Ⅰ、chrome控制台警告:Synchronous XMLHttpRequest on the main thread 解释:这个警告并不是错误,不是逻辑和代码错误;而是浏览器检测出来的一种不建议写...
  • u011493218
  • u011493218
  • 2017年07月15日 14:57
  • 131
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java web开发问题整理
举报原因:
原因补充:

(最多只允许输入30个字)