昨天晚上睡觉前暗自告诉自己明天一定要去写这篇感人的javaweb入门笔记(一个小型的用户登录案例的入门笔记)。
enmmmm Flag不能倒!!
首先我们来了解一下在idea中创建一个JavaApplication,各文件夹代表的都是什么意思。详见如图。
1.项目部署
通俗理解:一个项目是需要部署到服务器上,用户才能通过url访问服务器,得到服务器返回的一系列消息。用户发送请求给tomcat服务器,tomcat服务器自动从webapps目录下找所创建的项目下访问的html
常见系统架构:C/S B/S
常见服务器:Tomcat、jetty(淘宝,运行效率比Tomcat高)、resin(新浪,所有开源服务器软件中,运行效率最高的),由于Tomcat免费,所以我们学生党学习就用这个足够。
-
手动部署
在本地装上tomcat,并在系统环境变量配置好classpath后,打开tomcat目录,将项目部署在webapps下。
webapps->创建的项目->web_INF(自己创建的类)和index.html
webapps目录总结见下图。
-
idea配置tomcat实现自动部署
- idea集成tomcat 按照图示1234操作
- 项目与tomcat关联
第5步是系统自动生成的项目访问名称,自己可根据项目实际情况更改名称。但这里后缀_exploded表示开发版,表示开发者不断升级自己的程序不断添加新功能,尚未将项目集成的war包放在tomcat的webapps下,官方名词将这一过程称为热部署。用户可以通过http://localhost:8080/02Servlet_war_exploded/XX.html访问自己创建的项目。
2.项目构成
Dao:主要实现数据库的增删改查方法;
entity:实体类,创建getter、setter方法,toString方法;
service:控制逻辑层,实现整个逻辑,开启事务,将dao层数据库中的数据与servlet浏览器得到的数据进行比较;
servlet:主要是实现HttpServlet类中的doGet、doPost方法,接受浏览器传过来的数据;
utils:DBUtils类 主要是创建数据连接池,数据库事务操作的接口和方法定义;
- utils包
utils下的DBUtils.java
package com.qf.servletProject.utils;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class DBUtils {
public static DataSource ds;
private static final ThreadLocal<Connection> THREAD_LOCAL = new ThreadLocal<>();
static{
Properties pro =new Properties();
InputStream inputStream=DBUtils.class.getResourceAsStream("/database.properties");
try {
pro.load(inputStream);
//通过DruiDtaSourceFactory创建连接池
ds= DruidDataSourceFactory.createDataSource(pro);
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException {
return ds.getConnection();
}
//开启事务
public static void begin(){
Connection connection=null;
try {
connection=getConnection();
connection.setAutoCommit(false);
} catch (SQLException throwables) {
throwables.printStackTrace();
}finally {
closeAll(connection,null,null);
}
}
//提交事务