Servlet类的部署
要想让Web服务器使用Servlet类编译后的字节码文件创建Servlet对象处理用户请求,必须先为Web服务器部署。部署Servlet目前有两种方式;1.在web.xml中部署;2.基于注解的方式部署Servlet。
一、在web.xml中部署
在JavaWeb中创建一个Servlet类,代码如下:
package Servlet;
import javax.servlet.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
public class FirstServlet extends HttpServlet {
private static final long serialVersionUIO = 1L;
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
public void service (HttpServletRequest request, HttpServletResponse response)throws IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
//out.println("<html><body>");
out.println("在web.xml中部署Servlet-------红乐");
//out.println("<body><html>");
}
}
然后在项目中找到web.xml
在<web-app></web-app>中添加如下内容:
<!-- servlet 标签给 Tomcat 配置 Servlet 程序 -->
<servlet>
<!--servlet-name 标签 Servlet 程序起一个别名(一般是类名) -->
<servlet-name>FirstServlet</servlet-name>
<!--servlet-class 是 Servlet 程序的全类名-->
<servlet-class>Servlet.FirstServlet</servlet-class>
</servlet>
<!--servlet-mapping 标签给 servlet 程序配置访问地址-->
<servlet-mapping>
<!--servlet-name 标签的作用是告诉服务器,我当前配置的地址给哪个 Servlet 程序使用-->
<servlet-name>FirstServlet</servlet-name>
<!--url-pattern 标签配置访问地址 <br/>
/ 斜杠在服务器解析的时候,表示地址为:http://ip:port/工程路径 <br/>
/hello 表示地址为:http://ip:port/工程路径/hello <br/>
-->
<url-pattern>/firstServlet</url-pattern>
</servlet-mapping>
发布到Web服务器后,在浏览器中输入“http://localhost:8088/ch66zhang/firstServlet”来运行Servlet
二、基于注解的方式部署Servlet
在JavaWeb中创建一个Servlet类,代码如下:
package Servlet;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(name= "secondServlet",urlPatterns = {"/secondServlet"})
public class SecondServlet extends HttpServlet {
private static final long serialVersionUIO = 1L;
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
public void service (HttpServletRequest request, HttpServletResponse response)throws IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
// out.println("<html><body>");
out.println("基于注解的方式部署Servlet-----红乐");
//out.println("<body><html>");
}
}
在代码中使用“@WebServlet(name= “secondServlet”,urlPatterns = {"/secondServlet"})”部署之后,就不必在web.xml中部署了。
@WebServlet的常用属性列表
发布到Web服务器后,在浏览器中输入“http://localhost:8088/ch66zhang/secondServlet”来运行Servlet