Java建立包不在src下

2021-08-14 10:34:06 字數 2762 閱讀 5918

請求**:

請求**,即request.getrequestdispatcher().forward(),是一種伺服器的行為,客戶端只有一次請求,伺服器端**後會將請求物件儲存,位址列中的url位址不會改變,得到響應後伺服器端再將響應發給客戶端;

請求重定向:

請求重定向,即response.sendredirect(),是一種客戶端行文,從本質上講等同於兩次請求,前一次請求物件不會儲存,位址列的url位址會改變。

用生活中乙個常見的例子來說明兩者之間的區別,某人要去辦理護照:

**:某人去了甲局,甲局看了之後,直到護照應該由乙局來管,但甲局的工作人員並沒有趕走某人,而是讓某人等著,自己在辦公室後面聯絡了乙局的工作人員,乙局護照辦好後送到了甲局,然後甲局的工作人員將護照交給了某人;

重定向:某人去了甲局後,甲局的工作人員說護照不歸他們關,應該去乙局。然後某人自己去了乙局,辦了護照。

這裡寫乙個例子演示兩者的不同。新建乙個web專案,建立三個頁面:reg.jsp、response.jsp、request.jsp。

reg.jsp**如下:

[html]view plain

copy

<

body

>

<

h1>你好

h1>

<

hr>

<

form

name="regform"

action="response.jsp"

method="post"

>

<

table

>

<

tr>

<

td>使用者名稱:

td>

<

td>

<

input

type="text"

name="username"

/>

td>

tr>

<

tr>

<

tdcolspan="2"

>

<

input

type="submit"

value="提交"

/>

td>

tr>

table

>

form

>

body

>

這裡輸入使用者名稱,然後交給response.jsp處理。頁面如下:

response.jsp**如下:

[html]view plain

copy

response.setcontenttype("text/html;charset=utf-8");  

out.println("<

h1>response內建物件

h1>");  

out.println("<

hr>");  

response.sendredirect("request.jsp");  

"request.jsp").forward(request, response);  

%>

首先,使用重定向交給request.jsp來處理。

response.jsp**如下:

[html]view plain

copy

<

body

>

<

h1>request物件

h1>

<

hr>

你是誰?

body

>

這裡僅僅獲得使用者名稱進行輸出。

使用重定向時,結果如下:

可以看到,輸入的使用者名稱沒有顯示出來,這是因為重定向本質上相當於兩次請求,而前一次請求不儲存,所以沒能得到使用者名稱。同時,可以看到位址列中的url位址由response.jsp變為了request.jsp。

第二次,修改response.jsp的**如下:

[html]view plain

copy

response.setcontenttype("text/html;charset=utf-8");  

out.println("<

h1>response內建物件

h1>");  

out.println("<

hr>");  

"request.jsp");  

request.getrequestdispatcher("request.jsp").forward(request, response);  

%>

使用**,將請求**給request.jsp來處理,結果如下:

可以看到,頁面得到了請求中的使用者名稱並進行顯示,這是由於**時客戶端只有一次請求,伺服器會儲存這次請求,等到**返回時將結果返回給客戶端。同時,頁面顯示的是request.jsp的內容,但位址列中的url位址並沒有變化。

這就是請求**與請求重定向的區別。

SSH開發常用常見的src下建的包名

com.公司名.專案名.action 寫控制邏輯,客戶傳送請求到此處,經過處理 如資料庫操作 將介面返回給客戶。com.公司名.專案名.dao 資料庫操作的方法。com.公司名.專案名.daoimpl 資料庫操作的方法的具體實現 com.公司名.專案名.service 業務邏輯的方法 com.公司名...

Linux下建立rpm包介紹

本文只是簡單的介紹乙個linux下為乙個新的專案,建立自己的rpm 安裝包,裡面包含rpm 一些基本術語和基本概念的介紹.作為入門級的參考使用 rpmbuild的預設建立目錄為 home rpmbuild 目錄,可以通過如下命令建立 rpmdev setuptree這個預設工作路徑通常在 usr l...

Linux下建立倉庫的軟體包createrepo

createrepo是linux下的建立倉庫的軟體包。create是建立的意思,repo是repository的縮寫,是倉庫的意思。yum yellow dog updater,modified 主要的功能是方便新增 刪除和更新rpm軟體包。可以解決軟體包依存問題,更便於管理大量的系統更新問題。它可...