浅谈servlet与jsp的关系
????? servlet是用java語(yǔ)言編寫的,是一個(gè)java類。主要功能是用來(lái)接受、處理客戶端的請(qǐng)求,并把處理結(jié)果返回到客戶端顯示。Jsp是servlet發(fā)展后期的產(chǎn)物。在沒(méi)有jsp之前,servlet利用輸出流動(dòng)態(tài)生成整個(gè)HTML頁(yè)面,輸出內(nèi)容包括每一個(gè)HTML標(biāo)簽和每個(gè)在HTML頁(yè)面中出現(xiàn)的內(nèi)容。HTML文件包含大量標(biāo)簽和大量靜態(tài)文本及格式等,以及所有的表現(xiàn)邏輯,包括布局、色彩及圖像等。這些內(nèi)容都必須耦合在java代碼中,這樣就導(dǎo)致servlet開(kāi)發(fā)效率低下,令人不勝其煩。jsp出現(xiàn)后彌補(bǔ)了不足,因?yàn)閖sp文件是通過(guò)在標(biāo)準(zhǔn)的HTML頁(yè)面中插入java代碼形成的。其靜態(tài)的部分無(wú)需java程序控制,只有那些需要從數(shù)據(jù)庫(kù)讀取并根據(jù)程序動(dòng)態(tài)生成信息時(shí),才使用java腳本控制。所以jsp技術(shù)出現(xiàn)后,主要用jsp文件來(lái)動(dòng)態(tài)生成HTML文件,然后返回客戶端顯示。現(xiàn)在的servlet,當(dāng)需要將整個(gè)頁(yè)面作為結(jié)果返回時(shí),不再由其自己去處理,而是調(diào)用jsp文件。
???? 下面開(kāi)發(fā)部署一個(gè)簡(jiǎn)單的servlet程序來(lái)展示:
???? 1.創(chuàng)建處理請(qǐng)求的servlet文件:
1 package com.servlet.study; 2 3 import java.io.IOException; 4 import java.io.PrintWriter; 5 6 import javax.servlet.ServletException; 7 import javax.servlet.http.HttpServlet; 8 import javax.servlet.http.HttpServletRequest; 9 import javax.servlet.http.HttpServletResponse; 10 11 public class HelloWorldServlet extends HttpServlet { 12 @Override 13 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 14 super.doGet(req, resp); 15 } 16 @Override 17 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 18 resp.setContentType("text/html;charset=UTF-8"); 19 req.setCharacterEncoding("UTF-8"); 20 String userName = req.getParameter("username"); 21 String passWord = req.getParameter("password"); 22 PrintWriter out = resp.getWriter(); 23 out.print("<html>"); 24 out.print("<head>"); 25 out.print("<title>Helloworld</title>"); 26 out.print("</head>"); 27 out.print("<body>"); 28 out.print("<hr>"); 29 out.println("The username is " userName); 30 out.println("The password is " passWord); 31 out.print("</body>"); 32 out.print("</html>"); 33 } 34 }???? 2.創(chuàng)建HTML文件:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>用戶登錄頁(yè)面</title> 6 </head> 7 <body> 8 <h1 align="center">登錄系統(tǒng)</h1><hr> 9 <form action="helloworld_servlet" method = "post">//表單的action其實(shí)指明了servlet的url 10 <table> 11 <tr> 12 <td>用戶名</td> 13 <td><input type="text" name="username"></td> 14 </tr> 15 <tr> 16 <td>密碼</td> 17 <td><input type="password" name="password"></td> 18 </tr> 19 <tr> 20 <td><input type="reset" value="重填"></td> 21 <td><input type="submit" value="提交"></td> 22 </tr> 23 </table> 24 </form> 25 </body> 26 </html>???? 3.在web.xml中配置servlet:
1 <servlet> 2 <servlet-name>HelloWorldServlet</servlet-name> 3 <servlet-class>com.servlet.study.HelloWorldServlet</servlet-class>//實(shí)現(xiàn)類 4</servlet> 5 <servlet-mapping>//映射 6 <servlet-name>HelloWorldServlet</servlet-name> 7 <url-pattern>/helloworld_servlet</url-pattern>//“/”是必須的 8 </servlet-mapping>???? 注:]servlet類必須繼承HttpServlet類,而且得重寫doGet、doPost方法,并創(chuàng)建out對(duì)象。doGet方法是HttpServlet類中處理get請(qǐng)求的方法,doPost處理post請(qǐng)求。在表單中聲明method,并在servlet類中編寫相對(duì)應(yīng)方法即可,本例特為post請(qǐng)求。
更多專業(yè)前端知識(shí),請(qǐng)上 【猿2048】www.mk2048.com
總結(jié)
以上是生活随笔為你收集整理的浅谈servlet与jsp的关系的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: CSS3新增的伪类选择器
- 下一篇: js实现QQ、微信、新浪微博分享功能