栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA-WEB个人博客搭建

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA-WEB个人博客搭建

 

1、环境搭建 (1)intellij idea

IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具

下载链接:Download IntelliJ IDEA: The Capable & Ergonomic Java IDE by JetBrains

(2)Maven

Maven主要用于解决导入依赖于Java类的jar和编译Java项目的主要问题

下载链接:http://maven.apache.org/download.cgi

(3)依赖插件配置文档 

在pom.xml中写入: 




  4.0.0

  org.example
  Monica
  1.0-SNAPSHOT
  war

  Monica Maven Webapp
  
  http://www.example.com

  
    UtF-8
    1.8
    1.8
  

  

    
    
      junit
      junit
      4.12
      test
    

    
    
      javax.servlet
      javax.servlet-api
      4.0.1
      provided
    

    
    
      org.slf4j
      slf4j-log4j12
      1.7.2
    
    
      org.slf4j
      slf4j-api
      1.7.2
    

    
    
      mysql
      mysql-connector-java
      8.0.19
    

    
    
      com.alibaba
      fastjson
      1.2.62
    

    
    
      cn.hutool
      hutool-all
      5.4.7
    

    
    
      commons-io
      commons-io
      2.4
    

    
    
      commons-fileupload
      commons-fileupload
      1.3.1
    

    
    
      javax.servlet
      jstl
      1.2
    

    
    
      org.projectlombok
      lombok
      1.18.12
      provided
    

  

  
    Monica-note

    
      
      
        org.apache.maven.plugins
        maven-compiler-plugin
        2.3.2

        
          1.8
          1.8
          UTF-8
        
      

      
      
        org.apache.tomcat.maven
        tomcat7-maven-plugin
        2.1
        
          8080
          /note 
          tomcat7
        
      

    

  




2、目录设置

 web作为中间人,dao作为数据库操作,service进行业务操作,po放实体类,util放工具类

3、数据库连接、关闭代码块

在src/main/com.monica.note/until目录下,新建DBUtil文件

涉及知识点:

Properties类:

Properties(Java.util.Properties),该类主要用于读取Java的配置文件,不同的编程语言有自己所支持的配置文件,配置文件中很多变量是经常改变的,为了方便用户的配置,能让用户够脱离程序本身去修改相关的变量设置。就像在Java中,其配置文件常为.properties文件,是以键值对的形式进行参数配置的。
常用方法:

getProperty(String key)   在此属性列表中搜索具有指定键的属性。如果在此属性列表中找不到该键,则会检查默认属性列表及其默认值(递归)。如果未找到该属性,则该方法返回默认值参数。

load(InputStream inStream)  从输入字节流中读取属性列表(键和元素对)。输入流采用加载(Reader)中指定的简单的面向行的格式,并假定使用ISO 8859-1字符编码;即每个字节是一个Latin1字符。不在Latin1中的字符和某些特殊字符在使用Unicode转义符的键和元素中表示。 此方法返回后,指定的流仍保持打开状态。

Class.forName()是Java程序运行时加载类的默认方法

package com.monica.note.util;

import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;

public class DBUtil {

    //得到配置对象
    private  static Properties properties = new Properties();

    static {

        try {
            //加载配置文件(输入流)
            InputStream in = DBUtil.class.getClassLoader().getResourceAsStream("db.properties");
            //通过loda()方法将输入流的内容加载到properties(配置文件)对象中
            properties.load(in);
            //通过配置文件对象的getProperty()方法获取我们的驱动名,并加载驱动
            Class.forName(properties.getProperty("jdbcName"));//这个key名与db.properties中的驱动名对应
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    

    public static Connection getConnection(){
        Connection connection = null;


        try {
            //得到数据库连接的数据库信息
            String dbUrl=properties.getProperty("dbUrl");
            String dbName=properties.getProperty("dbName");
            String dbPwd=properties.getProperty("dbPwd");

            //得到数据库连接
            connection = DriverManager.getConnection(dbUrl,dbName,dbPwd);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return  connection;
    }

    
    public static void close(ResultSet resultSet, PreparedStatement preparedStatement, Connection connection){


        try {
            //判断资源对象如果不为空,则关闭
            if(resultSet != null) {
                resultSet.close();
            }
            if(preparedStatement != null) {
                preparedStatement.close();
            }if(connection != null) {
                connection.close();
            }

        }catch (Exception e){


        }
    }

}

jdbc配置mysql

# 连接MYSQL数据库的配置文件 注:等号的前后不要写空格
#驱动名
jdbcName=com.mysql.cj.jdbc.Driver
#数据库连接(monica_note是数据库的名称、需要先创建一个数据库)
dbUrl=jdbc:mysql://127.0.0.1:3306/monica_note?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false
#数据库的连接账号(账号基本上都是root)
dbName=root
#数据库的连接密码(每个人的数据库密码可能不一致,需要修改)
dbPwd=root

4、单元测试
package com.monica.note;

import com.monica.note.util.DBUtil;
import org.junit.Test;

public class testDB {
    
    @Test
    public void testDB(){
        System.out.println(DBUtil.getConnection());
    }
}

注意这里点击run可能可能会报错

error no. 1045 access denied for user 'root'@'*****' (using password:YES)。

这种原因可能为:

1、前面配置jdbc连接数据库名字和密码不对

2、url中的数据库名不对

3、mysql没有开启root远程访问权限

参考链接:mysql给root开启远程访问权限 - Goxcheer - 博客园

即使账号密码全正确,也会报错:error no. 1045 access denied for user 'root'@'*****' (using password:YES)。

百翻查询才知道:MySql-Server 出于安全方面考虑默认只允许本机(localhost, 127.0.0.1)来连接访问.

!!!所以必须给root修改可以远程访问的权限

命令:

mysql -u root -p
//然后输入密码

进入mysql,使用mysql数据库

命令:

use mysql;

查询用户表命令

命令:

select User,authentication_string,Host from user;

 这里也可以看出host默认都是localhost访问权限

设置远程访问权限

命令:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';

 这里的123456为你给新增权限用户设置的密码,%代表所有主机,也可以具体到你的主机ip地址(但是这个123456好像没啥用),在jdbc配置mysql里面我还是用的root账户的密码

命令:

flush privileges;          
//这一步一定要做,不然无法成功! 这句表示从mysql数据库的grant表中重新加载权限数据

因为MySQL把权限都放在了cache中,所以在做完更改后需要重新加载。

执行完这两步,再次查询用户表命令:

select User,authentication_string,Host from user;

发现多了一个用户,该用户所有的主机都可以访问(显示%),此时再次用jdbc访问连接

即可成功!

如果还没有成功

试试下面这个命令:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;

然后再刷新

flush privileges;          
//这一步一定要做,不然无法成功! 这句表示从mysql数据库的grant表中重新加载权限数据

应该就可以了。 

5、使用日志

在src/main/resources目录下,新建log4j-properties文件

加日志的作用是1、能够监控代码中变量的变化情况,做一个周期性的记录,将其提供给其他应用使用。2、跟踪代码运行轨迹。3、担当调试器角色

我们使用的是log4j,是apache的开源的项目,通过log4j,我们能够控制日志文件输出的地址、格式、级别。

代码:(日志文件的地址需要自己改正)

### 设置##stdout,
log4j.rootLogger = all,D,E,stdout

###输出信息到控制台##
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

### 输出DEBUG 级别以上的日志到=/Users/yangyuntao/javaweb-env/log.log  ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = /Users/yangyuntao/javaweb-env/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [%t:%r] - [%p] %m%n

#输出ERROR级别以上的日志到=/Users/yangyuntao/javaweb-env/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = /Users/yangyuntao/javaweb-env/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold= ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [%t:%r] - [%p]

6、用户模块

现在环境已经搭建好了,开始前端代码

参考博主:清峰的博客_〆清峰ㄟ_CSDN博客

总体文章:SpringBoot个人博客从无到有项目搭建——实战综合介绍_清峰的博客-CSDN博客_springboot博客项目实战

登录页面
在src/main/wabapp目录下,新建statics文件夹,将静态资源拷贝进来(js、css、images及相关插件)

HTML转换为JSP

同时因为html是静态页面,我们使用的是jsp,需要将html转换为jsp

在wabapp目录下,新建login.jsp页面,将login.html里面的内容拷贝到login.jsp中

修改路径

修改引入的js、css、images资源的路径

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/434787.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号