创建Servlet的三种方式 àì夳堔傛蜴生んèń 2022-05-04 00:28 179阅读 0赞 第一种:实现Servlet接口 ,重写五个抽象方法(这种方式需要在web.xml中配置) package com.briup.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; /** * Servelt的第一种创建方式(这种方式,需要在web.xml中配置) 实现Servlet接口 Servlet接口:五个抽象方法() */ public class ServletTest1 implements Servlet { /** * destroy():服务器关闭,重新加载 */ @Override public void destroy() {} /** * getServletConfig():当前Servlet的配置信息 */ @Override public ServletConfig getServletConfig() { return null; } /** * getServletInfo():用户可以重写,存放Servlet的自定义信息 */ @Override public String getServletInfo() { return null; } /** * init():Servlet被创建的时候,调用进行初始化信息 */ @Override public void init(ServletConfig arg0) throws ServletException {} /** * service():Servlet被调用时,调用service() */ @Override public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException { // 获取输出流 PrintWriter out = arg1.getWriter(); // 指定输出文件.txt // arg1.setContentType("text/plain,charset=gbk");改乱码的第一种方式 // arg1.setCharacterEncoding("UTF-8");改乱码的第二种方式 arg1.setContentType("text/plain"); out.println("hello ServletTest1\r\n"); out.println("servlet实现的第一种方式,实现Servlet接口,重写五个抽象方法"); } } 在web.xml中的配置 <servlet> <servlet-name>ServletTest1</servlet-name> <servlet-class>com.briup.servlet.ServletTest1</servlet-class> </servlet> <servlet-mapping> <servlet-name>ServletTest1</servlet-name> <url-pattern>/ServletTest1</url-pattern> </servlet-mapping> 第二种方式:继承GenericServlet,重写service方法(这种方式需要在web.xml中配置) package com.briup.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.GenericServlet; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; /** * Servlet创建第二种方式:继承 重写一个方法 * */ public class ServletTest2 extends GenericServlet { /** * Servlet调用时执行 * */ @Override public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { //指定文件类型 response.setContentType("text/html"); //获取输出流 PrintWriter out = response.getWriter(); //写html文件到页面 out.println("<html>"); out.println("<head>"); out.println("</head>"); out.println("<body>"); out.println("<h1>hello servlet2</h1>"); out.println("<h1>ervlet实现的第二种方式,实现Servlet接口,重写一个抽象方法</h1>"); out.println("</body>"); out.println("</html>"); } } 在web.xml中的配置 <servlet> <servlet-name>ServletTest2</servlet-name> <servlet-class>com.briup.servlet.ServletTest2</servlet-class> </servlet> <servlet-mapping> <servlet-name>ServletTest2</servlet-name> <url-pattern>/ServletTest2</url-pattern> </servlet-mapping> 第三种方式:新建servlet类型文件,通过注解映射,不需要配置web.xml package com.briup.servlet; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class ServletTest3 */ @WebServlet("/ServletTest3") public class ServletTest3 extends HttpServlet { private static final long serialVersionUID = 1L; @Override protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException { //设置文件类型 arg1.setContentType("image/png"); //获取字节输出流 ServletOutputStream sos = arg1.getOutputStream(); //使用文件绝对路径访问 File file = new File("C:\\Users\\Public\\Pictures\\数电.png"); FileInputStream fis=new FileInputStream(file); byte[] b=new byte[1024]; int len=-1; while((len=fis.read())!=-1) { sos.write(b,0,len); } sos.flush(); sos.close(); fis.close(); } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { super.doGet(req, resp); } }
还没有评论,来说两句吧...