servlet:位於web服務器內部服務端的Java程序
一、作用
接收客戶端請求,響應客戶端數據
二、基本方法
- init
說明:初始化,默認在第一次調用的時候初始化,通常只調用一次 - destory
說明:清除初始化,在代碼更新的時候一般會先destory再init - doGet
說明:當提交方式是get的時候,默認調用的方法,可以接收請求或是響應 - doPost
說明:當提交方式是post的時候,默認調用的方法,可以接收請求或是響應
三、目錄
在eclipse裏面,可以直接創建動態的web工程,也可以手動創建
更改class創建的位置:
選中工程->右鍵Properties(Alt+enter)->Java Build Path->Source->Browse
四、創建
在eclipse裏面,可以直接創建servlet,也可以創建普通的類,需要繼承HttpServlet
注:若是運行環境(Target Runtime)爲Tomcat則可以直接導包(在Tomcat中lib裏有),否則手動導包。
五、註冊、映射
WEB-INF->web.xml
<?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>web</display-name>
<!--打開的時候就加載的文件 -->
<welcome-file-list>
<welcome-file>test.html</welcome-file>
</welcome-file-list>
<!--註冊 -->
<servlet>
<servlet-name>Hello</servlet-name> <!--servlet名字 -->
<servlet-class>servlet.Hello</servlet-class><!--路徑 -->
<load-on-startup>1</load-on-startup><!--正數表示在啓動的時候自動初始化,數字表示順序,數字越大越後-->
</servlet>
<!--映射-->
<servlet-mapping>
<servlet-name>Hello</servlet-name><!--同上面的servlet名字對應,則表示是其的映射 -->
<url-pattern>/H.servlet</url-pattern><!--訪問的地址 -->
</servlet-mapping>
</web-app>
六、接收請求、響應數據
html
<body>
<h1>開始測試</h1>
<form action="H.servlet" method="post" id="userform">
<lable>用戶名:</lable><input value="" name="username" id="username"></input><br>
<lable>密 碼:</lable><input value="" type="password" name="password"></input><br>
<input type="submit" value="註冊"></input>
</form>
</body>
Java
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("doGet```");
System.out.println("正在執行...");
//接收請求
String username = req.getParameter("username");
String password = req.getParameter("password");
System.out.println(username + "--" + password);
//響應數據
PrintWriter pw = resp.getWriter();
pw.print(username + "--" + password);
pw.close();
System.out.println("執行完畢...");
}