近期web开发前后端问题汇总(一)
最近几天,本人进行了web开发的一些工作。其中,也是得到了同学的帮忙,截止目前出现的配置及开发问题已得到全部解决(项目还未配置到云服务器下),于是利用晚上的时间,写一篇文章来记录本次的问题及解决方案,后续遇到的问题会在此系列文章中继续更新。
一、引入
本次web开发,本人用到了:
- 开发工具:idea,navicat(其中涉及到远程连接阿里云服务器中的数据库的操作),tomcat
- 编程语言:Java、html(css)、JavaScript、MySQL
- 框架:bootstrap、hibernate、java servlet
- library:mysql-connector-java-8.0.15、hibernate依赖库
- 项目管理工具:maven
二、问题及解决方案
由于问题出现的逻辑有些并无充分的因果关系,所以以下每个问题出现的先后顺序并无任何意义(以下操作均在idea下进行)。
-
tomcat版本配置问题
在tomcat进行配置时,在application server一栏,当我们的tomcat版本为10时会出现错误,这个原因在网上查询时也是没有得到解答,但是,最简单的解决办法就是更改tomcat的版本,改成低版本tomcat就可以顺利配置完成。
并且,在这里我附上tomcat安装链接:http://tomcat.apache.org/
-
hibernate远程连接云服务器数据库的权限问题
idea中进行MySQL远程连接云服务器数据库的时候,会出现某个ip不允许访问的问题,其根本原因还在于该User的权限不足(navicat中进行远程连接的时候出现此类问题是一样的原因)。在这时,我们在PHP admin中创建一个赋予所有ip地址权限的用户即可,如下图中的web用户,之后便可以进行连接了。
-
tomcat编译运行初始html设置问题
在将项目配置到tomcat中时,我们需要把这个项目打包成war,之后,在url栏中,我们需要设置运行的初始界面(如图中的index.jsp)。
-
不同module之间的调用问题
在项目初始时,我采用了不同框架新建不同module的开发模式(后续变成了新建框架支持,放弃了这种开发模式),但在这种开发模式下,我遇到了不同module之间该如何相互调用类的问题!!!但后来发现我的根本原因还在于每个module不是maven module,所以我们首先需要把普通项目变成maven项目,步骤如下:1、在项目中新建pom.xml;2、右键项目+add as maven project即可(如下图)。
而在之后,我们需要在要调用另一个module的module中的maven加入被调用的module的dependence即可。
-
相比于不同module下,新建框架的优势
优势在于莫名的Bug少(滑稽.jpg),为了简单,我们最后进行的项目开发模式就是新建框架支持,如下图。
-
web.iml配置问题
在新完成一个servlet的类后,我们需要在web.iml中,加入如下配置才可:
<servlet> <servlet-name>Register</servlet-name> <servlet-class>com.ly.server.Register</servlet-class> </servlet> <servlet-mapping> <servlet-name>Register</servlet-name> <url-pattern>/Register</url-pattern> </servlet-mapping>
-
hibernate.cfg.xml配置问题
此模块的配置,我们需要注意五元素:url、username、password、connection.driver_class、数据库方言设置,其中我们还需要注意时区以及编码设置。
以下,我将举一个我的项目中的配置例子,大家来参考:
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="connection.url">jdbc:mysql://ip/web_server?serverTimezone=UTC</property> <property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property> <property name="connection.username">username</property> <property name="connection.password">password</property> <mapping class="com.ly.hibernate.entity.UserEntity"/> <mapping resource="com/ly/hibernate/UserEntity.hbm.xml"/> </session-factory> </hibernate-configuration>
-
tomcat引用library问题
我们在运行时可能会出现如下图的找不到jdbc和hibernate库的情况,但是明明我的项目里面已经加入了这两个库了呀,那么到底是为什么?
解决方案:我们需要在tomcat的lib中加入这两个库,才不会出现此类情况。
三、总结
这就是我认为很值得记录的几个问题,由于项目还在进展中,所以Bug肯定还会层出不穷,在后续的文章中将持续更新,太晚了,得溜去睡觉啦,祝大家工作学习顺利!