一、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