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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

JavaWeb(part1)--servlet

發布時間:2023/12/19 java 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaWeb(part1)--servlet 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習筆記,僅供參考,有錯必究


文章目錄

    • JavaWeb
      • 什么是Servlet
      • 舉個例子
      • Servlet執行原理
      • Servlet注解
      • Servlet的體系結構
      • Servlet訪問路徑的配置
      • 注意事項


JavaWeb


什么是Servlet


Servlet就是運行在服務器端的小程序,本質上servlet就是一個實現了servlet接口的類,servlet接口定義了Java類被tomcat識別的規則。


舉個例子


首先,我們創建一個JAVAEE項目項目ServletDemo,并在src文件夾下創建com.servlet.demo包,并在其中創建Demo1.html, 定義類實現Servlet接口,并實現接口中的service方法:

package com.servlet.demo;import java.io.IOException;import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.annotation.WebServlet;public class Demo1 implements Servlet {@Overridepublic void destroy() {// TODO Auto-generated method stubSystem.out.println("destroy");}@Overridepublic ServletConfig getServletConfig() {// TODO Auto-generated method stubreturn null;}@Overridepublic String getServletInfo() {// TODO Auto-generated method stubreturn null;}@Overridepublic void init(ServletConfig arg0) throws ServletException {// TODO Auto-generated method stub}@Overridepublic void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {// TODO Auto-generated method stubSystem.out.println("Hello Gui");}}

在WebContent的WEB-INF文件夾下的web.xml里配置Servlet:

<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"><display-name>ServletDemo</display-name><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list><!--增加的代碼,start--><servlet><servlet-name>demo-01</servlet-name><servlet-class>com.servlet.demo.Demo1</servlet-class></servlet><servlet-mapping><servlet-name>demo-01</servlet-name><url-pattern>/my_demo</url-pattern></servlet-mapping><!--增加的代碼,end--></web-app>

運行項目,向http://localhost:8080/ServletDemo/my_demo發起請求,控制臺得到如下輸出:

Hello Gui

Servlet執行原理


Servlet注解

定義類實現Servlet接口,實現接口中的方法,并在類上使用@WebServlet注解配置。


Servlet的體系結構

  • Servlet接口

  • GenericServlet抽象類

  • 將Servlet的其它方法做了默認的空實現,只將Service方法做了抽象,繼承該抽象類只需要實現Service方法即可

  • HttpServlet抽象類

  • 對Http協議的封裝簡化操作,判斷請求方式進行對應處理

  • 繼承該抽象類需要實現doGet和doPost方法


Servlet訪問路徑的配置


一個Servlet可以定義多個訪問路徑

@WebSevlet({“/s1”,”/s2”,”/s3”})

路徑定義規則:

/xxx /xxx/xxx /xxx/* *.do

例如:

package com.servlet.demo;import java.io.IOException;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;@WebServlet({"/d03/*", "/dd003/*"}) public class Demo03 extends HttpServlet{@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stub // super.doPost(req, resp);System.out.println("我是demo03的post");}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stub // super.doGet(req, resp);System.out.println("我是demo03的get");} }

注意事項


  • Servlet是單例的

  • 多個用戶同時訪問可能存在線程安全問題

  • 盡量不要在Servlet中定義成員變量,如果定義了,不要在方法中修改

  • 服務器被關閉時Servlet被銷毀

  • 先執行Destroy然后Servlet才被銷毀


總結

以上是生活随笔為你收集整理的JavaWeb(part1)--servlet的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。