淺談servlet與jsp的關(guān)系
servlet是用java語言編寫的,是一個java類。主要功能是用來接受、處理客戶端的請求,并把處理結(jié)果返回到客戶端顯示。Jsp是servlet發(fā)展后期的產(chǎn)物。在沒有jsp之前,servlet利用輸出流動態(tài)生成整個HTML頁面,輸出內(nèi)容包括每一個HTML標(biāo)簽和每個在HTML頁面中出現(xiàn)的內(nèi)容。HTML文件包含大量標(biāo)簽和大量靜態(tài)文本及格式等,以及所有的表現(xiàn)邏輯,包括布局、色彩及圖像等。這些內(nèi)容都必須耦合在java代碼中,這樣就導(dǎo)致servlet開發(fā)效率低下,令人不勝其煩。jsp出現(xiàn)后彌補了不足,因為jsp文件是通過在標(biāo)準(zhǔn)的HTML頁面中插入java代碼形成的。其靜態(tài)的部分無需java程序控制,只有那些需要從數(shù)據(jù)庫讀取并根據(jù)程序動態(tài)生成信息時,才使用java腳本控制。所以jsp技術(shù)出現(xiàn)后,主要用jsp文件來動態(tài)生成HTML文件,然后返回客戶端顯示?,F(xiàn)在的servlet,當(dāng)需要將整個頁面作為結(jié)果返回時,不再由其自己去處理,而是調(diào)用jsp文件。
下面開發(fā)部署一個簡單的servlet程序來展示:
1.創(chuàng)建處理請求的servlet文件:
package com.servlet.study; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HelloWorldServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.doGet(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html;charset=UTF-8"); req.setCharacterEncoding("UTF-8"); String userName = req.getParameter("username"); String passWord = req.getParameter("password"); PrintWriter out = resp.getWriter(); out.print("<html>"); out.print("<head>"); out.print("<title>Helloworld</title>"); out.print("</head>"); out.print("<body>"); out.print("<hr>"); out.println("The username is "+userName); out.println("The password is "+passWord); out.print("</body>"); out.print("</html>"); } }
2.創(chuàng)建HTML文件:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>用戶登錄頁面</title> </head> <body> <h1 align="center">登錄系統(tǒng)</h1><hr> <form action="helloworld_servlet" method = "post">//表單的action其實指明了servlet的url <table> <tr> <td>用戶名</td> <td><input type="text" name="username"></td> </tr> <tr> <td>密碼</td> <td><input type="password" name="password"></td> </tr> <tr> <td><input type="reset" value="重填"></td> <td><input type="submit" value="提交"></td> </tr> </table> </form> </body> </html>
3.在web.xml中配置servlet:
<servlet> <servlet-name>HelloWorldServlet</servlet-name> <servlet-class>com.servlet.study.HelloWorldServlet</servlet-class>//實現(xiàn)類4</servlet> <servlet-mapping>//映射 <servlet-name>HelloWorldServlet</servlet-name> <url-pattern>/helloworld_servlet</url-pattern>//“/”是必須的 </servlet-mapping>
注:]servlet類必須繼承HttpServlet類,而且得重寫doGet、doPost方法,并創(chuàng)建out對象。doGet方法是HttpServlet類中處理get請求的方法,doPost處理post請求。在表單中聲明method,并在servlet類中編寫相對應(yīng)方法即可,本例特為post請求。
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
- JavaWeb實現(xiàn)用戶登錄注冊功能實例代碼(基于Servlet+JSP+JavaBean模式)
- Servlet+JavaBean+JSP打造Java Web注冊與登錄功能
- JSP+Servlet制作Java Web登錄功能的全流程解析
- jsp+servlet+javabean實現(xiàn)數(shù)據(jù)分頁方法完整實例
- servlet+JSP+mysql實現(xiàn)文件上傳的方法
- jsp和servlet中實現(xiàn)頁面跳轉(zhuǎn)的方式實例總結(jié)
- JSP+Servlet+JavaBean實現(xiàn)登錄網(wǎng)頁實例詳解
- JSP使用Servlet作為控制器實現(xiàn)MVC模式實例詳解
- Servlet+Jsp實現(xiàn)圖片或文件的上傳功能具體思路及代碼
- jsp傳參 servlet接收中文亂碼問題的解決方法
相關(guān)文章
Spring使用@Conditional進行條件裝配的實現(xiàn)
在spring中有些bean需要滿足某些環(huán)境條件才創(chuàng)建某個bean,這個時候可以在bean定義上使用@Conditional注解來修飾,所以本文給大家介紹了Spring使用@Conditional進行條件裝配的實現(xiàn),文中通過代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12IDEA java出現(xiàn)無效的源發(fā)行版14解決方案
這篇文章主要介紹了IDEA java出現(xiàn)無效的源發(fā)行版14解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-11-11詳細(xì)解讀AbstractStringBuilder類源碼
這篇文章主要介紹了詳細(xì)解讀AbstractStringBuilder類源碼,具有一定參考價值,需要的朋友可以了解下。2017-12-12