1. 程式人生 > >搭建一個java web服務端

搭建一個java web服務端

des tin chm rate web項目 initial 安裝目錄 網上 mil

  最近也是做了一個簡單的java web 項目,由於以前也是沒接觸過,在這裏記錄下搭建一個web服務端的過程。

  一般我們做一個服務端要麽在本地自己的電腦上先安裝環境,一般是windows系統,主要安裝jdk + tomcat + mysql,這些安裝教程網上都有,也很簡單,我這裏就不多說了,我要講的是在一個遠程linux服務器上搭建web服務端環境。

  對於一個liunx服務器,我們可以使用xshell等終端工具登錄來操作遠程服務器,使用xshell的好處是,我們可以使用rz ,sz命令上傳上載文件 ,我們可以事先在自己本地上下載好linux版本的jdk ,tomcat ,mysql,使用rz 命令上傳到我們的linux服務器上

  [email protected]:~$ sudo rz 會自動彈出文件框加載文件,就可以上傳文件了,非常方便

  [email protected]:~$ sudo sz filename 就可以下載對應的文件

  下面說下各種安裝包的安裝及環境變量配置,各個安裝包都可以在官網上下載(選擇自己需要的版本即可)

  一、JDK的安裝

  1.將上傳的jdk解壓

  sudo tar -zxvf jdk-8u144-linux-i586.tar.gz

  2.解壓成功後可以看到該目錄下多出了文件夾 jdk1.8.0_144 ,先在/usr下新建文件夾java,將jdk1.8.0_144 移到/usr/java目錄下

  sudo mv jdk1.8.0_144 /usr/java/

  3.現在來配置jdk的環境變量

  使用vi命令編輯/etc/profile文件 vi /etc/profile

  在文件底部加上四條配置信息:

  export JAVA_HOME=/usr/java/jdk1.8.0_144
  export JRE_HOME=${JAVA_HOME}/jre
  export CLASSPATH=.:%{JAVA_HOME}/lib:%{JRE_HOME}/lib
  export PATH=${JAVA_HOME}/bin:$PATH 

  其中JAVA_HOME指定為你的JDK安裝目錄,另外,linux中是以冒號分隔,不同於windows下使用分號進行分隔。
  編輯好後保存退出,執行命令:source /ect/profile

  執行java ,javac命令就可查看jdk是否配置好了。

  二、tomcat安裝

  1.將上傳的tomcat壓縮包解壓,這裏我是打算把tomcat放到 /usr/lib裏

  sudo tar zxvf apache-tomcat-8.5.20.tar.gz -C /usr/lib

  sudo mv apache-tomcat-8.0.28 tomcat8.5

  sudo chmod -R 777 tomcat8.5

  2.環境變量配置

  在tomcat8.5的bin文件夾下有一個startup.sh和shutdown.sh的文件,可以用vi打開,然後在最後一句上邊都加入以下的變量(根據自己的實際情況來修改):

  JAVA_HOME=/usr/java/jdk1.8.0_144
  JRE_HOME=${JAVA_HOME}/jre
  PATH=$JAVA_HOME/bin:$PATH
  CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  TOMCAT_HOME=/usr/lib/tomcat8.5

  3.啟動tomcat

  執行命令 sh startup.sh

  在瀏覽器輸入;http://localhost:8080 如果出現tomcat首頁的效果說明配置成功了。(localhost是本地ip,如果放到服務器端,需要換成服務器提供的對外公網IP)

  

  三、mysql安裝

  我這裏是用軟件源裏提供的mysql,直接用命令

  sudo apt-get install mysql-server

  在安裝過程中會提示輸入mysql的登入密碼(需要記錄,後面登錄mysql需要用到這個密碼)

  登錄mysql ,使用命令

  mysql -uroot -p123456 (123456就是設置的密碼) 後面就可以進行數據庫方面的操作了

  show databases(顯示有些哪數據庫)

  use databasename(使用哪個數據庫 ,databasename為數據庫名)

  show tables(選擇數據庫後,顯示有哪些表)

  在以上三個工具安裝好後,java web 服務端的環境算是搭建好了,如果我們的項目沒有涉及到數據庫,我們只需把我們的web項目,導出一個war包,直接放到tomcat目錄下的webapps目錄下就可以了,tomcat會自動幫我們解壓war包。但如果我們的項目涉及數據庫操作,就還需要一些相關的配置了。

  1.需要mysql jdbc 驅動jar包放入到tomcat 的lib目錄下,我的用的版本是 mysql-connector-java-5.1.43-bin.jar

  2.在tomcat下配置mysql數據源 ,需要對tomcat的conf目錄下的幾個文件加一些配置

   編輯server.xml,在GlobalNamingResources標簽下加入

   <Resource driverClassName="com.mysql.jdbc.Driver" maxActive="10" maxIdle="2" maxWait="300" name="jdbc/mysql" password="123456" type="javax.sql.DataSource" url="jdbc:mysql://localhost:3306/grginvoice?autoReconnect=true" username="root"/>

   編輯context.xml,在Context標簽下加入  

   <Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource"
    username="root"
    password="123456"
    maxActive="850"
    maxidle="80"
    removeAbandoned="true"
    removeAbandonedTimeout="5"
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/grginvoice?autoReconnect=true"
    minEvictableIdleTimeMillis="4000"
    timeBetweenEvictionRunsMillis="5000"/>

   編輯web.xml,在web-app標簽下加入   

    <resource-ref>
    <description>DB Connection</description>
    <res-ref-name>jdbc/mysql</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>

    當然還需要在mysql中創建對就的數據庫和表,重啟tomcat,就可以使用服務器上的mysql了

    (數據庫跟tomcat裝上同一臺服務器上,url裏面的地址用localhost可以了,不需要換成服務器的ip地址)

    下面是一段mysql數據庫連接部分的代碼

Connection conn = null;
DataSource ds = null; 
Statement stmt = null;
ResultSet rs = null;

try {
	Context ctx = new InitialContext();
	if (ctx == null)
		System.out.println("no content");
				
		ds = (DataSource) ctx.lookup("java:comp/env/jdbc/mysql"); 
				
		if(ds != null)
			conn = ds.getConnection();
				
		if (conn != null)
			System.out.println("連接Mysql成功");
				
		stmt = (Statement) conn.createStatement();
		String strSql = "select * from grginvoice.ticketinfo where logicid=\"0001\""; 
		rs = (ResultSet) stmt.executeQuery(strSql);
		if (rs != null)
			System.out.println("query is success");
		while (rs.next()) {    
			 System.out.println(rs.getString(2));    
	        }
				
} catch (NamingException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
} catch (SQLException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
}    

  

  PS:

   MySql運行在safe-updates模式下,該模式會導致非主鍵條件下無法執行update或者delete命令:

   執行如下命令:

    show variables like ‘SQL_SAFE_UPDATES‘;
    SET SQL_SAFE_UPDATES = 0;

 

  

搭建一個java web服務端