成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Javaweb Q&A

hiyang / 2996人閱讀

摘要:方法的參數(shù)不但可以使相對(duì)于上下文根的路徑,而且可以是相對(duì)于當(dāng)前的路徑。如和都是合法的路徑。

轉(zhuǎn)發(fā)與重定向區(qū)別是什么

在調(diào)用方法上

轉(zhuǎn)發(fā) 調(diào)用 HttpServletRequest 對(duì)象的方法
request.getRequestDispatcher("test.jsp").forward(req, resp);
重定向 調(diào)用 HttpServletResponse 對(duì)象的方法
response.sendRedirect("loginsuccess.jsp");

在URL顯示上

轉(zhuǎn)發(fā):URL沒(méi)有變化
重定向:URL會(huì)發(fā)生變化

在HTTP請(qǐng)求次數(shù)上

轉(zhuǎn)發(fā):請(qǐng)求1次
重定向:請(qǐng)求2次

在行為上

轉(zhuǎn)發(fā):服務(wù)器行為
重定向:客戶端行為

在數(shù)據(jù)傳遞上

轉(zhuǎn)發(fā): 直接傳遞請(qǐng)求數(shù)據(jù)
重定向: 必須通過(guò)session/application全局中間數(shù)據(jù)緩存
JSP/Servlet 注意事項(xiàng)

JSP/Servlet 初始化時(shí)機(jī)

JSP :只有當(dāng)客戶端第一次請(qǐng)求JSP時(shí),才需要將其轉(zhuǎn)換、編譯以及實(shí)例化
Servlet : 只有當(dāng)服務(wù)器啟動(dòng)時(shí)(web.xml中配置load-on-startup=1,默認(rèn)為0)或者第一次請(qǐng)求該servlet時(shí),才會(huì)加載和實(shí)例化

Servlet四大對(duì)象

ServletConfig、ServletContextHttpServletRequest、HttpServletResponse
ServletConfig:代表當(dāng)前Servlet的配置信息(web.xml)
獲取ServletConfig方法:
ServletConfig sc = this.getServletConfig();

ServletContext:代表當(dāng)前Application
獲取ServletContext方法:
ServletContext sc = this.getServletContext();

HttpServletRequest:代表請(qǐng)求信息
HttpServletResponse:代表響應(yīng)信息

ServletContext生命周期與作用

Tomcat 啟動(dòng)時(shí),為每個(gè)web項(xiàng)目創(chuàng)建對(duì)應(yīng)的ServletContext對(duì)象
ServletContext對(duì)象何時(shí)銷毀?第一種:把web應(yīng)用移除;第二種:把Tomcat服務(wù)器停止
作用:是管理WEB資源,讀取資源文件等 (請(qǐng)不要使用java文件方式去讀取

獲取RequestDispatcher對(duì)象的方法與區(qū)別

2種方法:
1、使用ServletRequest對(duì)象
request.getRequestDispatcher();
2、使用ServletContext對(duì)象
context.getRequestDispatcher();

區(qū)別:
ServletContext.getRequestDispatcher(String path)方法的參數(shù)必須以斜杠(/)開(kāi)始,
被解釋為相對(duì)于當(dāng)前上下文根(context root)的路徑。
例如:/myservlet是合法的路徑,而../myservlet是不合法的路徑。

ServletRequest.getRequestDispatcher(String path)方法的參數(shù)不但可以使相對(duì)于上下文根的路徑,
而且可以是相對(duì)于當(dāng)前Servlet的路徑。如/myservlet和myservlet都是合法的路徑。
如果路徑以斜杠(/)開(kāi)始,則被解釋為相對(duì)于當(dāng)前上下文根的路徑;
如果沒(méi)有以斜杠(/)開(kāi)始,則被解釋為相對(duì)于當(dāng)前Servlet的路徑。

JavaWEB四大域

1、context(代表整個(gè)應(yīng)用都可以使用,servletContext)
2、request
3、session
4、page
如何讀取web資源文件

Servlet方式

方式1:
InputStream in = this.getServletContext().getResourceAsStream("/WEB-INF/config/db.properties");
Properties props = new Properties();
props.load(in);

方式2:
String path= this.getServletContext().getRealPath("/WEB-INF/config/db.properties");
FileInputStream fis = new FileInputStream(path);
Properties props = new Properties();
props.load(fis);

非Servlet方式(類裝載器 只能加載classses目錄下)

方式1(類加載器 加載與讀)
InputStream in = UserServlet.class.getClassLoader().getResourceAsStream("db.properties");
Properties props = new Properties();
props.load(in);

方式2 (類加載器 只加載 用傳統(tǒng)的方式讀)
String path = UserServlet.class.getClassLoader().getResource("db.properties").getPath();
FileInputStream fis = new FileInputStream(path);
Properties props = new Properties();
props.load(fis);

javaweb讀取配置文件的4種方法

輸出中文亂碼問(wèn)題(2種方法)

方法1:設(shè)置響應(yīng)頭

response.setHeader("Content-Type", "text/html;charset=utf-8");

方法2:設(shè)置響應(yīng)體

response.setHeader("Content-Type", "text/html");
String str = "中國(guó)";
OutputStream os = response.getOutputStream();
os.write("".getBytes());
os.write(str.getBytes("utf-8"));

注意事項(xiàng)

字符流字節(jié)流的區(qū)別(字節(jié)流是字符流的基礎(chǔ))
字節(jié)流應(yīng)用更廣泛:二進(jìn)制數(shù)據(jù)(視頻、音頻、圖片、文本)
字符流應(yīng)用更專注:文本(字符串)
獲取字節(jié)流:
OutputStream os = response.getOutputStream();
獲取字符流:
PrintWriter pw = response.getWriter();

設(shè)置服務(wù)器編碼方式:
字節(jié): str.getBtyes("UTF-8") //告訴服務(wù)器使用UTF-8編碼字符
字符: response.setCharacterEncoding("utf-8"); //告訴服務(wù)器使用UTF-8編碼字符

設(shè)置客戶端編碼方式:
response.setContentType("text/html;charset=utf-8");
下載文件問(wèn)題

設(shè)置HTTP的頭信息

response.setHeader("content-disposition", "attachment;filename=" + filename);

如果下載的是中文文件,上面這種寫(xiě)法會(huì)出行亂碼并且下載不了,所以必須使用下面這種:
response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(filename,"UTF-8"));
一、為什么要用URLEncoder

客戶端在進(jìn)行網(wǎng)頁(yè)請(qǐng)求的時(shí)候,網(wǎng)址中可能會(huì)包含非ASCII碼形式的內(nèi)容,比如中文。

而直接把中文放到網(wǎng)址中請(qǐng)求是不允許的,所以需要用URLEncoder編碼地址,

將網(wǎng)址中的非ASCII碼內(nèi)容轉(zhuǎn)換成可以傳輸?shù)淖址?/p>

不會(huì)被編碼的內(nèi)容

1.大寫(xiě)字母A-Z

2.小寫(xiě)字母a-z

3.數(shù)字 0-9

4.標(biāo)點(diǎn)符 - _ . ! ~ * " (和 ,)

讀取資源文件到內(nèi)存(只能獲取文件真實(shí)路徑)

String filePath = this.getServletContext().getRealPath("/WEB-INF/upload/xxx.jpg");
InputStream is = new FileInputStream(filePath);

輸出資源文件

OutputStream out = response.getOutputStream();
int len = 0;
byte[] buffer = new byte[1024];
while((len =is.read(buffer) ) > 0){
    out.write(buffer, 0 ,len);
}
JSP文件存放位置問(wèn)題
如果需要先訪問(wèn)Servlet再跳轉(zhuǎn)到Jsp的話,需要把JSP頁(yè)面放在WEB-INF中

如果JSP可以直接訪問(wèn),那直接放置在WEB-INF目錄外層

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/69734.html

相關(guān)文章

  • JavaWEB開(kāi)發(fā)12——el&jstl

    摘要:列名字段名表單中的屬性名要一至創(chuàng)建數(shù)據(jù)庫(kù)及表開(kāi)發(fā)應(yīng)用搭建開(kāi)發(fā)環(huán)境添加包創(chuàng)建實(shí)現(xiàn)類層業(yè)務(wù)層接口實(shí)現(xiàn)類數(shù)據(jù)訪問(wèn)層接口實(shí)現(xiàn)類添加工具類表示層要注意注冊(cè)頁(yè)面登錄頁(yè)面 一、JavaWeb開(kāi)發(fā)模式 C/S:客戶端 / 服務(wù)器 (胖客戶端)B/S:瀏覽器 / 服務(wù)器 (瘦客戶端) JavaBean: 就是一個(gè)普通類(實(shí)體bean),包含三樣標(biāo)準(zhǔn):一個(gè)無(wú)參構(gòu)造、私有屬性、公共的getter和se...

    Lionad-Morotar 評(píng)論0 收藏0
  • java&javaweb學(xué)習(xí)筆記(匯總)

    摘要:我的學(xué)習(xí)筆記匯總標(biāo)簽筆記分為兩大部分和筆記內(nèi)容主要是對(duì)一些基礎(chǔ)特性和編程細(xì)節(jié)進(jìn)行總結(jié)整理,適合了解基礎(chǔ)語(yǔ)法,想進(jìn)一步深入學(xué)習(xí)的人如果覺(jué)得不錯(cuò),請(qǐng)給,這也是對(duì)我的鼓勵(lì),有什么意見(jiàn)歡迎留言反饋目錄基礎(chǔ)鞏固筆記反射基礎(chǔ)鞏固筆記泛型基礎(chǔ)鞏 我的java&javaweb學(xué)習(xí)筆記(匯總) 標(biāo)簽: java [TOC] 筆記分為兩大部分:javase和javaweb javase javawe...

    yagami 評(píng)論0 收藏0
  • JavaWEB開(kāi)發(fā)06——XML&tomcat

    摘要:張三標(biāo)簽可以自定義。區(qū)非法字符嚴(yán)格地講,在中僅有字符和是非法的。添加包依賴在查找指定節(jié)點(diǎn)的時(shí)候,根據(jù)語(yǔ)法規(guī)則來(lái)查找后續(xù)的代碼與以前的解析代碼一樣。這在生活中是不可能出現(xiàn)的。元素的格式化情況。網(wǎng)頁(yè)游戲,優(yōu)點(diǎn)客戶端只要有瀏覽器就可以了。 1.Xml概念 eXtendsible markup language 可擴(kuò)展的標(biāo)記語(yǔ)言 2.XML 有什么用? 1.可以用來(lái)保存數(shù)據(jù) 2.可以用來(lái)...

    zeyu 評(píng)論0 收藏0
  • JavaWEB開(kāi)發(fā)06——XML&tomcat

    摘要:張三標(biāo)簽可以自定義。區(qū)非法字符嚴(yán)格地講,在中僅有字符和是非法的。添加包依賴在查找指定節(jié)點(diǎn)的時(shí)候,根據(jù)語(yǔ)法規(guī)則來(lái)查找后續(xù)的代碼與以前的解析代碼一樣。這在生活中是不可能出現(xiàn)的。元素的格式化情況。網(wǎng)頁(yè)游戲,優(yōu)點(diǎn)客戶端只要有瀏覽器就可以了。 1.Xml概念 eXtendsible markup language 可擴(kuò)展的標(biāo)記語(yǔ)言 2.XML 有什么用? 1.可以用來(lái)保存數(shù)據(jù) 2.可以用來(lái)...

    Integ 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<