當前位置:首頁 » 網頁前端 » javaservletweb
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

javaservletweb

發布時間: 2022-09-06 20:26:35

① 通過 java (servlet) 實現兩個web工程間的文件傳輸

這個思路很簡單,如下:

1、訪問A的servlet,我們在這個Servlet裡面取到這個文件,這個很容易是吧
2、在A的servlet將取到的文件(inputstrema格式),以post的形式,模擬表單提交給B的servlet
3、在B的servlet裡面接收,就像接收普通的表單上傳的一樣

下面是一些上傳和接收的核心代碼,使用的httpclient

A裡面的上傳:
HttpClient httpclient = new DefaultHttpClient();
String url = 「這里是B的servlet的訪問的地址,全地址」;
HttpPost httppost = new HttpPost(url);
// 一個本地的文件
InputStreamBody fileis = new InputStreamBody(is, fileName);
// 多部分的實體
MultipartEntity reqEntity = new MultipartEntity();
// 增加
reqEntity.addPart("bin", fileis);
// 設置
httppost.setEntity(reqEntity);
HttpResponse responses = null;
try {
responses = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
if (Validator.isNotNull(responses)) {
int httpstatus = responses.getStatusLine().getStatusCode();
if(httpstatus!=200){
System.out.println(url+"訪問錯誤,http狀態"+httpstatus);
}
}
B裡面接收文件的核心代碼,使用的fileupload
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List items = new ArrayList();

try {
items = upload.parseRequest(request);
} catch (FileUploadException e) {
e.printStackTrace();
}
FileItem file = null;
if (items.size()>0) {
file =(FileItem)items.get(0);
}

② JavaWeb開發中Servlet是那一層以及用法

JavaWeb開發中Servlet是屬於控制層最底端的部分的 ,也就是MVC c的最底層。

他往往用來處理請求的。他的外一層就是View、他的一層就是Service(Servlet往往調用他做邏輯判斷的操作)


原始的Servlet的生命周期

servlet在第一次訪問的時候就會被初始化


servlet對象一旦被創建就會駐留在內存中,當伺服器關閉或者web應用被移除的時候servlet對象才銷毀



1:當servlet被創建的時候那麼 servlet就會被初始化 調用init方法


2:任何請求來自客戶端,service方法就會被自動調用


3:當servlet從伺服器被移除的時候 distroy方法將會被調用


如下是一個原始的Servlet代碼(這並不是現在開發一貫的做法,請往下看)

importjavax.servlet.*;
classFirstServlet
extendsGenericServlet{
publicvoid
service(ServletRequestrequest,ServletResponseresponse)
throwsServletException,java.io.IOException
{
response.getWriter().write("hello
servlet");
}
}


ServletConfig

getServletConfig 方法 用來獲得servlet的啟動信息,和getServletInfo方法 可以活的servlet的基本信息,和關於它自己的一些信息,例如作者,版本,版權等

為Servlet設置初始參數要在web.xml中配置(只對當前servlet有效)

如下是在Web.xml中為當前servlet配置初始化參數的。

<servlet>
<servlet-name>ServletConfigDemo</servlet-name>
<servlet-class>
cn.itcast.servlet.ServletConfigDemo</servlet-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
<init-param>
<param-name>encoding2</param-name>
<param-value>utf-9</param-value>
</init-param>
</servlet>

ServletCofig對象可以通過this.getServletConfig來獲得,因為在父類中已經在獲得了ServletConfig對象;也可以servletconfig對象可以通過父類的init方法內穿過來的config對象獲取

publicvoidinit(ServletConfigconfig)throwsServletException{this.config=
config;this.init();}()
{returnconfig;}

ServletContext

通常我們稱ServletContext叫Application對象 。也叫域對象


Servlet引擎為每個WEB應用程序都創建一個對應的ServletContext對象,ServletContext對象被包含在ServletConfig對象中,調用ServletConfig.getServletContext方法可以返回


通常獲得ServletContext的方法是直接getservletcontext
因為在父類中已經定義了這樣的方法,子類直接繼承使用


ServletContext對象的引用。getServletContext().getInitParameter("a")
的方式獲得web應用的初始化參數


我們還可以為整個web應用配置初始化參數

Request & Response

基本servlet 中service的方法的request 和 response 對象分別是


RequestFacade 和 ResponseFacade 這個類是Tomcat中的類
他繼承自HttpServletRequest而 HttpServletRequest 又繼承 ServletRequest(Response同理)


一些常用方法:

request.getRequestURL();獲得URl



request.getHeader("accept-encoding"); 獲得支持的壓縮格式



request.getHeader("referer");獲得來自哪裡(防盜鏈)



request.getInputStream(); 獲得消息體



request.getParameter("name") 獲得參數

如下是現代開發中常用的Servlet

publicclass

{
publicvoiddoGet(HttpServletRequestrequest,
HttpServletResponseresponse)
throwsServletException,IOException
{
}
publicvoid
doPost(HttpServletRequestrequest,HttpServletResponse
response)
throws
ServletException,IOException{
doGet(request,
response);
}
}


③ Java web中多個servlet的問題

servlet是按照攔截器攔截url的方式,所以誰的攔截器先攔截到這個url就誰先處理,後面的就不管了

④ java 中web開發servlet主要功能是什麼

JavaWeb中servlet主要功能是承載網路連接,業務邏輯處理,比如一些編碼格式的轉換、登錄攔截等,如下是詳細解釋:
1.servlet是一個類。最初沒有jsp,只有servlet,也就是說最初的開發過程是.java->.class
後來因為html代碼在servlet里寫入太繁瑣,加入了jsp類型。servlet單純的處理後台程序。
在WEB-INF下的web.xml文件下:

<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>org.lxh.servlet.HelloServlet</servlet-class>///HelloServlet是類名
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/servletdemo</url-pattern>///當敲入本機地址後,/demo後/servletdemo會找到編譯後的HelloServlet文件。
</servlet-mapping>

具體例子如下:
1.先編寫一個表單,建在D:/java/tomcat jsp/webdemo/servletdemo(新建一個文件夾)-

input.html
<formaction="input"method="get">//"post"也行
<inputtype="text"name="ref">
<inputtype="submit"value="提交">
</from>

2.在編寫InputServlet類

packageorg.lxh.servlet;
importjava.io.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
{
publicvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)
throwsServletException,java.io.IOException{
Stringparam=req.getParameter("ref");
System.out.println("*************"+param);
}
publicvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)
throwsServletException,java.io.IOException{
this.doGet(req,resp);
}
};

3.然後編譯。
4.再在web.xml中加入這些話

<servlet>
<servlet-name>input</servlet-name>
<servlet-class>org.lxh.servlet.InputServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>input</servlet-name>
<url-pattern>/servletdemo/input</url-pattern>
</servlet-mapping>

5.這時運行tomcathttp://localhost:90/demo能找到servletdemo文件夾中的input.html,點擊提交按鈕。

jsp技術中servlet,可以承載很多的功能,但後期如果項目業務邏輯很復雜,會導致servlet的急劇增多,不易維護,所以又發明了javaweb,將每一層的功能和邏輯都獨立出來,以便於更好的維護管理。

⑤ JAVA WEB中servlet中的反射

就是這兩個class的類定義
javax.servlet.http.HttpServletRequest
javax.servlet.http.HttpServletResponse
反射讀出其中的方法
這個兩個是介面,實際應用中應該傳入真實的方法名和實現類

⑥ java web中的servlet問題

其實沒什麼差別,當你選擇用get方式提交form表單的時候,你看地址欄上 的地址後面會多出 你要提交的數據 比如 xxxx.do?username=XXX&password=XXX,而你用Post方式提交的時候就不會顯示出這些,而是通過 隱藏在 http請求頭的 數據段進行傳輸。

另外剛才我看樓下說 get提交中文會有亂碼,這個我補充一下,在jsp頁面必須要做url coder的轉換。其實中文亂碼 很好解決。
另外post提交同樣有上限,這個是根據伺服器的設置。 tomcat伺服器默認的2m上傳post

⑦ JavaWeb中Servlet必須要在web.xml中配置嗎

Java 的Web標准就是jsp+Servlet,而Structs,Spring MVC的哦是基於攔截器的。。
如果要讓Servlet工作,這必須要多Sevelet進行配置。Servlet 常規都是在web.xml配置的。

⑧ 如何用eclipse創建java web servlet

工具:eclipse

方法如下:

1、在Eclipse開發工具中創建的JavaWeb工程文件目錄結構如下圖:

⑨ servlet和web伺服器的區別是什麼

WEB伺服器是提供WEB服務的程序。
Servlet是一種容器內的技術,其實是 Server applet的簡稱,什麼意思呢,就是說servlet是在伺服器上運行的小程序,所以servlet技術不一定只在WEB伺服器上使用。
只是目前常見的Java技術,都是把WEB伺服器上的Servlet直接叫做Servlet。
所以運行Servlet,首先是需要WEB伺服器的。
然後還要有一個小程序的容器,就是Servlet容器,專門來調用Servlet。
目前就是大部分的J2EE容器能夠完成 Servlet的執行。
支持J2EE容器的WEB伺服器,也叫 WEB伺服器,不支持的,也叫WEB伺服器。
我想已經基本解釋清楚了。

⑩ javaWeb中servlet層和service層有什麼不同

這兩個完全是兩個領域內的概念。
servlet是j2ee標准中用於執行服務端程序的小程序。從實現上講,Servlet可以響應任何類型的請求,一般用來擴展基於HTTP協議的Web伺服器,即用於生成網頁。
service是一個開發層次的概念。現階段j2ee應用的後端一般分為web、service、三個層次。web層處理頁面請求的解析,然後發數據給service層,service層進行具體的業務處理(可以調用)。