一、Servlet 概述
Servlet是一種JavaWeb應用程序的組件。使用Servlet,可以接收來自Web瀏覽器或其他HTTP客戶端發送的請求並生成響應。Servlet本質上是Java中的一個類,可以擴展JavaWeb伺服器上的某個功能。它們可以在Web容器中運行,例如Apache Tomcat,Jetty或IBM WebSphere。
二、Servlet 的基礎
首先,您需要確保環境設置正確。您需要安裝JDK,並下載並設置servlet jar文件。下面是一個基本的Servlet代碼示例:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("");
out.println("Hello World ");
out.println("");
out.println("Hello World
");
out.println("");
}
}
您需要將上面的代碼保存為HelloWorld.java文件,並編譯它。運行servlet需要在JavaWeb伺服器上安裝JVM。在Apache Tomcat上,servlet需要保存在$CATALINA_BASE/webapps/myapp/WEB-INF/classes/中。
三、Servlet 的解析方式
在JavaWeb伺服器中,Servlet可以按照如下方式解析:
1. 使用註解方式
在註解方式中,您可以使用@WebServlet標記將Servlet綁定到URL模式。這是使用最廣泛的方法,以下是代碼示例:
@WebServlet("/hello")
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("");
out.println("Hello World ");
out.println("");
out.println("Hello World
");
out.println("");
}
}
2. 使用XML 配置實現
JavaWeb伺服器可以使用XML配置文件將Servlet映射到URL模式。以下是web.xml示例:
<web-app>
<servlet>
<servlet-name>HelloWorldServlet</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorldServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
3. Java配置方式(在Servlet 3.0中)
您還可以使用Java提供的方式將Servlet映射到URL模式。以下是代碼示例:
public class MyWebApplicationInitializer implements WebApplicationInitializer {
public void onStartup(ServletContext container) {
ServletRegistration.Dynamic registration = container.addServlet("hello", HelloWorld.class);
registration.addMapping("/hello");
}
}
四、Servlet的讀取方式
Servlet可以使用以下三種方法來讀取客戶端提交的數據:
1. URL Parameters
使用URL Parameters的方式可以將信息從客戶端發送給伺服器,例如網頁的查詢字元串。在綁定Servlet到某個URL後,可以在doGet方法中使用getQueryString來讀取信息。以下是代碼示例:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException{
String name = request.getParameter("name");
PrintWriter out = response.getWriter();
out.println("Hello " + name + "!");
}
2. Hidden Fields
在使用HTML表單時,可以使用hidden欄位將客戶端信息傳遞給伺服器。在Servlet中需要使用getParameter方法來讀取信息。以下是代碼示例:
<form method="post" action="servlet">
<input type="hidden" name="name" value="John">
<input type="submit" value="Submit">
</form>
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException{
String name = request.getParameter("name");
PrintWriter out = response.getWriter();
out.println("Hello " + name + "!");
}
3. HTTP POST
在HTTP POST方法中,客戶端會將信息作為請求正文發送給伺服器。客戶端需要使用 getWriter() 方法得到一個寫入器來輸出請求正文。
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException{
BufferedReader reader = request.getReader();
StringBuilder sb = new StringBuilder();
String s;
while((s = reader.readLine()) != null){
sb.append(s);
}
String requestData = sb.toString();
PrintWriter out = response.getWriter();
out.println(requestData);
}
五、總結
Servlet是Java Web應用程序中的一種組件,可以接受來自Web瀏覽器或其他HTTP客戶端發送的請求並生成響應。在JavaWeb伺服器上,Servlet可以使用註解、XML配置和Java配置等方式綁定到URL模式。而Servlet可以使用URL Parameters, Hidden Fields和HTTP POST等方式來讀取客戶端發送的數據。
原創文章,作者:HWIEZ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/330652.html
微信掃一掃
支付寶掃一掃