JavaWeb實訓項目:網上購書城平臺系統

JavaWeb實訓項目:網上購書城平臺系統

這是應付學校實訓寫的辣雞項目,用的是Servlet+JSP這樣過時的技術。。。無聊的話可以看下,源碼鏈接:here

部署Tomcat服務器

簡介:

Tomcat目錄結構
bin 一些啓動/關閉腳本,運行Tomcat的可執行程序和相關內容
conf Tomcat服務器的配置文件,包括 server.xml(Tomcat的主要配置文件)和爲不同的Tomcat配置的web應用設置缺省值的文件web.xml
lib Tomcat運行或者站點運行所需的jar包,所有在此Tomcat上的站點共享這些jar包。unix平臺此目錄下的任何文件都被加到Tomcat的classpath中
logs Tomcat的日誌文件
temp 存放臨時文件
webapps 默認的站點根目錄(可以更改)。當發佈web應用時,默認情況下把web文件夾放於此目錄下
work Tomcat自動生成,用於在服務器運行時過度的臨時文件,就是存儲jsp、servlet翻譯、編譯後的結果。如在Tomcat運行時刪除此目錄,JSP頁面將不能運行, jsp生成的sevlet放在此目錄下

Tomcat常用端口號 (ps:修改了這三個端口號,就可以在一臺主機上啓動多個Tomcat了
8005 Tomcat 監聽的關閉端口
8080 Tomcat的服務端口
8009 接受其他服務器轉發過來的請求

如果你想要運行多個Tomcat,就修改其他Tomcat的端口號使之不重複即可
修改文件位置:apache-tomcat-9.0.21\conf\server.xml
在這裏插入圖片描述
在這裏插入圖片描述在這裏插入圖片描述

Tomcat環境編碼設置(可選)

還是上面那個文件,添加內容:URIEncoding="UTF-8"
在這裏插入圖片描述

Tomcat下載及配置

ApacheApache的官方網站下載Tomcat。下載最新的解壓版本後,本地直接解壓即可。建議下載8或9版本。

配置環境變量:

JDKJDK的環境變量默認大家都配置好了。

TomcatTomcat的環境變量:變量名:CATALINA_HOME,變量值(你的解壓目錄):E:\ashixun\apache-tomcat-9.0.21

啓動Tomcat:

在目錄apache-tomcat-9.0.21\bin下雙擊startup.bat文件或者命令行輸入startupstart tomcat9.exe或者catalina run都可以。

輸入網址:localhost:8080看是否啓動成功,成功界面如下:

在這裏插入圖片描述

設置Tomcat熱部署

如何我們修改了classclass文件,可以讓TomcatTomcat自動重啓生效;

修改文件位置:apache-tomcat-9.0.21\conf\server.xml

<host></host>內部添加<context/>標籤:

<Context debug="0" docBase="D:\test\demo" path="/demo" reloadable="true"/>

docBase:項目路徑,可以使用絕對路徑或相對路徑,相對路徑是相對於webappswebapps
path:訪問項目的路徑
reloadable:是否自動加載新增或改變的classclass文件
debug:屬性與這個EngineEngine關聯的LoggerLogger記錄的調試信息的詳細程度。數字越大,輸出越詳細。如果沒有指定,缺省爲0。 也就是程序異常時寫入日誌文件裏的詳細程度。

修改Tomcat終端窗口的名字

文件位置:apache-tomcat-9.0.21\bin\catalina.bat
在這裏插入圖片描述

Tomcat終端亂碼問題

問題原因在tomcat默認是UTF-8編碼,而win的終端默認是GBK編碼。

解決:找到如下logging.properties文件,將第51行的控制檯UTF-8編碼改爲GBK即可。

在這裏插入圖片描述
在這裏插入圖片描述

Tomcat初步使用

參考:purplestonehttp簡介其他

點擊以下超鏈接,出現登錄窗口,然後點擊取消。

在這裏插入圖片描述
在這裏插入圖片描述
會彈出這個頁面,複製以下代碼到comf/tomcat-users.xml,再進行登錄即可進入管理頁面。
在這裏插入圖片描述

<role rolename="admin-gui"/>
<user username="tomcat" password="s3cret" roles="admin-gui"/>

可以看到當前有哪些項目部署在tomcat ,也可以從這裏進入某個項目中http://localhost:8080/manager/html
在這裏插入圖片描述

IDEA創建Maven項目

流程

新建MavenMaven項目,那個create from archetype暫時不用選。

在這裏插入圖片描述
GroupIdGroupId(一般是公司域名的倒寫)和ArtifactIdArtifactId(一般是你的項目名字)被統稱爲“座標”是爲了保證項目唯一性而提出的,如果你要把你項目弄到mavenmaven本地倉庫去,你想要找到你的項目就必須根據這兩個idid去查找。在這裏插入圖片描述

添加webappwebapp項目,右鍵項目Add Framework Support

在這裏插入圖片描述
在這裏插入圖片描述

然後就出現了一個web項目如下:

在這裏插入圖片描述

IDEA 配置Tomcat

點擊界面Run,然後選擇Run...,再點Edit Configurations...

在這裏插入圖片描述在這裏插入圖片描述
(你的應該不會顯示bookcity這一項的,因爲我之前編輯過所以有,你執行完以下步驟就有了)

然後點+號,找到最下面的Tomcat Server

先選中你的服務器,然後修改URL,設置項目發佈路徑,即虛擬路徑。

在這裏插入圖片描述

點擊Deployment,注意保持Application context內容和前面虛擬路徑內容相同,我這裏都是bookcity
在這裏插入圖片描述
確認後返回。點擊界面Run,然後選擇Run...,再點bookcity運行,默認瀏覽器就會打開一個界面,顯示index.jsp的網頁效果。
在這裏插入圖片描述
在這裏插入圖片描述
需要注意的是此時發佈的webweb項目其目錄爲localhost:8080/bookcity,而項目的根目錄即localhost:8080TomcatwebappsTomcat webapps中自帶的ROOTROOT項目,具體原因涉及到TomcatTomcat的配置文件。

測試

src->main->java下新建一個包com.demo.servlet ,然後在此包下新建一個HelloServlet

首先讓HelloServlet 類繼承HttpServlet
在這裏插入圖片描述
不出意外應該idea不會給你自動補全·HttpServlet·這個類並且還會報錯。

因爲這個項目沒有導入對servlet支持的jar包。

MavenMaven項目的方便就在於他可以自動幫你導入各種你需要jar包!

你只需導入相應的代碼即可,查詢jar包對應代碼的網站:here

<dependencies>
        <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

將代碼複製到pom.xml文件即可:
在這裏插入圖片描述
下面是web.xml的內容,配置 web.xml 後,才能讓別人調用:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <display-name>bookcity</display-name>
    <servlet>
        <servlet-name>HelloServlet</servlet-name>
        <servlet-class>com.demo.servlet.HelloServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>HelloServlet</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
</web-app>

下面是HelloServlet的完整內容:

/**
 * Copyright (C), 2018-2019, csust
 * FileName: HttpServlet
 * Author:   Cwolf9
 * Date:     2019/06/18 16:06
 * Description:
 * History:
 * <author>          <time>          <version>          <desc>
 * Cwolf9           2019/06/18           2018.3
 * <p>
 * 〈可怕的是比你強的人比你還努力〉
 * 〈〉
 *
 * @author Cwolf9
 * @create 2019/06/18
 * @since 1.0.0
 */
/**
 * 〈可怕的是比你強的人比你還努力〉
 * 〈〉
 *
 * @author Cwolf9
 * @create 2019/06/18
 * @since 1.0.0
 */
package com.demo.servlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        try {
            request.setCharacterEncoding("UTF-8");
            response.setContentType("text/html; charset=utf-8");
            response.setCharacterEncoding("UTF-8");
            String userId = request.getParameter("userId");
            String pwd = request.getParameter("pwd");
            if("admin".equals(userId) && "password".equals(pwd)){
                out.println("success");
            }else{
                out.println("fail");
            }
            out.println("<br/>");
            String servletPath = this.getServletContext().getRealPath("/");
            out.println(servletPath);
            out.close();
        } catch (Exception e) {
            // TODO: handle exception
        }
    }
}

啓動服務器,然後訪問:http://localhost:8080/bookcity/hello ,頁面如下:
在這裏插入圖片描述
按照HelloServlet 中的寫法,你應該這麼訪問:http://localhost:8080/bookcity/hello?userId=admin&pwd=password,這樣返回的頁面就是success:
在這裏插入圖片描述

welcome-file-list設置與url-pattern匹配規則

https://blog.csdn.net/qq_15237993/article/details/72868089

https://blog.csdn.net/xybz1993/article/details/81023955


MYSQL8配置

創建用戶create user 'xxx'@'%' identified by 'xxx';

賦予權限:grant all privileges on *.* to xxx@"%";

使之生效:flush privileges;

修改密碼:alter user'xxx'@'%' IDENTIFIED BY '1234567';

刪除用戶:drop user'xxx';

MYSQL遠程連接

要讓別人能遠程連接你本地的數據庫,你們得在同一個局域網下,其次你要開放你的一個端口。

windows查看端口命令:netstat -an,netstat -ano,netstat -an|findstr "3306"

linux查看端口:nmap -sP ip地址,lsof -i:8000

win開放端口:

win+s搜索:高級,點進去設置一個出站規則,創建類型選擇端口,然後設置TCP端口3306,規則名叫3306in,保存即可。

在這裏插入圖片描述


搞完這些同局域網下的其他人應該就可以通過你的ip地址和端口連接上你本機的數據庫了。

Host填你想連接的主機的ip地址

User填其數據庫的一個賬戶名

Password填密碼

點擊Test Connection查看是否成功。

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章