文章目錄
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下載及配置
在的官方網站下載Tomcat。下載最新的解壓版本後,本地直接解壓即可。建議下載8或9版本。
配置環境變量:
的環境變量默認大家都配置好了。
的環境變量:變量名:CATALINA_HOME
,變量值(你的解壓目錄):E:\ashixun\apache-tomcat-9.0.21
啓動Tomcat:
在目錄apache-tomcat-9.0.21\bin
下雙擊startup.bat文件或者命令行輸入startup
或start tomcat9.exe
或者catalina run
都可以。
輸入網址:localhost:8080
看是否啓動成功,成功界面如下:
設置Tomcat熱部署
如何我們修改了文件,可以讓自動重啓生效;
修改文件位置:apache-tomcat-9.0.21\conf\server.xml
在<host></host>
內部添加<context/>
標籤:
<Context debug="0" docBase="D:\test\demo" path="/demo" reloadable="true"/>
docBase
:項目路徑,可以使用絕對路徑或相對路徑,相對路徑是相對於
path
:訪問項目的路徑
reloadable
:是否自動加載新增或改變的文件
debug
:屬性與這個關聯的記錄的調試信息的詳細程度。數字越大,輸出越詳細。如果沒有指定,缺省爲0。 也就是程序異常時寫入日誌文件裏的詳細程度。
修改Tomcat終端窗口的名字
文件位置:apache-tomcat-9.0.21\bin\catalina.bat
Tomcat終端亂碼問題
問題原因在tomcat默認是UTF-8編碼,而win的終端默認是GBK編碼。
解決:找到如下logging.properties
文件,將第51行的控制檯UTF-8編碼改爲GBK即可。
Tomcat初步使用
參考:purplestone,http簡介,其他
點擊以下超鏈接,出現登錄窗口,然後點擊取消。
會彈出這個頁面,複製以下代碼到comf/tomcat-users.xml
,再進行登錄即可進入管理頁面。
<role rolename="admin-gui"/>
<user username="tomcat" password="s3cret" roles="admin-gui"/>
可以看到當前有哪些項目部署在tomcat ,也可以從這裏進入某個項目中http://localhost:8080/manager/html
IDEA創建Maven項目
流程
新建項目,那個create from archetype
暫時不用選。
(一般是公司域名的倒寫)和(一般是你的項目名字)被統稱爲“座標”是爲了保證項目唯一性而提出的,如果你要把你項目弄到本地倉庫去,你想要找到你的項目就必須根據這兩個去查找。
添加項目,右鍵項目Add Framework Support
然後就出現了一個web項目如下:
IDEA 配置Tomcat
點擊界面Run
,然後選擇Run...
,再點Edit Configurations...
(你的應該不會顯示bookcity
這一項的,因爲我之前編輯過所以有,你執行完以下步驟就有了)
然後點+
號,找到最下面的Tomcat Server
。
先選中你的服務器,然後修改URL,設置項目發佈路徑,即虛擬路徑。
點擊Deployment
,注意保持Application context內容和前面虛擬路徑內容相同,我這裏都是bookcity
確認後返回。點擊界面Run
,然後選擇Run...
,再點bookcity
運行,默認瀏覽器就會打開一個界面,顯示index.jsp
的網頁效果。
需要注意的是此時發佈的項目其目錄爲localhost:8080/bookcity
,而項目的根目錄即localhost:8080
爲中自帶的項目,具體原因涉及到的配置文件。
測試
在src->main->java
下新建一個包com.demo.servlet
,然後在此包下新建一個HelloServlet
類
首先讓HelloServlet
類繼承HttpServlet
:
不出意外應該idea不會給你自動補全·HttpServlet·這個類並且還會報錯。
因爲這個項目沒有導入對servlet
支持的jar包。
而項目的方便就在於他可以自動幫你導入各種你需要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
查看是否成功。