一、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/n/330652.html
微信扫一扫
支付宝扫一扫