**servlet:在服務端運行的程序區別於applet(在客戶端運行)**
jsp:把編譯好的jsp頁面發佈到服務器,服務器編譯成java文件,而後將java文件發送到頁面上,頁面上而後在對java代碼中的網頁文件進行提取。(咱們能夠查看tomcat中的緩存文件,看到咱們的jsp頁面轉換成了一個.class,一個.java)。html
servlet:客戶端請求服務器,服務器找到相應的(經過web.xml)servlet,servlet跟數據庫進行溝通,servlet 將編譯好的文件傳給客戶端瀏覽器,而後瀏覽器進行提取網頁文件(如html等)。java
public class HelloServlet extends HttpServlet
@Override //用於處理get請求 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req,resp); } @Override //用於處理post請求 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("處理數據。。。。。"); System.out.println("執行完畢。。。。。"); } /** * 用於處理get以及post */ @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub System.out.println("請求servlet,service方法被執行"); }
<!-- 配置servlet --> <servlet> <servlet-name>hello</servlet-name> <servlet-class>com.softeem.sevlet.HelloServlet</servlet-class> </servlet> <!-- 映射 --> <servlet-mapping> <!-- 名字需和上面同樣 --> <servlet-name>hello</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping>
服務器啓動,tomcat對全部xml文件進行初始化檢查,若是出現錯誤,則直接將錯誤信息提示到控制檯,當客戶端發起請求,容器(服務器)會檢查請求的資源路徑,經過資源去匹配url-pattern,經過對應的servlet-name找到指定的servlet-class進行執行,執行時,首先對servlet進行初始化(只初始化一次),而後根據客戶端請求方式,尋找到對應的doGet/doPost進行執行;當服務器中止服務,容器會對全部的servlet進行銷燬,並執行servlet中的destory()。web
#4. servlet的生命週期 init --> doGet/doPost -->destory數據庫
<!-- 初始化參數 --> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>contentType</param-name> <param-value>text/html</param-value> </init-param> /**例如,咱們能夠把服務端響應的編碼方式,以及響應的類型設置初始化參數,而後咱們只須要在使用的 時候獲取這個初始化參數便可 */
<form action="LoginServlet"> USERNAME:<input type="text" name="username"> PASSWORD:<input type="password" name="password"/> <input type="submit" value="登陸"> </form>
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String uname = request.getParameter("username"); String upass = request.getParameter("password"); String encode = this.getInitParameter("encoding"); String contentType = this.getInitParameter("contentType"); //設置response編碼 response.setCharacterEncoding(encode); //設置響應的類型 response.setContentType(contentType+";charset="+encode); PrintWriter pw = response.getWriter(); if("admin".equals(uname.trim())){ if("123456".equals(upass.trim())){ pw.println("<script>alert('登陸成功');window.location.href='main.jsp'</script>"); }else{ pw.println("<script>alert('密碼錯誤');window.location.href='login.jsp'</script>"); } }else{ pw.println("<script>alert('帳號錯誤或不存在');window.location.href='login.jsp'</script>"); } pw.flush(); pw.close(); }