zoukankan      html  css  js  c++  java
  • Java Web 项目学习(一) 项目调试与版本控制

    项目调试

    • 响应状态码的含义 https://developer.mozilla.org/zh-CN/
      • 200 请求成功
      • 302 重定向(低耦合进行功能跳转
      • 404 请求失败(一般是路径错误)
      • 500 服务器不知道如何处理
    • 服务端断点调试技巧
      • 打断点
      • F7进入代码
      • F8 向下执行一步 
      • F9 继续执行
    • 客户端断点调试技巧
      • 查看浏览器网页代码,打断点
      • F10 向下执行一步
      • F11 进入代码
      • F8 继续执行
    • 设置日志级别,并将日志输出到不同的终端
      • 简单log:在application.properties中,采用 logging.file.name ="D:/Project/log/community.log" 
      • 复杂log:在resource跟=根目录下建立logback-spring.xml,写对应代码做配置。位置名称不变,就不需要额外的配置了。spring会自动识别并做好关联。
        <?xml version="1.0" encoding="UTF-8"?>
        <configuration>
            <contextName>community</contextName>
            <property name="LOG_PATH" value="D:/Project/workspace/log"/>
            <property name="APPDIR" value="community"/>
        
            <!-- error file -->
            <appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
                <file>${LOG_PATH}/${APPDIR}/log_error.log</file>
                <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                    <fileNamePattern>${LOG_PATH}/${APPDIR}/ecccrror/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
                    <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                        <maxFileSize>5MB</maxFileSize>
                    </timeBasedFileNamingAndTriggeringPolicy>
                    <maxHistory>30</maxHistory>
                </rollingPolicy>
                <append>true</append>
                <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
                    <pattern>%d %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
                    <charset>utf-8</charset>
                </encoder>
                <filter class="ch.qos.logback.classic.filter.LevelFilter">
                    <level>error</level>
                    <onMatch>ACCEPT</onMatch>
                    <onMismatch>DENY</onMismatch>
                </filter>
            </appender>
        
            <!-- warn file -->
            <appender name="FILE_WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
                <file>${LOG_PATH}/${APPDIR}/log_warn.log</file>
                <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                    <fileNamePattern>${LOG_PATH}/${APPDIR}/warn/log-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
                    <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                        <maxFileSize>5MB</maxFileSize>
                    </timeBasedFileNamingAndTriggeringPolicy>
                    <maxHistory>30</maxHistory>
                </rollingPolicy>
                <append>true</append>
                <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
                    <pattern>%d %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
                    <charset>utf-8</charset>
                </encoder>
                <filter class="ch.qos.logback.classic.filter.LevelFilter">
                    <level>warn</level>
                    <onMatch>ACCEPT</onMatch>
                    <onMismatch>DENY</onMismatch>
                </filter>
            </appender>
        
            <!-- info file -->
            <appender name="FILE_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
                <file>${LOG_PATH}/${APPDIR}/log_info.log</file>
                <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                    <fileNamePattern>${LOG_PATH}/${APPDIR}/info/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
                    <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                        <maxFileSize>5MB</maxFileSize>
                    </timeBasedFileNamingAndTriggeringPolicy>
                    <maxHistory>30</maxHistory>
                </rollingPolicy>
                <append>true</append>
                <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
                    <pattern>%d %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
                    <charset>utf-8</charset>
                </encoder>
                <filter class="ch.qos.logback.classic.filter.LevelFilter">
                    <level>info</level>
                    <onMatch>ACCEPT</onMatch>
                    <onMismatch>DENY</onMismatch>
                </filter>
            </appender>
        
            <!-- console -->
            <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
                <encoder>
                    <pattern>%d %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
                    <charset>utf-8</charset>
                </encoder>
                <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
                    <level>debug</level>
                </filter>
            </appender>
        
            <logger name="com.myproject.community" level="debug"/>
        
            <root level="info">
                <appender-ref ref="FILE_ERROR"/>
                <appender-ref ref="FILE_WARN"/>
                <appender-ref ref="FILE_INFO"/>
                <appender-ref ref="STDOUT"/>
            </root>
        
        </configuration>
        View Code

    版本控制 Git

    • 查看当前版本 git version

    • 查看现在已有配置 git config --list

       可以看到没有用户名和邮箱

    • 配置用户名 git config --global user.name "name"
    • 配置邮箱 git config --global user.email "email"


    • 将文件上传到本地仓库(status,add,commit)

      • cd到相应的(要上传的)项目文件下 cd d:Project


      • 初始化git    git init
      • 查看状态  git satus
      • 添加文件  git add filename
      • 查看状态


      • 提交到仓库 git commit -m '提交的备注说明'
      • 查看状态     


      • 对文件进行修改后查看状态(红色表示未提交大仓库)

      • 添加后查看 git add workspace/log/community.log

      • 提交到本地仓库后看状态

    • 本地代码上传到远程仓库(github)

      • Git为了保证传输安全,采用SSL连接。因此需要生成秘钥。 

        • 创建秘钥 ssh-keygen -t rsa -C "前面的邮箱"

          1)是路径确认,直接按回车存默认路径即可

          2)直接回车键,这里我们不使用密码进行登录, 用密码太麻烦;

          3)直接回车键


        •  打开我的电脑C:Userslily .ssh 里面找到 id_rsa.pub 就是公钥,复制后去远程仓库界面进行配置。
          登录到github界面。右上角头像—— Setting —— SSH and GPG keys——— New  SSH key
          写标题,最好跟跟仓库保持一致,好区分。接着将id_rsa.pub文件中内容复制粘贴。

      • 关联github仓库
        • 找到对应的仓库,复制仓库  git remote add origin git@github.com:Springxi/Web.git 


    • 上传本地代码到远程   git push -u origin master    会出一个提示,输入YES。注意不能直接回车,会报错。
    • 远程仓库下载到本地

      • 找到克隆的路径,本地cd到想要克隆的文件夹下, git clone 复制的地址

    利用IDE管理Git

    • Intellij IDE —— File —— Setting ——Version Control ——GIt —— 找到Git安装位置,选择bin目录下的git.exe
    • 创建本地仓库:选中项目,上方菜单栏 ——VCS——Import into Version Control —— Create GIt Repository
    • 提交文件到本地仓库: VCS——Git ——直接点commit 或者点 Commit Files (有选择的提交文件)
    • 远程仓库同样需要建项目,并复制链接URL
    •  VCS——Git ——push——选择并粘贴 ,会提示需要输入github的账号密码。输入,成功提交。

     

    遇到错误

    • Push failed: Unable to access ‘https://github.com/…’: Failed to connect to 127.0.0.1 port xxx Connection Refused

      出现这个一般是网络问题。可能都不会蹦出输入账号密码的框框。
      1 .查看自己是否使用了代理,是取消。

      git config --global --unset http.proxy 
      git config --global --unset https.proxy

      2.单纯的网络问题,我是电脑点击隔天就再弄就好了。

    • fatal: refusing to merge unrelated histories 解决方案如下:

      1.切换到自己项目所在的目录,右键选择GIT BASH Here,Idea中可使用Alt+F12

      2.在terminl窗口中依次输入命令:

      git pull
      git pull origin master
      git pull origin master --allow-unrelated-histories

      3.在idea中重新push自己的项目,成功!

  • 相关阅读:
    java第五周作业
    ajax初探--实现简单实时验证
    Html+CSS二周目--->常用概念
    Html+CSS--->第一周初探
    Servlet细节整合
    多线程基础
    设计模式之单例模式(Singleton)
    配置文件Java读写
    Java基础之IO流
    JDBC基础
  • 原文地址:https://www.cnblogs.com/codinghard/p/14799199.html
Copyright © 2011-2022 走看看