日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

jspservlet入门小项目--留言管理

發(fā)布時(shí)間:2025/3/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jspservlet入门小项目--留言管理 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一,jsp,servlet基礎(chǔ)知識(shí)

1,jsp有一些內(nèi)置對(duì)象,常用的有:

out(PrintWriter),request(HttpServletRequest),response(HttpServletresponse),session(HttpSession),application(ServletContext)

注意:建議html和java代碼分開。

2,<%@ include file="要包含的頁(yè)面路徑" %>,這種叫靜態(tài)包含。
<jsp:include page="要包含的頁(yè)面路徑" /> ,這叫做動(dòng)態(tài)包含。
靜態(tài)包含:導(dǎo)入文件會(huì)先被編譯成html文件才進(jìn)行導(dǎo)入。(會(huì)編譯成一個(gè)servlet)
動(dòng)態(tài)包含:(多個(gè)servlet,運(yùn)行的時(shí)候包含進(jìn)來(lái))不進(jìn)行任何編譯,直接將要導(dǎo)入的文件原樣導(dǎo)入,然后在被導(dǎo)入頁(yè)面進(jìn)行編譯。
最佳實(shí)踐:開發(fā)中90%使用靜態(tài)包含。因?yàn)槭褂脛?dòng)態(tài)包含效率低而且有可能會(huì)出現(xiàn)變量的重名。其他比如權(quán)限用動(dòng)態(tài)。

3,如果希望在不同頁(yè)面中傳遞對(duì)象,可以通過xx.setAttribute("xx",obj)完成設(shè)置,可以通過xx.getAttribute("xx",obj)來(lái)接收。
可以傳遞對(duì)象的內(nèi)置對(duì)象有如下一些:
.pageContext(對(duì)于servlet而言沒有)
當(dāng)前頁(yè)面存在,當(dāng)發(fā)生跳轉(zhuǎn)之后數(shù)據(jù)丟失。
.request(HttpServletRequest)
當(dāng)前頁(yè)面存在,服務(wù)器跳轉(zhuǎn)存在,客戶端跳轉(zhuǎn)不存在
.session(HttpSession)
只有瀏覽器關(guān)閉session才會(huì)丟失。否則一直存在
.application(ServletContext)
只要服務(wù)器沒有重啟就一直存在

使用原則:
能用pageContext就不用request,能用request就不用session,能用session就不用application。

重定向response.sendRedirect,跳轉(zhuǎn)之后仍會(huì)執(zhí)行完剩下的代碼才進(jìn)行跳轉(zhuǎn)。

一定注意:在response.sendRedirect后加上 return;不能通過參數(shù)傳中文。

4,解決亂碼問題,使用filter

1 <filter> 2 <filter-name>CharEncoding</filter-name> 3 <filter-class>tk.dongyeblog.shop.filter.CharFilter</filter-class> 4 <init-param> 5 <param-name>encoding</param-name> 6 <param-value>UTF-8</param-value> 7 </init-param> 8 </filter> 9 <filter-mapping> 10 <filter-name>CharEncoding</filter-name> 11 <url-pattern>/*</url-pattern> 12 </filter-mapping>

定義filter實(shí)現(xiàn)Filter接口。通過request.setCharacterEncoding(encoding);設(shè)置編碼。

1 @Override 2 public void doFilter(ServletRequest request, ServletResponse response, 3 FilterChain chain) throws IOException, ServletException { 4 request.setCharacterEncoding(encoding); 5 chain.doFilter(request, response); 6 7 } 1 @Override 2 public void init(FilterConfig cfg) throws ServletException { 3 String e = cfg.getInitParameter("encoding"); 4 if(e==null || "".equals(e)){ 5 encoding = "UTF-8"; 6 }else{ 7 encoding = e; 8 } 9 }

通過<init-param></init-param>來(lái)設(shè)置初始化編碼。

5,判斷是否登錄。如果未登錄不讓訪問admin目錄

web.xml配置

1 <filter> 2 <filter-name>AdminCheckFilter</filter-name> 3 <filter-class>tk.dongyeblog.shop.filter.AdminCheckFilter</filter-class> 4 </filter> 5 <filter-mapping> 6 <filter-name>AdminCheckFilter</filter-name> 7 <url-pattern>/admin/*</url-pattern> 8 </filter-mapping> 1 @Override 2 public void doFilter(ServletRequest request, ServletResponse response, 3 FilterChain chain) throws IOException, ServletException { 4 HttpServletRequest req = (HttpServletRequest)request; 5 HttpServletResponse resp = (HttpServletResponse)response; 6 HttpSession session = req.getSession(); 7 User u = (User)session.getAttribute("loginUser"); 8 if(u==null){ 9 resp.sendRedirect(req.getContextPath()+"/loginInput.jsp"); 10 } 11 chain.doFilter(request, response); 12 }

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/dongye/p/3242111.html

總結(jié)

以上是生活随笔為你收集整理的jspservlet入门小项目--留言管理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。